selitetty.com

Selaimet ja sovellukset

Avoin lähdekoodi käyttäjälle: mitä se lupaa ja mitä se ei

Avoin lähdekoodi on lisenssiä koskeva asia, ei laatuluokitus. Se antaa sinulle oikeuksia, jotka suljettu ohjelma pidättää itsellään, mutta ei lupaa tukea, jatkuvuutta eikä sitä että joku olisi koodin lukenut.

Lyhyt vastaus

Avoin lähdekoodi tarkoittaa, että ohjelman lähdekoodi on julkaistu lisenssillä, joka antaa kenelle tahansa oikeuden käyttää, tutkia, muuttaa ja jakaa sitä edelleen. Se ei tarkoita, että ohjelma olisi maksuton, turvallinen, hyvin tehty tai tuettu, vaikka moni avoin ohjelma on kaikkia näitä. Käyttäjälle avoimuuden tärkeimmät hyödyt ovat riippumattomuus yhdestä toimittajasta, tiedostojen ja datan siirrettävyys sekä se, ettei ohjelmaa voi ottaa pois. Tärkeimmät riskit ovat tuen puuttuminen ja projektin hiipuminen ilman ilmoitusta.

Sisällys
  1. Mitä avoin lisenssi täsmällisesti sallii
  2. Sallivat ja vastavuoroiset lisenssit
  3. Kuka koodin kirjoittaa ja kuka sen maksaa
  4. Miksi "monta silmää" ei tarkoita, että joku olisi katsonut
  5. Tuki ja vastuu: lue lisenssin loppuosa
  6. Tiedostomuodot ratkaisevat sen, mitä saat mukaasi
  7. Näin tunnistat elävän projektin
  8. Usein kysytyt kysymykset
  9. Lähteet ja lisälukemista

Avoimesta lähdekoodista puhutaan kahdella tavalla, ja molemmat menevät osittain pieleen. Ensimmäisen mukaan avoin ohjelma on turvallisempi, koska kuka tahansa voi lukea koodin. Toisen mukaan avoin ohjelma on harrastelijoiden tekele, jota ei voi käyttää mihinkään vakavaan. Kumpikin väite koskee laatua, mutta avoimuus ei ole laadun ominaisuus. Se on lisenssin ominaisuus.

Lisenssi kertoo, mitä sinulla on oikeus tehdä ohjelmalle. Kaikki muu, eli laatu, turvallisuus, tuki ja jatkuvuus, syntyy siitä, kuka ohjelmaa tekee ja millä resursseilla. Tämä ero kannattaa pitää mielessä koko artikkelin ajan, koska siitä seuraa suurin osa käytännön johtopäätöksistä.

Tässä artikkelissa katsotaan avoimuutta käyttäjän kannalta: mitä saat, mitä et saa ja mistä tunnistat projektin, johon voi luottaa. Avoimet tekoälymallit ovat oma erikoistapauksensa ja ne on käsitelty artikkelissa avoimista malleista ja avoimista painoista. Avointa ohjelmaa verrataan tässä maksulliseen vaihtoehtoon vain käyttäjän oikeuksien kannalta, sillä lisensointi ja hinnoittelu on käyty läpi artikkelissa tilausperusteisista ohjelmistoista.

Mitä avoin lisenssi täsmällisesti sallii

Avoimen lähdekoodin määritelmä on olemassa kirjallisena, ja lisenssi joko täyttää sen tai ei. Ytimessä on neljä oikeutta, jotka lisenssin on annettava kaikille ilman erillistä lupaa:

  1. Käyttö mihin tahansa tarkoitukseen. Lisenssi ei saa rajata käyttöä esimerkiksi vain ei-kaupalliseen tai vain tietylle toimialalle.
  2. Lähdekoodin lukeminen. Koodin on oltava saatavilla siinä muodossa, jossa sitä oikeasti kehitetään.
  3. Muuttaminen. Saat korjata virheen tai lisätä ominaisuuden itsellesi.
  4. Jakaminen edelleen. Saat jakaa sekä alkuperäistä että muuttamaasi versiota, alkuperäisen lisenssin ehdoilla.

