Avoin lähdekoodi

programming-942487_1280
Avoin lähdekoodi on tapa kehittää ja jaella tietokoneohjelmistoja. Asiakas saa vapaasti käyttää, kopioida, muunnella ja jaella avoimen lähdekoodin ohjelmaa – ilman lisenssimaksuja ja työlästä lisenssien ylläpitoa.

Avoimen lähdekoodin käyttäjällä on vapaus valita ohjelmisto ja toimittaja erikseen. Tämä vapauttaa teknologia- ja toimittajariippuvuuksilta ja estää monopolien synnyn. Toimittajariippumattomuus yhdessä ohjelmistojen vapaan muuntelumahdollisuuden kanssa tuo joustavuutta ja vähentää riskejä.

Avoimessa ohjelmistojen kehitysmallissa sekä ideat että toteutukset ovat kaikkien nähtävissä ja  hyödynnettävissä. Kehitystä ei hallinnoi vain yksi yritys, vaan mukana on maailmanlaajuinen yhteisö, joka koostuu sekä yksityishenkilöistä että yrityksistä. Kaikki voivat osallistua kehitystyöhön ja ohjelmistovirheet on mahdollista löytää ja korjata nopeasti. Tämä johtaa usein korkeaan laatuun, hyvään tietoturvaan ja yhteentoimiviin ohjelmistoihin.

 

Tietokoneohjelman lähdekoodi

Tietokoneohjelman lähdekoodi sisältää käskyt ja ohjeet, joiden avulla tietokone saadaan toimimaan halutulla tavalla. Jotta tietokone ymmärtää syötettyjä käskyjä, lähdekoodi on useimmiten käännettävä niin sanottuun suoritettavaan muotoon ennen sen ajamista tietokoneessa. Ohjelman lähdekoodista on nähtävissä kuinka ohjelma toimii ja ohjelman toimintaa voidaan muuttaa muokkaamalla lähdekoodia. Ohjelman suoritettava muoto ei ole ihmisen tulkittavissa.

Koska suljetuissa ohjelmissa lähdekoodi yleensä pidetään liikesalaisuutena eikä siihen anneta muutos- ja levitysoikeuksia, niin ohjelman käyttäjällä ei ole teknisiä ja juridisia edellytyksiä tai oikeuksia tutkia ohjelman toteutusta tai tehdä tai teettää muutoksia ohjelmaan. Avoimen lähdekoodin ohjelman toteutus on lähdekoodin avoimuuden ja sallivien lisenssiehtojen myötä tarkastettavissa ja muutettavissa joko käyttäjän itsensä tai minkä tahansa kolmannen osapuolen toimesta.

Ohjelman hankkijalle tärkein avoimen lähdekoodin etu on suurempi riippumattomuus toimittajasta. Kun toimituksen kuuluu lähdekoodi ja oikeus käyttää sitä ohjelman toiminnan muuttamiseen, voidaan pienentää yhden toimittajan varaan joutumisen riskiä. Kehityksen ja ylläpidon sekä muut mahdolliset työt voi tällöin tehdä joku muukin kuin ohjelmiston alkuperäinen kehittäjä.

On hyvä huomata, että esimerkiksi kriittisten tai erityisiä läpinäkyvyysvaatimuksia sisältävien järjestelmien toteutus voidaan haluta tarkastaa ennakolta. Ohjelmistojen kohdalla tämä on tehtävissä ainoastaan käymällä läpi ohjelmiston lähdekoodi.

 

Avoimen lähdekoodin määritelmä

Avoimen lähdekoodin ohjelmalla ei ole yhtä standardoitua määritelmää. Yhdysvaltalainen Free Software Foundation (FSF) loi 1980-luvulla termin free software (vapaa ohjelma) ja niin ikään yhdysvaltalainen Open Source Initiative (OSI) loi vuonna 1998 termin open source (avoin lähdekoodi). Yksityisen tai julkisen sektorin näkökulmasta käsitteillä ei ole merkittävää sisällöllistä eroa ja ne molemmat sisältävät samat käyttöön, kopiointiin, muokkaamiseen ja levittämiseen liittyvät vapaudet. Open Source Initiativen määritelmä on yleisimmin käytetty erityisesti yritysmaailmassa ja esimerkiksi JIT 2007 -ehdoissa (JHS 166) viitataan siihen määriteltäessä avointa lähdekoodia.

Open Source Initiativen määritelmän mukaan avoimen lähdekoodin ohjelman tulee täyttää seuraavat vaatimukset:

  1. Ohjelman täytyy olla vapaasti levitettävissä ja välitettävissä.
  2. Lähdekoodin täytyy tulla ohjelman mukana tai olla vapaasti saatavissa.
  3. Myös johdettujen teosten luominen ja levitys pitää sallia.
  4. Lisenssi voi rajoittaa muokatun lähdekoodin levittämistä vain siinä tapauksessa, että lisenssi sallii korjaustiedostojen ja niiden lähdekoodin levittämisen. Voidaan myös vaatia, ettei johdettua teosta levitetä samalla nimellä tai versionumerolla kuin lähtöteosta.
  5. Yksilöitä tai ihmisryhmiä ei saa asettaa eriarvoiseen asemaan.
  6. Käyttötarkoituksia ei saa rajoittaa.
  7. Kaikilla ohjelman käsiinsä saaneilla on samat oikeudet.
  8. Lisenssi ei saa olla riippuvainen laajemmasta ohjelmistokokonaisuudesta, jonka osana ohjelmaa levitetään, vaan ohjelmaan liittyvät oikeudet säilyvät, vaikka se irrotettaisiin kokonaisuudesta.
  9. Lisenssi ei voi asettaa ehtoja muille ohjelmille. Ohjelmaa saa levittää myös yhdessä sellaisten ohjelmien kanssa, joiden lähdekoodi ei ole avointa.
  10. Lisenssin sisällön pitää olla riippumaton teknisestä toteutuksesta. Oikeuksiin ei saa liittää varaumia jakelutavan tai käyttöliittymän varjolla.

 

Aiheesta muualla

 

Tilaa uutiskirjeemme

Seuraa meitä