COSS.fi

Avoin lähdekoodi

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.

Avoimen lähdekoodin lisenssit

Erilaisia avoimen lähdekoodin lisenssejä on kymmeniä. Suurin toiminnallinen ero eri avoimen lähdekoodin lisensseissä on niiden ehdoissa teosten muunteluun ja yhdistämiseen, kun näin syntyviä teoksia levitetään.

Osa lisensseistä edellyttää teoksen muutosten lisensointia alkuperäisen teoksen lisenssillä, osa lisensseistä edellyttää teosten kaikenlaisten johdannaisten, ml. yhdistelemällä tehtyjen johdannaisten, lisensioimista samalla lisenssillä. Osa lisensseistä sallii teoksen kaikenlaisen käytön ilman, että teoksen lähdekoodia tarvitsee avata levitettäessä teosta.

Esimerkiksi GPL on nk. vahvan copyleftin lisenssi eli sen alaisen koodin hyödyntäminen osana toista tuotetta edellyttää syntyneen teoksen lisensoimista GPL:n alla, mikäli teosta levittää.

Open Source Iniativen hyväksymät lisenssit on listattu OSI:n sivuilla.

Lisensseistä löytyy tiivistetty kuvaus myös Free Software Foundationin sivuilta.

Sisältölisenssit

Avoimen lähdekoodin lisenssit eivät ole parhaimmillaan sisällön, kuten kuvien, videoiden tai tekstin lisensointiin. Creative Commons -lisenssit ovat suosituimpia avoimelle sisällölle.

Creative Commons -lisenssit tarjoavat laajan valikoiman suojaa ja vapautta tekijänoikeuteen. Perinteinen kaikki oikeudet pidätetään on muutettu muotoon jotkut oikeudet pidätetään. Lisenssiperheestä on julkaistu eri versioita ja lisenssejä on käännetty myös suomen kielelle.

Lähde: creativecommons.fi

Avoimen lähdekoodin ohjelmistot

Avoimen lähdekoodin ohjelmistoja löytyy laajoista tuotekokonaisuuksista yksittäisiin ohjelmistoihin. Tuotekokonaisuuksista esimerkkeinä tunetuimpia ovat Ubuntu ja openSUSE. Yksittäisistä avoimen lähdekoodin ohjelmistoista esimerkkeinä puolestaan ovat Firefox, WordPress, Drupal, Odoo, Gimp, Magento, Blender ja lukuisat muut ohjelmistot.

Ohjelmistohakemistot

Open Source as Alternative, www.osalt.com

Listaa avoimen lähdekoodin vaihtoehtoja tunnetuille suljetuille ohjelmistoille.

Yksittäiset työpöytäohjelmat

Alla lueteltuna on eräitä suosituimpia ammattilais- ja kuluttajaohjelmistoja:

Näiden ja muiden ohjelmien asentaminen vapaisiin käyttöjärjestelmätuotteisiin on yleensä helppoa. Ohjelmia ei tarvitse ladata eri sivustoilta, vaan lähes kaikki vapaat ohjelmistot tuhansien valikoimasta ovat asennettavissa muutamalla hiiren napsautuksella.

Tuotekokonaisuudet

Perinteisiä tietokoneita ja osaa mobiililaitteista voidaan käyttää kokonaan vapaiden, avoimen lähdekoodin ohjelmistojen avulla. Tällainen tuote sisältää siis käyttöjärjestelmän, jolla laite toimii, sekä kaikki tarvittavat oheisohjelmistot kuten työpöytäkäytössä toimisto-ohjelmat, Internet-ohjelmat ja niin edelleen:

Opetuskäyttö

Vapaat ohjelmistot opetuskäytössä mahdollistavat uusia opetusmahdollisuuksia, reiluja kustannussäästöjä sekä riippumattomuutta. Hankkeita on käynnissä eri puolilla Suomea.

Esimerkkinä avoimen lähdekoodin Moodle opetusalusta, joka on laajalti käytössä Suomessa.

Toiminnanohjausjärjestelmät

Avoimen lähdekoodin toiminnanohjausjärjestelmät ovat valtaamassa alaa markkinoilla. Järjestelmien hintataso on yleisesti laskemassa ja avoin lähdekoodi on yksi vaikuttava tekijä. Hintatason puolesta järjestelmän hankkiminen pienemmällekin toimijalle on mahdollista. Avoimen lähdekoodin järjestelmien yhteisökehitys tarjoaa mahdollisuuden toteuttaa kustannustehokkaampia ratkaisuja kuin suljetulla koodilla. Tämän lisäksi toimittajalukottomuus lisää kilpailua markkinoilla sekä koodin yhteisökehitys luo tehokkaamman mallin luoda palveluita. Kaikki nämä yhdessä tekevät avoimesta lähdekoodista kustannustehokkaan. 

Tutustu tarkemmmin erilaisiin saatavilla oleviin avoimen lähdekoodin toiminnanohjausjärjestelmiin täällä

Palvelinkäyttö

Suurin osa Internetistä ja sen palvelimista toimii Linuxin ja muiden avoimien ohjelmistojen avulla, joko kokonaan tai osittain. Yksi varhaisimmista ja suosituimmista ohjelmistoyhdistelmistä on niin kutsuttu LAMP – eli yhdistettynä ohjelmistot Linux-käyttöjärjestelmä, Apache-webpalvelin, MySQL-tietokanta ja PHP-ohjelmointikieli. Muun muassa Wikipedia sisarprojekteineen toimii tämän päällä.

Palvelinohjelmistojen kirjon hyödyntämiseen käytetään yleensä avoimen lähdekoodin ohjemistojen asiantuntijayrityksiä, sillä käyttötarkoituksesta ja elinkaaresta riippuen vaihtoehtoja on runsaasti.

Projektien kehitysalustoja

SourceForge, sourceforge.net

Projektimäärältään suurin avoimen lähdekoodin projektien kehitysalusta.

Launchpad, launchpad.net
Avoimen lähdekoodin projektien kehitysalusta.

Scroll to Top