Näistä seuraa asioita, joita ei aina yhdistetä avoimuuteen. Ohjelmaa ei voi ottaa pois: kun koodi on kerran julkaistu avoimella lisenssillä, sitä lisenssiä ei voi peruuttaa jo jaetulta koodilta. Ohjelmaa ei voi myöskään lukita yhden yrityksen taakse, koska kuka tahansa saa jatkaa kehitystä omana haaranaan, jos alkuperäinen tekijä lopettaa tai muuttaa suuntaa.

Avoin ei myöskään tarkoita maksutonta. Lisenssi ei kiellä myymästä ohjelmaa, ja monet yritykset myyvät avoimeen koodiin perustuvaa tukea, ylläpitoa ja valmiiksi asennettua palvelua. Käytännössä lataus on usein maksuton, koska kuka tahansa saa jakaa sen eteenpäin, mutta se on seuraus lisenssistä eikä lisenssin vaatimus.

Sallivat ja vastavuoroiset lisenssit

Avoimet lisenssit jakautuvat kahteen perheeseen sen mukaan, mitä ne vaativat siltä, joka jakaa muutettua versiota eteenpäin.

Lisenssiperhe Mitä se vaatii Mitä siitä seuraa käyttäjälle
Salliva Tekijätiedot ja lisenssiteksti on säilytettävä Koodia voi käyttää myös suljetussa tuotteessa, joten sama koodi voi olla sekä avoimessa että maksullisessa ohjelmassa
Vastavuoroinen Muutokset on julkaistava samoin ehdoin, kun ohjelmaa jaetaan eteenpäin Ohjelmasta johdetut versiot pysyvät avoimina, mikä turvaa jatkuvuutta mutta rajaa kaupallista uudelleenkäyttöä

Käyttäjälle ero näkyy harvoin suoraan, koska molemmat antavat sinulle samat oikeudet ohjelman käyttöön. Ero näkyy siinä, mitä ohjelmalle voi tapahtua tulevaisuudessa. Vastavuoroisesti lisensoitu projekti on vaikeampi sulkea, koska johdetut versiot on pakko julkaista. Sallivasti lisensoidusta projektista voi syntyä suljettu tuote, jonka lisäominaisuudet eivät palaa avoimeen versioon.

Yritysten ylläpitämissä projekteissa vastaan tulee myös lisenssin vaihto. Sen tekeminen vaatii yleensä, että yritys on kerännyt oikeudet kaikkeen koodiin, ja se onnistuu vain tulevaisuuteen: jo julkaistu versio pysyy sillä lisenssillä, jolla se julkaistiin. Käytännössä tällaisessa tilanteessa yhteisö haarauttaa viimeisen avoimen version ja jatkaa siitä.

Avoin lisenssi ei myöskään ota kantaa siihen, mitä ohjelma tekee verkossa. Avoin ohjelma voi lähettää käyttötilastoja, näyttää mainoksia tai vaatia tilin, aivan kuten suljettukin. Erona on se, että avoimessa ohjelmassa voi tarkistaa mitä lähetetään, ja käytännössä joku yleensä tarkistaakin, jos ohjelmalla on käyttäjiä. Siksi tällaiset ominaisuudet ovat avoimissa projekteissa tavallisesti asetuksissa kytkettävissä pois eivätkä piilotettuja.

Kuka koodin kirjoittaa ja kuka sen maksaa

Avoimen projektin kestävyys ratkeaa rahoituksesta, ei lisenssistä. Rahoitusmalleja on käytännössä neljä, ja ne ennustavat projektin tulevaisuutta paremmin kuin mikään muu yksittäinen tieto.

Yrityksen ylläpitämä projekti on tyypillisesti vakain, koska sen kehittäjät saavat palkkaa. Riskinä on suunnanmuutos: yritys voi siirtää ominaisuuksia maksulliseen versioon tai vaihtaa lisenssiä uusissa julkaisuissa. Säätiön tai yhdistyksen hallinnoima projekti on hallinnollisesti läpinäkyvin ja usein pitkäikäisin, mutta kehitystahti voi olla hidas. Useamman yrityksen yhteinen hanke on vakaa niin kauan kuin osapuolilla on yhteinen intressi. Vapaaehtoisvoimin tehty projekti on herkin: yksi ihminen voi ylläpitää laajassa käytössä olevaa ohjelmaa vuosia ja lopettaa milloin tahansa.

