Open Source -ohjelmistot OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Mikael Kujanpää TTK / TT -00 Internet ja tietoverkot -kurssin essee 10. helmikuuta 2003
Sisältö 1 Johdanto 2 2 Open Source? 2 2.1 Open Source -lisenssit......................... 3 3 Open Source -ohjelmien historia 4 4 Open Sourcen nykytila 6 5 Open Sourcen tulevaisuus 7 5.1 Uhkakuvat................................ 7 5.1.1 Ohjelmistotarjonnan ongelmat................. 8 5.2 Open Sourcen leviämistä edesauttavia seikkoja............ 9 6 Yhteenveto 9
1 Johdanto Tämä essee käsittelee Open Source -ohjelmien kehitysvaiheita, nykytilannetta, hiukan tulevaisuuden näkymiä sekä tietysti sitä, mistä Open Sourcessa on ylipäätänsä kyse. Open Sourcen historiaa käsitellessäni pyrin lyhyesti vastaamaan kysymyksiin miksi, miten, milloin, missä ja kuka. Nykytilanteesta pyrin antamaan yleiskatsauksen, ja tulevaisuutta tarkastelen uhkakuvien ja leviämistä edistävien seikkojen kautta. 2 Open Source? Termi Open Source otettiin käyttöön varsin myöhään vasta 1998, aate itsessään on peräisin kuitenkin jo 1960-luvulta. Virallisen määritelmän [1] mukaan ohjelman täytyy täyttää seuraavat yhdeksän kohtaa ollakseen Open Sourcea: 1. vapaa levitysoikeus 2. lähdekoodi 3. johdannaiset teokset 4. lähdekoodin yhteenkuuluvuus 5. henkilöiden ja ryhmien syrjinnän kielto 6. toimialojen syrjinnän kielto 7. lisenssin levittäminen 8. lisenssi ei saa olla tuotekohtainen 9. lisenssi ei saa rajoittaa muita ohjelmia Lyhyesti ja yksinkertaistetusti sanottuna Open Sourcessa on kyse ohjelmien vapaasta ohjelmoinnista, levityksestä ja muokkaamisesta. Kuka tahansa joka saa jostain käsiinsä Open Source -ohjelman, voi vapaasti lukea ja muokata sen lähdekoodia, 2
ja hiukan lisenssistä riippuen jakaa myös edelleen eteenpäin sitä. Virallisen määritelmän tarkoituksena on varmistaa, jotta termiä Open Source ei voitaisi väärinkäyttää esimerkiksi taloudellisen hyödyn tavoittelussa. Huomattavaa kuitenkin on, että Open Source -aate ei sinänsä ole kaupallisuutta vastaan ainoastaan ohjelmien vapaa levitettävyys ja muokattavuus halutaan turvata. 2.1 Open Source -lisenssit Open Sourcen esiintyy monissa eri muodoissa nykypäivänä. Käytännössä esiintymismuodon sanelevat lisenssit, joista yleisimmät esittelen lyhyesti: [2] GPL (General Public Lisence): GPL on Richard Stallmanin kehittelemä, GNU (GNU s not Unix) -projektin suosima lisensointityyppi. Lisenssi on tarkka siitä, miten lähdekoodia voi hyödyntää: se yksikäsitteisesti sanelee, että GPLohjelmien lähdekoodin perusteella kehitettyjen ohjelmien lisenssiksi tulee myös automaattisesti GPL. Monia muitakin rajoituksia on, mutta lähes kaikki tähtäävät siihen, että GPL-ohjelmaa ei voi muuttaa ei-vapaaksi. Ei-vapaa - ohjelma määritellään GPL-lisenssissä varsin tarkasti. LGPL (Lesser General Public License): LGPL on nimensä mukaisesti kevennetty versio GPL-lisenssistä. Se sallii LGPL-lisensoidun ohjelman liittämisen mukaan myös kaupallisiin projekteihin. BSD-tyyliset lisenssit: BSD (Berkeley Standard Distribution) -tyyliset lisenssit ovat kaikkein vanhin Open Source -ohjelmien lisensointitapa. BSD on ainoastaan yleisnimike hyvin suurelle joukolle yksittäisiä, BSD-tyylisille -lisensseille. Käytännössä tämä tarkoittaa, että BSD:n alla voi julkaista omiin tarkoituksiinsa muokatut käyttöehdot, kunhan lähdekoodi on vapaasti jaossa ja siitä löytyy tekijänoikeuksien haltijoiden nimi sekä BSD-lisenssi. Monet yritykset käyttävät julkisissa projekteissaan tätä lisensointimallia. Yllä olevasta huomataan, että ohjelman voi lisensoida hyvin monilla eri tavoilla jotta se olisi Open Sourcea. Lisenssien tehtävänä on perinteisesti ollut ohjelmiston käytön 3
rajaaminen ohjelmiston valmistajan ennalta määräämällä tavalla. Esimerkiksi Microsoft Visual C++:n lisenssi [8] kieltää ohjelman käytön uuden käyttöjärjestelmän ohjelmointiin. Kaupallisten ohjelmistojen lisensseissä on lähes poikkeuksetta kielletty ohjelman vapaa levitys, mikä toki on tekijänoikeuslakienkin mukaisesti itsestään selvää. Open Source -ohjelmien lisensseillä on samankaltainen merkitys, mutta toisaalta myös täysin päinvastainen. Myös OSS (Open Source Software, eli vapaan lähdekoodin ohjelmistot) -maailmassa lisenssien tarkoituksena on suojata ja turvata ohjelman kehittäjien etuja, mutta toisaalta myös taata ohjelmiston vapaana pysyminen. Monet taloudellisia hyötyjä tavoittelevat tahot tuntisivat helposti liian suurta houkutusta hyödyntää vapaita ohjelmistoja omiin tarkoituksiinsa ja tuhota näin koko Open Sourcen idean, ilman lisenssejä. Yleinen harhaluulo on, että esimerkiksi GPL-lisenssi rajoittaisi ohjelman käyttömahdollisuuksia. Tilanne riippuu kuitenkin siitä, mihin verrataan: normaalin, erikseen lisensoimattoman ohjelman käyttömahdollisuudet ovat tekijänoikeuslakien takia huomattavasti rajallisemmat kuin GPL-lisensoidun. GPL on siis eräänlainen laajennus tekijänoikeuteen, jossa tekijä nimenomaisesti luopuu tietyistä oikeuksistaan tekemäänsä teokseen. Käytännössä GPL-lisenssillä varustetun ohjelman suurin ero perinteisen tekijänoikeuden alaiseen ohjelmaan nähden on, että GPL-lisensoitua ohjelmaa saavat muutkin kuin tekijä levittää vapaasti, mikä perinteisesti olisi laitonta. Lisensseistä puhuttaessa on myös huomatta eräs, Open Sourcelta kuulostava lisenssi: Shared Source [7]. Kyse on Microsoftin kehittelemästä lisenssityypistä, jonka avulla Microsoft yrittää hyödyntää Open Source -ohjelmien saamaa hyvää mainetta. Shared Source ei kuitenkaan täytä alkuunkaan Open Source -ohjelmien vaatimuksia, koska se on ristiriidassa lähes jokaisen vaatimuksen kanssa. 3 Open Source -ohjelmien historia Kuten aikaisemmin jo totesin, termi Open Source otettiin käyttöön vasta vuonna 1998. Sen keksi Chris Peterson. Itse ajatus syntyi kuitenkin jo 1960-luvulla, ja sen 4
isäksi voitaneen perustellusti nimittää amerikkalaista Richard Stallmania. 1970-luvulla oli amerikassa aktiivinen ohjelmoijaryhmä MIT:n AI-laboratoriossa, joka jakoi kirjoittamaansa lähdekoodia vapaasti muille ryhmänsä jäsenille. Tästä sai alkunsa GNU-liike, jonka idealle Stallman perusti Free Software Foundation - nimisen säätiön. Säätiön tarkoituksena oli edistää vapaan lähdekoodin hyödyntämistä ja jakamista. Hän kehitti myös GPL-lisenssin, jonka olennaisin sisältö on estää kaupallisia tahoja kaappaamasta vapaata lähdekoodia itselleen. GNU-liikkeen tarkoituksena oli kehittää Unix -tyyppinen järjestelmä, joka olisi kaikilta osin GPL-lisensoitu. Koska juuri minkäänlaisia GPL-työkalujakaan ei ollut olemassa, osoittautui tehtävä hyvin vaikeaksi. Ainut merkittävä olemassa oleva työkalu oli Emacs, jonka Stallman oli kirjoittanut MIT:ssa työskennellessään. Tähän rinnalle hän kirjoitti C-kääntäjän, GCC:n. Perinteisesti Unixissa C-ohjelmien kääntäjä on ollut cc, joten nimike gcc tulee sanoista GNU cc. Monia muitakin työkaluja kehitettiin, mutta valitettavasti itse käyttöjärjestelmän ydin, kernel, ei ottanut valmistuakseen. Open Source -pohjaista kokonaista käyttöjärjestelmää ei siis onnistuttu luomaan, ainoastaan iso kasa tarpeellisia oheistyökaluja. 1991 Linus Torvalds tuli kuitenkin apuun, kirjoittamalla vapaan Unix-pohjaisen käyttöjärjestelmän ensimmäisen ytimen, Linuxin. Alunperin hänen ei ollut tarkoitus tehdä sitä GNU-liikkeelle, mutta hyvin pian se yhdistettiin siihen koska GNU:n luomat oheistyökalut ja Linusin kirjoittama ydin täydensivät toisiaan niin hyvin. Linuxin myötä GNU-liikkeen ajama vapaa käyttöjärjestelmä oheistyökaluineen oli vihdoin valmis. Ensimmäinen raakakappale oli tehty, enää niitä tarvitsi vain jatkokehittää. Ja kehitys onkin ollut nopeaa: GNU/Linuxin (jatkossa lyhyemmin Linux) käyttäjämäärät ovat kasvaneet huikeaa vauhtia, eikä loppua näy edelleenkään. Varsinkin palvelinjärjestelmissä Linux tuli suosituksi vakautensa, skaalautuvuutensa ja hyvän konfiguroitavuutensa takia. Open Sourcen nykyiseen asemaan pääseminen on lukemattomien avuliaiden alan harrastajien suorittama yhteisponnistus, mutta Richard Stallman ansainnee erityiskiitoksen GNU-liikkeen perustajana. Toisaalta Linus Torvalds ansainnee myös erityiset kiitokset luodessaan GNU-projektista vihdoinkin valmiin. Näistä lähtökohdista katsottuna onkin erityisen ikävää, että Stalmann ja Torvalds ovat ajautuneet 5
ristiriitoihin lähinnä siitä, että Stallman vaatii että Linuxista täytyisi alkaa puhumaan GNU/Linuxina, onhan se GNU-liikkeen työkaluilla rakennettukin. Linus puolestaan on sitä vastaan, koska nimestä tulisi tarpeettoman monimutkainen, ja toisaalta, eihän GNU-liikkeen tehtävänä ollut korostaa itseään, vaan luoda vapaa käyttöjärjestelmä. Näistä vaatimuksista johtuen Stallman onkin joutunut hiukan huonoon valoon Linux-piireissä. Toki täytyy muistaa, että ainakin periaatteessa OSS on eri asia kuin Linux, tai sille tehdyt ohjelmat Linux on ainoastaan OSS tuote muiden joukossa. Käytännössä kuitenkin suurin osa OSS:ta tehdään alunperin Linuxille, ja siitä niitä sitten edelleen siirretään eri käyttöjärjestelmille näin ollen Windowsillekin on alkanut löytyä lisää Open Source -ohjelmia; jopa bash-komentotulkki on portattu 1 Windowsille! 4 Open Sourcen nykytila Nykytilanne on hetkellisiä pikku kriisejään lukuunottamatta näyttää OSS:lla paremmalta kuin koskaan. Kehittäjien lukumäärä kasvaa koko ajan mikä parantaa ohjelmistojen tasoa ja tuo näin mukaan uusia käyttäjiä. Ja uudet käyttäjät puolestaan vetävät mukanaan uusia kehittäjiä, jotka taas parantavat järjestelmää entisestään. Oravanpyörä on valmis. Kuten aikaisemmin totesin, OSS on saavuttanut palvelinkoneissa hyvin jalansijaa. Esimerkiksi Internetin www-palvelimista lähes 63% ajaa Apachea 2 [3]. Myöskin sulautetuissa järjestelmissä Open Source saavuttaa suosiota. Löytyy Linuxpohjaisia DVD ja MP3 -soittimia, kännyköitä, digikameroita ja muuta käyttöelektroniikkaa. Vuosi sitten Saksa ilmoitti vaihtavansa 150 valtion palvelinta Windowsista Linuxiin [5]. Myös Suomessa eri kaupungit ovat tutkineet mahdollisuuksia siirtyä Linuxiin sekä OpenOfficen 3. Vastaavanlaisia tarinoita on maailmalta kuulunut lukuisia. 1 porttaaminen tarkoittaa ohjelman siirtämistä käyttöjärjestelmästä toiseen 2 Apache on eräs Open Source -pohjainen www/ftp -palvelinohjelmisto 3 Open Source -toimisto-ohjelmisto, joka on kaksoislisensoitu sekä LGPL:n, että SISSL:n alaisuuteen [4]. 6
5 Open Sourcen tulevaisuus Open Sourcen tulevaisuus näyttää varsin valoisalta tällä hetkellä, mutta tiettyjen uhkakuvien takia tie voi olla kuoppainen. Esitän tässä luvussa hiukan uhkakuvia, mutta myös OSS:n leviämistä edesauttavia tekijöitä. 5.1 Uhkakuvat Open Source ohjelmien suurimmaksi uhkatekijäksi maineen kannalta voinee nimetä yksittäisen tahon: Microsoft. Ymmärrettävästi Microsoftille on erittäin vaikea asia, että ilmainen käyttöjärjestelmä alkaa nakertaa sen vielä toistaiseksi suurta pöytäkoneiden käyttöjärjestelmäosuutta. Palvelinpuolellahan Microsoft on jo menettänyt pelin. Jotta vastaavaa ei tapahtuisi pöytäkonepuolella, on Microsoft aloittanut suurehkon Open Source -ohjelmien mustamaalaamisprojektin, ja erityisesti tämä kohdistuu Linuxiin. Kampanjan tiimoilla on levitetty paljon jossain määrin faktoihin perustuvia mustamaalaavia tulkintoja, kuten että Open Source -ohjelmistot ovat kommunismia, ja että ne syövät leivän vapailta yrittäjiltä, mutta myös suoranaisia valheita. Ikävimpiä valheita ja puolitotuuksia edustavat erilaiset tutkimukset, kuten esimerkiksi Lappeenrannan kaupungille viime vuonna tehty Microsoftin tutkimus [6], jonka mukaan Windows -ympäristö tulee edullisemmaksi kuin vastaavanlainen Linux - ympäristö. Mitään lähdelukuja Linuxin tiimoilta ei kerrottu julkisuuteen, kuten ei myöskään laskentaperusteita, joten tällainen tutkimus ei kestä minkäänlaista tieteellistä tarkastelua. Itse siis näen suurimmaksi Open Sourcen uhkakuvaksi perättömän mustamaalaamisen. Microsoft ei kuitenkaan ole onnistunut kovin hyvin pyrkimyksissään, ja yhdistettynä epäonnistuneeseen lisenssiuudistukseensa sekä muutamiin muihin kriittisiin ongelmiin, MS paremminkin on edesauttanut Open Sourcen leviämistä. Mutta mustamaalaus ei ole ainut riski. Ehkä hiukan teoreettisempi, mutta toki mahdollinen, ongelma on esimerkiksi OSS-porukan kahtiajakautuminen yhä pienempiin ja pienempiin leireihin, jolloin kehitys pysähtyy keskinäisen riitelyn takia. Kahtiajakautuminen on toisaalta myös järjestelmän rikkaus, koska se sallii ohjelmistojen 7
evolutionaarisen kehityksen, ts. parhaimmat selviytyvät. 5.1.1 Ohjelmistotarjonnan ongelmat Käytännössä Open Source -ohjelmistot eivät työpöytäkäytössä ole kyenneet lyömään itseään läpi, koska joitakin kriittisiä ohjelmistoja puuttuu edelleen tai ne ovat vielä liian kehittymättömiä. Toimisto-ohjelmistot olivat pitkään tällainen kompastuskivi, mutta OpenOffice.Org:n [9] sekä Star Officen [10] myötä tilanne alkaa korjaantumaan. Sen sijaan multimediapuolella näyttää heikommalta: valmiiden multimediaesitysten hyödyntäminen Linuxissa onnistuu jo aika hyvin, mutta kunnollisia ohjelmistoja sen luomiseksi puuttuu. Kuvankäsittelypuolella löytyy kyllä Gimp, mutta esimerkiksi musiikintekemiseen ei tietääkseni hyviä ohjelmistoja ole. On myös huomattava, että toimisto-ohjelmien löytyminen ei vielä yksin riitä: mikäli koulutusjärjestelmä ei opeta mitään muuta kuin Microsoftin Officea, eivät ihmiset ala muita opettelemaan ja näin ollen työpaikoille täytyy myös hankkia kyseistä ohjelmistoa. Työpaikoilla näyttelevät tärkeää osaa myös erikseen yrityksen / yhteisön omaan tarkoitukseen suunnitellut erikoisohjelmistot. Nykyisestä ohjelmistokannasta suurin osa lienee Windowsille, joten Windows turvaa niiden avulla työpaikoilla säilymisensä pöytäkoneissa. Kotikäytön yleistymisen esteenä näkisin suurimpana yksittäisenä ohjelmistopuutteena tietokonepelit: niin kauan kuin niitä ei Linuxille julkaista, eivät suuret massat halua Linuxia hankkia kotikoneisiinsa. Täytyy kuitenkin huomata, että Linux itsessään ei sisällä teknisiä tai muitakaan rajoitteita em. ohjelmistojen toteuttamiseen Linux -ympäristössä. Tarvittaisiin ainoastaan tietyn kriittisen pisteen ylitys käyttäjämassassa, jotta ohjelmistoyritykset alkaisivat kehittämään Linux-ohjelmistoja todenteolla. Monet yritykset toki näin tekevätkin jo nykyään, mutta valitettavasti yleensä kaikki tehdään ensin Windowsille, ja sitten portataan Linuxille vasta kuukausien tai pahimmillaan jopa vuosien kuluttua. 8
5.2 Open Sourcen leviämistä edesauttavia seikkoja Kehittäjille Open Sourcen tarjoamista eduista kiinnostavin lienee liikkeen filosofinen ajattelumalli: vapaus, ja ehkäpä jopa veljeys sekä tasa-arvo. Omaan käyttöön tehdyn pikkuohjelman voi jakaa vapaasti pois, jos tuntuu että joku muukin saattaisi hyötyä sen käytöstä. Toisaalta, vastapainoksi saa käyttää toisten ideoita ja ongelmanratkaisuja. Käyttäjille Open Sourcen edut ovat varsin houkuttelevia: ohjelmia saa ilmaiseksi käyttöönsä, ja usein niiden laatu on jopa parempi kuin vastaavien kaupallisten ohjelmien. Toisaalta, kehittäjien aktiivinen nettielämä edesauttaa tuen saamista tuotteille. Esimerkiksi uutisryhmiä lukevat monet ohjelmien kehittäjät, joilta saa kullan arvoisia vinkkejä ja neuvoja ongelmatilanteissa. Toisaalta myös ohjelmiston virheiden raportointi toimii näin suoraan käyttäjän ja tekijän välillä, eikä isojen yritysten kankeaa byrokratiaa tarvitse käydä läpi. Etenkin testaus on Open Source -maailmassa hyvässä mallissa. Laajan kehitys- ja tukiorganisaation ansiosta monilla projekteilla on testaajia ympäri maailmaa. Ja vaikkei testaus sinänsä olekaan autuaaksi tekevä seikka, on sen avulla silti mahdollista löytää pahimmat virheet ohjelmistosta jo betatestausvaiheessa, ja näin saada lopullisesta tuotteesta varsin laadukas. Etenkin kun betatestaajat voivat itse korjata vikoja, päinvastoin kuin suljetun lähdekoodin ohjelmistojen kanssa. 6 Yhteenveto Open Source -ohjelmistot ovat vallanneet varsin hyvän jalansijan nykypäivän tietokoneista. Internet ja Open Source kulkivat hyvin toistensa tukijoina, jolloin kummankin kehitys vaikutti kumpaankin: Internetiä kehitettiin vapaiden ohjelmistojen avulla, ja toisaalta vapaiden ohjelmistojen kehittäminen helpottui Internetin mahdollistaman kommunikaation avulla. Tästä tuloksena meillä on hyvin suuri ja aktiivinen ihmisjoukko, joka tuottaa varsin laadukkaita ohjelmistoja vapaasti käytettäväksi. 9
Viitteet [1] Välimäki M., Open Source definition, http://www.free-soft.org/mirrors/www.opensource.org/docs/osd-finnish.html [2] Lehti R., Open Source -ohjelmistokehitys, diplomityö, http://www.cs.tut.fi/ rammer/ossd/node10.html [3] Netcraft Web Server Survey, http://www.netcraft.com/survey/ [4] OpenOffice.Org, http://www.openoffice.org/license.html [5] Tietoviikko, Saksa luottaa pingviiniin, http://www.tietoviikko.fi/doris/doriswww.dll?dpubl&stivisearch,45494 [6] Microsoft Finland Oy, Gartner TCO-tutkimus, http://www.microsoft.com/finland/business/tco/lpr.pdf [7] Microsoft Corporation, Shared Source, http://www.microsoft.com/licensing/sharedsource/default.asp [8] Microsoft Corporation, Microsoft Licensing Product use rights, http://www.microsoft.com/licensing/downloads/pur.pdf, Microsoft Developers Tools, 43 [9] OpenOffice.Org, http://www.openoffice.org/ [10] Star Office, http://wwws.sun.com/software/star/staroffice/6.0/ 10