Vapaa ohjelmisto
Vapaa ohjelmisto () on sellainen tietokoneohjelmisto, joka kunnioittaa ohjelman käyttäjän vapauksia käyttää, muokata ja jakaa kyseistä ohjelmistoa. Vapaa ohjelmisto menee usein sekaisin avoimen lähdekoodin kehityksen kanssa. On huomattava, että vapaa ohjelmisto ja avoimen lähdekoodin ohjelmisto eivät ole sama asia, eivätkä ne ole toisiaan poissulkevia.
Vapaista ohjelmistoista puhuttaessa halutaan usein viitata eettis-normatiiviseen ajatukseen, jonka mukaan ohjelmistojen nimenomaan kuuluu olla vapaita ja omistusohjelmistot voidaan nähdä tällöin epämoraalisina. Kontrastina tähän pelkkä avoin lähdekoodi ("open source") taas viittaa ohjelmistojen kehitysmenetelmään.
Akronyymeillä "FOSS" (Free and Open Source Software) ja "FLOSS" (Free/Libre and Open Source Software) voidaan viitata saman aikaisesti avoimiin ohjelmistoihin että avoimeen lähdekoodiin. Suomeksi voidaan vastaavasti käyttää akronyymiä VALO (Vapaa ja avoimen lähdekoodin ohjelmisto).
Koska englannin sana "free" voi tarkoittaa paitsi vapaata myös ilmaista, vapaat ohjelmistot saatetaan joskus sekoittaa ilmaisohjelmiin, joita ei kuitenkaan saa tutkia ja muuttaa vapaasti. Vaikka vapaatkin ohjelmistot tyypillisesti ovat saatavilla maksuttomasti, maksuttomuus ei ole vapaan ohjelmiston määritelmän kannalta olennaista.
Vapaiden ohjelmistojen kehittämisen motiivit voivat olla teknisiä, taloudellisia tai yhteiskunnallisia. Kehittäjien kannalta merkittävää on halu kehittyä ohjelmien tuottajina oppimalla toisilta tuottajilta. Myös halu auttaa toisia on merkittävä motiivi. Yhteisyyskin luo lisäarvoa: kun minä annan ja joku toinen ja kolmas antaa, me kaikki hyödymme. Vapaiden ohjelmien kehittäjät tekevät usein kehitystyötä ansiotyön ulkopuolella. Vapaita ohjelmistoja kehitetään laajasti myös osana kaupallista yritystoimintaa tai muuna palkkatyönä.
Vapaille ohjelmistoille on olemassa erilaisia määritelmiä. Yleisin ja hyväksytyin niistä on Richard Stallmanin Free Software Foundationin (FSF) määritelmä. FSF korostaa yksilön oikeuksia ja sen näkökulma on filosofinen. Vapaan ohjelman tunnusmerkit ovat neljä perusvapautta (joiden numerointi yleisen ohjelmointitavan mukaan aloitetaan nollasta):Ohjelman muokkaaminen vaatii käytännössä ohjelman lähdekoodin. Vaikka muutoksia on mahdollista tehdä suoraan konekieliseen ohjelmaankin, tämä on virhealtista, useimmissa tapauksissa hyvin hankalaa ja tietynlaisten muutosten osalta mahdotonta. Pelkkä lähdekoodin jakelu ei kuitenkaan tee ohjelmaa vapaaksi – esimerkiksi joissakin myytävänä olevissa peleissä voi olla mukana lähdekoodia, vaikka sitä ei ole lupa levittää edelleen.
FSF:n määritelmä ei ota kantaa hintaan. Ohjelmaa pitää saada myydä, mutta toisaalta ostajaa ei saa kieltää levittämästä ohjelmaa eteenpäin ilmaiseksi tai valitsemallaan hinnalla, maksamatta tekemistään lisäkopioista. Tästä seuraa, että vapaat ohjelmat käytännössä ovat yleensä saatavilla ilmaiseksikin. Vapaiden ohjelmistojen mukana voidaan kuitenkin myydä esimerkiksi tukipalveluja tai sellaisia osia, jotka eivät ole vapaita. Kaupallisten Linux-jakeluversioiden ansaintalogiikka perustuu tyypillisesti juuri tukipalvelujen myyntiin.
Vapaista ohjelmistoista puhuvat korostavat vapautta. Linuxin menestyksen myötä huomattiin myös vapaiden ohjelmistojen muita etuja, mm. varsinaiseen kehittäjätiimiin kuulumattomien mahdollisuus parantaa ohjelmistoja. Näitä käytännön etuja korostavat, johtohahmonaan Eric Raymond, alkoivat kutsua vapaita ohjelmistoja avoimen lähdekoodin ohjelmistoiksi, koska vapaus, ja varsinkaan vapauden englanninkielisen sanan "free" toinen merkitys "ilmainen", ei istu kovin hyvin, kun ohjelmistoyrityksiä yritetään ylipuhua vapauttamaan koodinsa.
Stallman ja FSF eivät kuitenkaan pidä termistä avoin lähdekoodi: kun vapauden arvoa välineenä korostetaan vapauden itseisarvon sijaan, on helppo luopua vapaudesta silloin, kun siitä luopuminen on käytännöllistä (esimerkiksi kun suljettu laiteajuri on avointa ajuria parempi aiotussa käytössä). Epävapaan laiteajurin (ja sen myötä epävapaata ajuria vaativan laitteen) torjuminen sen sijaan antaisi kilpailuvaltin niille laitevalmistajille, jotka tukevat vapaiden ajureiden kehittämistä.
Linux-ytimen luojalla, suomalaisella Linus Torvaldsilla on Stallmanin kritisoima käytännöllinen suhde tietokoneohjelmien vapauteen, mikä on osaltaan johtanut kiistaan GNU/Linux-jakeluiden nimeämisestä. Jos nimessä viitataan pelkästään Linuxiin, korostetaan Torvaldsin osaa näiden käyttöjärjestelmien synnyssä ja hänen ensisijaisesti välineellistä asennoitumistaan avoimeen lähdekoodiin. Jos nimessä mainitaan GNU, huomiota annetaan GNU-hankkeelle ja sen arvomaailmalle.
Vaikka avoimen lähdekoodin ja vapaiden ohjelmistojen puolestapuhujien näkökohdat ovat erilaisia, käytännön työssä he ovat usein samassa rintamassa: avoimen lähdekoodin määritelmä on käytännössä hyvin lähellä FSF:n vapaan ohjelmiston määritelmää. Esimerkiksi Mozilla ja Openoffice vapautettiin luultavasti avoimen lähdekoodin liikkeen ansiosta, ja ne ovat merkityksellisiä vapaalle GNU/Linux-käyttöjärjestelmälle.
Vapailla ohjelmilla on erilaisia lisenssejä. Lisenssit on tapana jakaa kahteen pääluokkaan niin sanotun copyleft-ominaisuuden perusteella:
"Copyleft-lisenssit" vaativat, että ohjelman (joko sellaisenaan tai muokattuna) levittäminen edelleen on tehtävä alkuperäisin ehdoin (samalla lisenssillä). Ehtojen säilyttäminen koskee edelleen levittämistä ja uudelleen julkaisua. Omaan käyttöön saa toki tehdä muutoksia vailla pakkoa julkaista niitä. Copyleft-lisensseistä tunnetuin on Linuxinkin käyttämä, FSF:n julkaisema GNU General Public License (GPL). Muita copyleft-lisenssejä ovat esim. GNU Lesser General Public License (LGPL), Mozilla-lisenssi (MPL) ja Berkeley Database (aka Sleepycat Software Product) -lisenssi.
"Ei-copyleft-lisenssit" (esim. Zope-, X11- ja BSD-lisenssi) eivät aseta vaatimuksia muokattujen versioiden julkaisulle, jolloin omille muokatuille versioille saa halutessaan määrätä kopiointikiellon tai muita rajoituksia.
Yleensä kehotetaan käyttämään jotakin vakiintunutta ja hyvää lisenssiä, oman lisenssin laatimisen sijaan. Näin koodin lainaaminen eri projektien välillä on mahdollisimman helppoa eikä ohjelmistoa levitettäessä jouduta miettimään onko ohjelmisto riittävän vapaa. Jos projektilla, johon koodia tehdään, on poikkeava lisenssi, koodin levityksen salliminen tämän ohessa myös esimerkiksi GPL:n alla edesauttaa tilannetta. Lisenssiä on vaikea muuttaa jälkikäteen, kun koodia on jo moni muuttanut.