Viimeinen tapaus on yleisempi kuin luullaan. Suuri osa ohjelmistojen taustalla olevista komponenteista on pienen ryhmän tai yksittäisen ihmisen ylläpitämiä, ja niitä käyttävät myös suuret yritykset ilman että kukaan maksaa ylläpidosta. Tämä on avoimen ekosysteemin tunnettu rakenteellinen heikkous, ja siihen on viime vuosina kiinnitetty huomiota myös sääntelyssä.

Miksi "monta silmää" ei tarkoita, että joku olisi katsonut

Yleisin väite avoimuuden puolesta kuuluu, että virheet löytyvät nopeasti, koska koodi on kaikkien nähtävillä. Väitteessä on totuutta, mutta se on ehdollinen. Mahdollisuus lukea koodi ei ole sama asia kuin se, että joku lukee sen.

Avoimuus tekee tarkastuksen mahdolliseksi. Se ei tee siitä tapahtunutta.

Käytännössä koodia lukevat ne, joilla on siihen syy: projektin omat ylläpitäjät, sitä käyttävät yritykset, tietoturvatutkijat ja ne, jotka etsivät haavoittuvuuksia väärässä tarkoituksessa. Suosituissa projekteissa lukijoita on paljon. Vähän käytetyssä kirjastossa, joka on silti asennettuna miljoonissa laitteissa riippuvuutena, lukijoita voi olla hyvin vähän.

Avoimuudella on kuitenkin yksi kiistaton etu virheiden käsittelyssä. Kun haavoittuvuus löytyy, korjaus on julkinen ja tarkistettavissa, ja kuka tahansa voi arvioida korjasiko se ongelman. Suljetussa ohjelmassa käyttäjä näkee vain päivityksen ja tiedotteen, joka voi olla kirjoitettu varovaisesti. Suljetussa mallissa koodin salassapito on osa liikesalaisuutta, mikä on yrityksen kannalta ymmärrettävää mutta tarkoittaa, ettei ulkopuolinen voi vahvistaa mitään itse.

Avoimuus auttaa myös toisella tavalla: voit tarkistaa, että lataamasi tiedosto vastaa julkaistua koodia. Projektit julkaisevat asennuspaketin rinnalla tiivisteen ja usein allekirjoituksen, jonka voi tarkistaa. Tämä on käytännössä sama mekanismi kuin varmenteissa ja sovelluskaupan allekirjoituksissa, jotka on selitetty artikkelissa sovelluskaupoista ja sivulatauksesta.

Rahoitusmalli näkyy usein myös siinä, miten projekti kohtelee käyttäjää. Yrityksen ylläpitämässä projektissa avoin versio voi olla tarkoituksella rajattu, jotta maksullinen versio olisi houkuttelevampi, ja rajaukset koskevat tyypillisesti hallintatyökaluja, käyttäjähallintaa ja yritysominaisuuksia. Tämä on täysin sallittua ja usein järkevää, mutta se kannattaa tunnistaa ennen kuin rakentaa työnsä avoimen version varaan.

Tuki ja vastuu: lue lisenssin loppuosa

Avoimen lisenssin lopussa on lähes aina isoilla kirjaimilla kirjoitettu kappale, jonka sisältö on sama riippumatta lisenssistä: ohjelma toimitetaan sellaisenaan, ilman minkäänlaista takuuta, eikä tekijä vastaa mistään vahingosta.

Tämä on rehellistä, mutta se on syytä ottaa vakavasti. Jos lataat ohjelman verkosta ilmaiseksi, sinulla ei ole toimittajaa, jolle valittaa. Ei ole tukinumeroa, ei palvelutasolupausta eikä sopimuskumppania. Vertailukohtana kuluttajan ostama maksullinen ohjelmisto on sopimus, jossa on toinen osapuoli.

Käytännön tuki tulee kolmesta paikasta: projektin oma dokumentaatio, käyttäjäyhteisön keskustelupalstat ja maksulliset tukipalvelut, joita yritykset myyvät avoimen ohjelman ympärille. Kolmas on se, jota organisaatiot ostavat, ja se muuttaa asetelman sopimukselliseksi.

Vastuukysymyksiin on tulossa muutosta EU:n sääntelyn kautta. Digitaalisilta tuotteilta aletaan vaatia tietoturvaominaisuuksia ja haavoittuvuuksien käsittelyä koko tuetun elinkaaren ajan, ja sääntely kohtelee kaupallista toimintaa eri tavalla kuin ei-kaupallista avointa kehitystä. Yksityishenkilön julkaisema harrasteprojekti ei siis muutu velvoitteiden kohteeksi, mutta avointa koodia tuotteessaan käyttävä yritys vastaa siitä, mitä myy. Siirtymäajat ovat pitkiä, joten käytännön vaikutukset näkyvät vähitellen.

Tiedostomuodot ratkaisevat sen, mitä saat mukaasi

Käyttäjän kannalta avoimuuden konkreettisin hyöty ei useinkaan ole lähdekoodi, jota hän ei lue, vaan tiedostomuoto. Avoimessa projektissa tallennusmuoto on tyypillisesti julkisesti dokumentoitu, ja jos ei ole, sen voi selvittää koodista.

Tästä seuraa käytännön etu. Avoimesti dokumentoidussa muodossa tallennettu tiedosto on luettavissa myös silloin, kun alkuperäinen ohjelma ei enää toimi tai kun siirryt toiseen työkaluun. Suljetussa muodossa tallennettu tiedosto on riippuvainen siitä, että joku ylläpitää lukijaa, ja tämä riippuvuus on yksi merkittävimmistä syistä siihen, miksi vanhoihin tiedostoihin ei enää pääse käsiksi. Aihe on käsitelty laajemmin artikkelissa tiedostomuodoista.

Sama koskee kokonaisia järjestelmiä. Avoimeen koodiin perustuva käyttöjärjestelmä pitää vanhan koneen käytössä pidempään kuin valmistajan tuen päättyminen sallisi, mikä on yksi syy siihen miksi sellainen kannattaa tuntea vaihtoehtona. Käyttöjärjestelmien väliset erot on käyty läpi artikkelissa Windowsin, macOSin ja Linuxin eroista, eikä valintaa toisteta tässä.

Avoin ohjelma ei myöskään pakota tallentamaan pilveen. Kun ohjelma ajetaan omalla koneella, data on omalla levylläsi, ja pilvipalvelun käyttö on valinta eikä oletus. Tämä ei ole automaattisesti parempi, koska oma levy vaatii oman varmuuskopioinnin, mutta se on eri riski kuin riippuvuus toisen ylläpitämästä palvelusta. Jos olet siirtymässä pois pilvipalvelusta, datan siirto pois palvelusta kannattaa tehdä ennen kuin tili suljetaan.

Näin tunnistat elävän projektin

Ennen kuin otat avoimen ohjelman tositoimiin, tarkista muutama merkki. Ne löytyvät projektin kotisivulta ja koodivarastosta minuuteissa, eivätkä ne vaadi ohjelmointitaitoa.

  1. Milloin viimeisin julkaisu on tehty? Aktiivisessa projektissa julkaisuja tulee säännöllisesti. Vuosi ilman julkaisua ei ole hälytys pienessä vakaassa työkalussa mutta on sitä selaimessa tai palvelinohjelmassa.
  2. Kuinka moni on tehnyt muutoksia viimeisen puolen vuoden aikana? Yksi ainoa nimi tarkoittaa, että projekti loppuu, jos hän lopettaa.
  3. Vastataanko vikailmoituksiin? Katso avoimet ilmoitukset ja niiden käsittely. Satoja vastaamattomia ilmoituksia on huonompi merkki kuin niiden suuri määrä.
  4. Onko tietoturvakäytäntö kuvattu? Elävässä projektissa on kerrottu, mihin haavoittuvuudesta ilmoitetaan ja miten se käsitellään.
  5. Onko dokumentaatio ajan tasalla? Ohje, joka viittaa vuosia vanhoihin valikoihin, kertoo että ylläpito on jäänyt.
  6. Kuka rahoittaa? Etsi sivulta tieto säätiöstä, yrityksestä tai sponsoreista. Rahoituksen puuttuminen ei ole este, mutta se on tieto riskistä.
  7. Mistä paketti ladataan? Käytä projektin virallista sivua tai käyttöjärjestelmän omaa pakettilähdettä. Avoimen ohjelman nimissä jaetaan myös muokattuja asennuspaketteja, joissa on mukana ylimääräistä.
  8. Onko olemassa varasuunnitelma? Jos projekti loppuisi huomenna, saisitko tiedostosi ulos ja löytyisikö korvaava työkalu.

Jos vastaukset ovat kunnossa, avoin ohjelma on yhtä käyttökelpoinen kuin maksullinen vaihtoehto, ja usein pitkäikäisempi. Jos eivät, ongelma ei ole avoimuudessa vaan siinä, että projektilla ei ole ylläpitäjää. Sama arvio kannattaa tehdä myös suljetulle ohjelmalle, jossa vastaavat tiedot ovat vain vaikeammin saatavilla.

Usein kysytyt kysymykset

Onko avoin lähdekoodi turvallisempaa kuin suljettu?

Ei automaattisesti. Avoimuus tekee tarkastuksen mahdolliseksi, mutta ei takaa että koodia olisi tarkastettu. Suosituissa ja aktiivisesti ylläpidetyissä projekteissa lukijoita on paljon, kun taas vähän käytetyssä komponentissa voi olla hyvin vähän. Korjausten julkisuus on kuitenkin avoimuuden selkeä etu.

Tarkoittaako avoin lähdekoodi samaa kuin ilmainen ohjelma?

Ei tarkoita. Avoin lähdekoodi on lisenssin ominaisuus, maksuttomuus on hinnoittelun ominaisuus. Avointa ohjelmaa saa myydä, ja moni yritys myy sen ympärille tukea ja ylläpitoa. Latauksen maksuttomuus johtuu siitä, että kuka tahansa saa jakaa ohjelmaa eteenpäin.

Mitä tapahtuu, jos avoimen ohjelman kehitys loppuu?

Ohjelma jää toimimaan, mutta se ei enää saa korjauksia, joten sen käyttö vanhenee tietoturvan kannalta. Koodi jää julkiseksi, joten joku muu voi jatkaa kehitystä omana haaranaan, ja suosituissa projekteissa näin usein käykin. Varaudu silti siihen, että tiedostot pitää saada siirrettyä toiseen työkaluun.

Voinko saada tukea avoimelle ohjelmalle?

Voit, mutta yleensä maksullisesti tai yhteisöltä. Lisenssi itsessään sulkee takuun ja vastuun pois, joten ilmaiseen lataukseen ei liity tukilupausta. Organisaatiot ostavat tuen yritykseltä, joka myy palvelua avoimen ohjelman ympärille.

Onko avoimen ohjelman käyttö yrityksessä sallittua?

On, mutta lisenssin ehdot on luettava. Sallivat lisenssit vaativat käytännössä vain tekijätietojen säilyttämisen, kun taas vastavuoroiset lisenssit velvoittavat julkaisemaan muutokset, jos ohjelmaa jaetaan eteenpäin. Pelkkä sisäinen käyttö ei yleensä laukaise julkaisuvelvoitetta.

Mistä avoimen ohjelman kannattaa ladata?

Projektin virallisilta sivuilta tai käyttöjärjestelmän omasta pakettilähteestä. Avoimen ohjelman nimissä levitetään myös muokattuja asennuspaketteja, joihin on lisätty ylimääräistä. Jos projekti julkaisee tiivisteen tai allekirjoituksen, tarkista lataus sillä.

Kannattaako vaihtaa maksullinen ohjelma avoimeen?

Vaihda silloin kun avoin työkalu tekee sen, mitä oikeasti käytät, ja kun tiedostot saa siirrettyä molempiin suuntiin. Tee vaihto vaiheittain ja pidä vanha ohjelma käytettävissä siirtymän ajan. Vaihto pelkän periaatteen vuoksi keskellä kiireistä projektia harvoin kannattaa.

Takaisin ylös