Tämä käännös ei ehkä näytä muutoksia, jotka on tehty tämän päivämäärän jälkeen: 2021-10-24 alkuperäisessä englanninkielisessä versiossa.

Sinun pitäisi katsoa niitä muutoksia. Ole hyvä ja katso linkkiä Translations README jos haluat lisätietoa tämän artikkelin käännösten toimittamisesta ja koordinoinnista.

GNU-projekti

Kirjoittanut Richard Stallman

Alun perin julkaistu kirjassa Open Sources. Richard Stallman ei koskaan ollut "avoimen lähdekoodin" tukija, mutta hän antoi kirjaan tämän artikkelin, jotta vapaan ohjelmiston liikkeen ideat eivät puuttuisi kokonaan siitä kirjasta.

Miksi ainoastaan vapaiden ohjelmistojen käyttäminen on tärkeämpää kuin koskaan.

Ensimmäinen ohjelmistojenjakamisyhteisö

Kun aloin työskentelemään MIT:n keinoälylaboratoriossa vuonna 1971 tulin osaksi ohjelmistojenjakamisyhteisöä, joka oli ollut olemassa useita vuosia. Ohjelmien jakaminen ei ollut rajoittunut vain meidän yhteisöömme; se oli niin vanha kuin tietokoneet, kuten reseptien jakaminen on yhtä vanhaa kuin ruoanlaitto. Mutta me teimme sitä enemmän kuin muut.

Keinoälylaboratorio käytti käyttöjärjestelmää jota kutsuttiin ITS:ksi (the Incompatible Timesharing System) eli epäyhteensopivaksi ajanjakamisjärjestelmäksi, jonka laboratorion hakkerit (1) olivat suunnitelleet ja kirjoittaneet assemblerilla Digitalin PDP-10:lle, yhdelle sen ajan suurista tietokoneista. Tämän yhteisön jäsenenä, keinoälylaboratorion henkilöstöön kuuluvana hakkerina minun työni oli parannella tätä järjestelmää.

Me emme kutsuneet ohjelmistojamme vapaiksi ohjelmiksi, koska termiä ei vielä ollut, mutta sitä se oli. Kun ihmiset toisesta yliopistosta tai yhtiöstä halusivat muokata ohjelmiamme niin, että he voisivat ajaa niitä omilla laitteistoillaan me annoimme mielellämme heidän tehdä sen. Jos näit jonkun käyttämässä sinulle tuntematonta ja mielenkiintoista ohjelmaa, pystyit aina pyytämään lähdekoodia voidaksesi lukea sen, muuttaaksesi sitä tai käyttääksesi osia siitä tehdäksesi uuden ohjelman.

(1) Sanan "hakkeri" käyttö tarkoituksella "turvallisuuden murtaja" on massamedian aiheuttamaa hämmästystä. Me hakkerit kiellämme tuon tarkoituksen tunnustamisen, ja jatkamme sanan käyttöä tarkoittamaan jotakuta joka rakastaa ohjelmointia, jotakuta joka pitää leikkisästä viisaudesta, tai niitten yhdistelmä. Katso artikkelini Hakkeroinnista.

Yhteisön romahtaminen

Tilanne muuttui voimakkaasti 1980-luvun alussa kun Digital lopetti PDP-10-tietokoneiden valmistamisen. Sen hieno ja tehokas arkkitehtuuri 60-luvulla ei voinut enää laajentua luonnollisesti suuriin osoiteavaruuksiin jotka tulivat mahdollisiksi 80-luvulla. Tämä tarkoitti sitä että lähes kaikki ohjelmat joista ITS koostui olivat tulleet vanhentuneiksi.

Keinoälylaboratorion hakkeriyhteisö oli jo romahtanut, mutta ei kauan sitten. Vuonna 1981 Symbolics-niminen yhtiö oli palkannut pois lähes kaikki hakkerit keinoälylaboratoriosta, ja kuihtunut yhteisö ei enää voinut ylläpitää itseään. (Kirja Hackers, kirjoittanut Steve Levy selittää näitä tapahtumia, antaen myös kuvan yhteisöstä sen ollessa parhaimmillaan.) Kun keinoälylaboratorio osti uuden PDP-10-tietokoneen vuonna 1982 sen pääkäyttäjät päättivät käyttää Digitalin suljettua ei-vapaata käyttöjärjestelmää ITS:n sijasta.

Modernit sen aikaiset tietokoneet kuten VAX tai 68020 omasivat omat käyttöjärjestelmänsä, mutta mikään niistä ei ollut vapaa: sinun täytyi allekirjoittaa vaitiolosopimus, että sait edes suoritettavan kopion.

Tämä tarkoitti sitä, että ensimmäinen lupaus tietokoneen käyttämisessä oli olla auttamatta naapuria. Yhteistyössä toimiva yhteisö oli kielletty. Kaupallisten ei-vapaiden ohjelmistojen omistajien tekemä sääntö oli: “Jos jaat naapurisi kanssa olet piraatti. Jos haluat muutoksia, niin rukoile meitä tekemään ne”.

Ei-vapaiden ohjelmistojen sosiaalinen järjestelmä, järjestelmä joka sanoo, että sinä et saa jakaa tai muuttaa ohjelmistoja on epäsosiaalinen, epäeettinen ja täysin väärin voi tulla joillekin lukijoille yllätyksenä. Mutta mitä muuta me voisimme sanoa järjestelmästä joka perustuu ihmisten erottamiseen ja käyttäjien pitämiseen avuttomina? Lukijat joista tämä idea on yllättävä ovat voineet pitää ei-vapaiden ohjelmistojen sosiaalista järjestelmää itsestäänselvyytenä tai tuomittuna heille ei-vapaan ohjelmistobisneksen termein. Ohjelmistojen julkaisijat ovat työskennelleet pitkään ja kovasti vakuuttaakseen ihmiset siitä että on vain yksi näkökulma asiaan.

Kun ohjelmistojulkaisijat puhuvat "oikeuksiensa vahvistamisesta" tai "piratismin lopettamisesta"

Yksi oletus on se, että ohjelmistoyhtiöt omaavat kyseenalaistamattoman oikeuden ohjelmiin ja täten kaikkiin ohjelmistojen käyttäjiin. (Jos tämä olisi luonnollinen oikeus niin vaikka se kuinka vahingoittaisi ihmisiä emme voisi protestoida sitä vastaan.) Mielenkiintoista on se, että USA:n perustuslaki ja laillinen traditio hylkäävät tämän näkymän; copyright ei ole luonnollinen oikeus vaan keinotekoinen hallituksen pakottama monopoli joka rajoittaa käyttäjän luonnollista oikeutta kopioida.

Toinen oletus on se, että tärkeintä ohjelmistoissa on se että mitä sillä voi tehdä, että meidän tietokoneiden käyttäjien ei tulisi välittää siitä minkälainen yhteisö meillä saa olla.

Kolmas oletus on se, että meillä ei olisi käyttökelpoisia ohjelmia (tai ei olisi jotain tiettyä ohjelmaa tekemään joku erityinen asia) jos me emme antaisi yhtiölle valtaa kaikkiin ohjelman käyttäjiin. Tämä oletus on saattanut olla vakuuttava ennen kuin vapaiden ohjelmistojen liike osoitti, että me voimme tehdä paljon käyttökelpoisia ohjelmia kahlitsematta niitä.

Jos me epäämme nämä oletukset ja tuomitsemme nämä asiat perustuen tavalliseen järkevään moraaliin, laittaen käyttäjät ensimmäiseksi päädymme hyvin erilaisiin johtopäätöksiin. Tietokoneiden käyttäjien tulisi olla vapaita muokkaamaan ohjelmia tarpeisiinsa ja olla vapaita jakamaan ohjelmistoja, koska toisten ihmisten auttaminen on yhteiskunnan perusasia.

Tässä artikkelissa ei ole tilaa laajalle selitykselle tästä johtopäätöksestä, joten viittaan lukijaa verkkosivuille http://gnu.org/philosophy/why-free.html ja http://gnu.org/philosophy/free-software-even-more-important.html

Perustava moraalinen valinta

Yhteisöni kadotessa jatkaminen kuten ennen oli mahdotonta. Sen sijaan kohtasin perustavaa laatua olevan moraalisen valinnan.

Helppo valinta olisi liittyä ei-vapaiden ohjelmistojen maailmaan allekirjoittaen vaitiolosopimuksia ja luvaten olla auttamatta hakkerikaveriani. Todennäköisesti minä olisin myös kehittämässä ohjelmistoja jotka julkaistaan vaitiolovelvollisuuden alla, näin lisäten muiden ihmisten painetta heidän kavereidensa pettämiseen.

Olisin voinut tehdä rahaa näin ja ehkä huvittaa itseäni kirjoittamassa koodia. Mutta tiesin, että urani lopulla katsoisin taakseni ja näkisin ne vuodet rakentaessani muureja ihmisten erottamiseksi ja käyttäen koko elämäni tehdäkseni maailmasta huonomman paikan.

Olin jo kokenut vaitiolosopimuksen vastaanottajana olemisen kun joku kieltäytyi antamasta minulle ja MIT:n keinoälylaboratoriolle lähdekoodia tulostimemme ohjausohjelmaan. (Eräiden ominaisuuksien puute tässä ohjelmassa teki tulostimen käyttämisen erittäin turhauttavaksi.) Joten en voinut sanoa itselleni, että vaitiolosopimukset olivat viattomia. Olin erittäin vihainen kun hän kieltäytyi jakamasta meidän kanssamme; en voinut kääntyä ja tehdä saman muille.

Toinen vaihtoehto, selvä mutta epämiellyttävä oli jättää tietokoneet. Näin minun taitojani ei käytettäisi väärin mutta ne olisivat kuitenkin hukattu. En voinut olla syyllinen käyttäjien erottamiseen ja rajoittamiseen mutta se tapahtuisi kuitenkin.

Joten punnitsin eri vaihtoehtoja joilla ohjelmoija saattaisi tehdä jotain hyvää. Kysyin itseltäni: “Olisiko ohjelma tai ohjelmia joita voisin kirjoittaa tehdäkseni yhteisön mahdolliseksi taas kerran?”

Vastaus oli selvä: se mitä tarvittiin ensimmäiseksi oli käyttöjärjestelmä. Se on kriittinen ohjelmisto tietokoneen käyttämisessä. Käyttöjärjestelmän avulla voi tehdä monia asioita mutta ilman sellaista ei voi käyttää tietokonetta ollenkaan. Vapaan käyttöjärjestelmän avulla me mahdollistaisimme taas hakkereiden yhteisön joka tekee yhteistyötä ja kutsua kenet tahansa mukaan. Ja kuka tahansa pystyisi käyttämään tietokonetta toimimatta ystäviään vastaan.

Käyttöjärjestelmän kehittäjänä minulla oli tarpeelliset kyvyt tähän työhön. Joten vaikka en voinut olla varma menestyksestä ymmärsin, että minut oli valittu tekemään työ. Päätin tehdä järjestelmästä yhteensopivan Unix:n kanssa joten se olisi ajettavissa useilla eri laitteistoarkkitehtuureilla ja näin Unix:n käyttäjät pystyisivät helposti vaihtamaan siihen. Nimi GNU valittiin seuraten hakkeritraditiota itsensä sisältävänä akronyyminä lauseesta "GNU's Not Unix." Se lausutaan yhtenä sanana kovalla G:llä.

Käyttöjärjestelmä ei tarkoita vain ydintä joka on tuskin tarpeeksi muiden ohjelmien ajamiseen. 1970-luvulla jokainen mainitsemisen arvoinen käyttöjärjestelmä sisälsi komentotulkkeja, assemblereita, kääntäjiä, tulkkeja, debuggereita, tekstieditoreita, postitusohjelmia ja paljon muutakin. ITS:ssä, Multics:ssa, VMS:ssä ja Unix:ssa olivat ne. GNU-käyttöjärjestelmä sisältäisi myös ne.

Myöhemmin kuulin nämä sanat Hillel:n sanomana (1):

Jos minä en ole itselleni, kuka on minulle?
Jos olen vain itselleni, mikä minä olen?
Jos ei nyt, koska?

Päätös GNU-projektin aloittamisesta perustui samanlaiseen henkeen.

(1) Ateistina en seuraa mitään uskonnollisia johtajia mutta joskus ihailen jotain mitä joku heistä on sanonut.

Vapaus

Termi vapaa ohjelmisto ymmärretään joskus väärin. Sillä ei ole mitään tekemistä hinnan kanssa. On vain kyse vapaudesta. Siksi tässä on määritelmä termistä vapaa ohjelmisto.

Ohjelmisto on vapaa sinulle, käyttäjälle jos:

Koska termi vapaa viittaa vapauteen eikä hintaan, ei ole ristiriitaa vapaiden ohjelmistojen myynnissä. Itse asiassa vapaus myydä kopioita on tärkeä: kokoelmat vapaita ohjelmistoja joita myydään CD-ROM-levyillä ovat tärkeitä yhteisölle ja niiden myyminen on tärkeä tapa hankkia rahoitusta vapaiden ohjelmistojen kehittämiseen. Täten ohjelma jota ihmiset eivät ole vapaita laittamaan joihinkin näistä kokoelmista ei ole vapaa ohjelma.

Johtuen sanan "free" (ilmainen,vapaa) moniselitteisyydestä ihmiset ovat kauan etsineet vaihtoehtoja mutta kukaan ei ole löytänyt sopivaa. Englannissa on enemmän sanoja ja nyansseja kuin missään muussa mutta siitä puuttuu helppo ja yksiselitteinen sana joka tarkoittaa vapaa kuten vapaus.

GNU-ohjelmistot ja GNU-järjestelmä

Kokonaisen järjestelmän kehittäminen on suuri projekti. Tehdäkseni sen mahdolliseksi päätin sovittaa ja käyttää siihen jo olemassa olevia vapaita ohjelmistoja aina kun oli mahdollista. Esimerkiksi päätin heti alussa käyttää TeX:iä tekstinmuotoilijana ja muutama vuosi sen jälkeen päätin käyttää X-ikkunointijärjestelmää oman ikkunointijärjestelmän GNU:lle kirjoittamisen sijasta.

Tämän päätöksen takia GNU-järjestelmä ei ole sama kuin kokoelma GNU-ohjelmistoja. GNU-järjestelmä sisältää ohjelmia jotka eivät ole GNU-ohjelmia, ohjelmia jotka muut ihmiset ja projektit ovat kehittäneet omiin käyttötarkoituksiinsa mutta joita me voimme käyttää koska ne ovat vapaita ohjelmistoja.

Projektin aloittaminen

Tammikuussa 1984 lopetin työni MIT:ssä ja aloin kirjoittamaan GNU-ohjelmia. MIT:n jättäminen oli tarpeellista koska näin se ei voinut vaikuttaa GNU:n levittämiseen vapaana ohjelmistona. Jos olisin pysynyt MIT:n henkilökunnassa, MIT olisi voinut väittää työtäni omakseen ja määrätä omat levityssäännöt tai jopa muuttaa työn ei-vapaaksi ohjelmistoksi.

Kuitenkin professori Winston, silloinen MIT:n keinoälylaboratorion johtaja kutsui minut sydämellisesti jatkamaan laboratorion laitteiston käyttämistä.

Ensiaskeleet

Pian GNU-projektin aloittamisen jälkeen, kuulin ohjelmasa nimeltään “Free University Compiler Kit” joka tunnettiin myös nimellä VUCK. (Tanskan kielen sana vapaa on kirjoitettu v:llä) Tämä kääntäjä oli suunniteltu hallitsemaan useita kieliä kuten C ja Pascal ja se pystyi tuottamaan koodia useille kohdekoneille. Kirjoitin ohjelman tekijälle kysyen että voisiko GNU käyttää sitä.

Hän vastasi naurettavasti kertoen, että yliopisto oli vapaa mutta kääntäjä ei. Täten päätin että ensimmäinen ohjelmani GNU-projektille olisi kääntäjä joka tukisi useita laitteistoalustoja ja ohjelmointikieliä.

Toivoen että välttäisin koko kääntäjän kirjoittamisen itse, hankin lähdekoodin Pastel-kääntäjään joka tuki useita laitteistoalustoja ja se oli kehitetty Lawrence Livermore Lab:ssa. Se oli kirjoitettu järjestelmäohjelmointiin suunnitellulla laajennetulla Pascal- versiolla jota se myös tuki. Lisäsin C-liittymän siihen ja aloin sovittamaan sitä Motorola 68000-tietokoneelle. Mutta minun täytyi luovuttaa kun huomasin, että kääntäjä vaati useita megatavuja tilaa pinosta ja saatavilla oleva 68000 Unix-järjestelmä sallisi vain 64 kilotavua.

Sitten ymmärsin että Pastel-kääntäjä toimi jäsentämällä koko sille syötetyn tiedoston syntaksipuuksi kääntäen koko syntaksipuun ketjuksi käskyjä, ja vasta sitten tehden lopputuloksen vapauttamatta missään vaiheessa tallennustilaa. Tässä vaiheessa päättelin, että minun täytyisi kirjoittaa uusi kääntäjä alusta alkaen. Tämä uusi kääntäjä tunnetaan nimellä GCC; mitään Pastel-kääntäjän koodia ei ole käytetty siinä mutta onnistuin sovittamaan ja käyttämään siinä C-liittymää jonka olin kirjoittanut. Mutta se oli pari vuotta myöhemmin; ensin työskentelin GNU Emacsin parissa.

GNU Emacs

Aloin työskentelemään GNU Emacsin parissa syyskuussa 1984, ja vuoden 1985 alussa se alkoi olla käytettävä. Tämä mahdollisti minulle Unix-järjestelmien käytön tekstin editoinnissa koska minulla ei ollut mitään mielenkiintoa opetella vi- tai ed-editoreita olin tehnyt editointini muunlaisilla koneilla sitä ennen.

Tässä vaiheessa ihmiset alkoivat haluta käyttää GNU Emacs:ia josta aiheutui kysymys kuinka levittää sitä. Tietenkin laitoin sen anonyymiftp-palvelimelle tietokoneelle jota olin käyttänyt MIT:ssä. (Tämä tietokone, prep.ai.mit.edu, tuli näin ensisijaiseksi GNU:n ftp-levityspaikaksi; kun se poistui käytöstä pari vuotta myöhemmin, siirsimme nimen uudelle ftp-palvelimellemme.) Mutta sinä aikana monet kiinnostuneet ihmiset eivät olleet Internetissä eivätkä siten voineet saada kopiota ftp:llä. Joten kysymys oli; mitä sanoisin heille?

Olisin voinut sanoa: "Etsi ystävä joka on verkossa ja voi tehdä kopion sinulle." Tai olisin voinut tehdä saman kuin alkuperäisen PDP-10 Emacsin kanssa: kertoa heille: "Lähetä minulle kasettinauha ja SASE, ja lähetän sen takaisin Emacsin kanssa." Mutta minulla ei ollut työtä, ja olin etsimässä tapoja saada rahaa vapaasta ohjelmistosta. Joten, ilmaisin että postittaisin nauhoja niille, jotka haluaisivat sellaisen, 150 dollarin maksusta. Tällä tavalla, aloitin vapaan ohjelmiston jakelu-bisneksen, edeltäjä yrityksille, jotka tänään jakelevat kokonaisia GNU/Linux-jakelupaketteja.

Onko ohjelma vapaa kaikille sen käyttäjille?

Jos ohjelma on vapaa kun tekijä julkaisee sen ei välttämättä tarkoita sitä, että se tulee olemaan vapaa kaikille jotka saavat kopion siitä. Esimerkiksi, “public domain”-ohjelmisto (ohjelmisto jolla ei ole copyrightia) on vapaa mutta kuka tahansa voi tehdä muokatun, ei-vapaan version siitä. Samoin monet vapaat ohjelmat ovat copyrightin alla mutta levitettynä yksinkertaisilla, sallivilla lisensseillä jotka sallivat ei-vapaiden versioiden tekemisen.

Paradigmaattinen esimerkki tästä ongelmasta on X-ikkunonitijärjestelmä. Kehitettynä MIT:ssä, ja levitettynä vapaana ohjelmana sallivalla lisenssillä se otettiin pian käyttöön useissa tietokonefirmoissa. He lisäsivät X:n heidän ei-vapaisiin Unix-järjestelmiinsä vain binäärimuodossa saman vaitiolosopimuksen kanssa. Nämä kopiot X:stä eivät olleet yhtään sen vapaampia kuin Unix oli.

X-ikkunointijärjestemän kehittäjät eivät ajatelleet tätä ongelmana. He olettivat ja tarkoittivat näin käyvän. Heidän tavoitteensa ei ollut vapaus, vain “menestys” määritettynä “saada monta käyttäjää”. He eivät välittäneet käyttäjien vapaudesta. Vain siitä, että heitä pitäisi olla paljon.

Tämä johti paradoksiin jossa kaksi eri tapaa laskea vapauden määrä antoivat eri vastaukset kysymykseen “Onko tämä ohjelma vapaa?”. Jos päättäisit perustuen MIT:n version lisenssiin sanoisit, että X oli vapaa ohjelma. Mutta jos mittaisit keskimääräisen X:n käyttäjän vapautta sanoisit, että X ei ollut vapaa. Useimmat X:n käyttäjät ajoivat ei-vapaita versioita jotka tulivat Unix-järjestelmien mukana eivätkä vapaata versiota.

Copyleft ja GNU GPL

GNU:n tavoite oli antaa käyttäjille vapaus eikä vain olla suosittu. Joten me tarvitsimme lisenssin joka estäisi GNU-ohjelmistoja kadottamasta vapauttaan. Tapa jota me käytämme tunnetaan nimellä "copyleft".(1)

Copyleft käyttää copyright-lakia, mutta kääntää sen ympäri tehdäkseen normaalin tarkoituksensa vastakohdan: sen sijaan, että se rajoittaa ohjelmaa, siitä tulee tarkoitus pitää ohjelma vapaana.

Copyleftin perusidea on se, että me annamme kaikille luvan ajaa ohjelmaa, kopioida ohjelmaa ja levittää muokattuja versioita ohjelmasta mutta ei lupaa lisätä omia rajoituksiaan. Näin tärkeät vapaudet jotka määrittävät termin vapaa ohjelmisto ovat taatut jokaiselle jolla kopio on; niistä tulee luovuttamattomia oikeuksia.

Jotta copyleft toimisi tulisi muokattujen versioiden myös olla vapaita. Tämä takaa sen, että työ joka perustuu meihin tulee saataville yhteisölle jos se on julkistettu. Kun ohjelmoijat jotka ohjelmoivat työkseen parantavat vapaaehtoisesti GNU-ohjelmia copyleft estää heidän työnantajiaan sanomasta: “Sinä et voi jakaa näitä muutoksia, koska me aiomme tehdä ei-vapaan version tuosta ohjelmasta.”

Vaatimus siitä, että muutosten täytyy olla vapaita on olennainen jos me haluamme taata vapauden joka käyttäjälle. Yhtiöt jotka yksityistivät X-ikkunointijärjestelmän tekivät yleensä joitain muutoksia sovittaakseen sen heidän laitteistoilleen ja järjestelmilleen. Nämä muutokset olivat pieniä verrattuna X:ään mutta ne eivät olleet mitättömiä. Jos muutoksien tekeminen on veruke vapauden kieltämiseksi käyttäjiltä kenen tahansa olisi helppoa hyötyä tästä verukkeesta.

Tähän liittyvä asia koskee vapaan ohjelman yhdistämistä ei-vapaaseen koodiin. Sellainen yhdistelmä olisi lopulta ei-vapaa; ne vapaudet jotka puuttuvat ei-vapaasta osasta puuttuisivat myös koko yhdistelmästä. Tämänlaisten muutosten salliminen avaisi reiän joka olisi tarpeeksi suuri upottamaan laivan. Täten kriittinen vaatimus copylefille on tukkia tämä reikä: kaikki mitä lisätään tai yhdistetään copyleft-ohjelmaan aiheuttaa sen, että tämä suurempi kokonaisuus on myös vapaa ja copyleft-ohjelma.

Erityinen toteutus copyleftistä, se jota me käytämme suurimmalle osalle GNU-ohjelmia on GNU General Public License (GNU Yleinen Julkinen Lisenssi) tai GNU GPL lyhyesti. Meillä on myös muunlaisia copylefteja joita käytetään erityisissä tilanteissa. GNU-käyttöohjeet ovat myös copyleftin alla mutta käyttävät paljon yksinkertaisempaa copyleftiä, koska GNU GPL:n monimutkaisuus ei ole tarpeellista manuaaleille. (2)

(1) Vuonna 1984 tai 1985, Don Hopkins (hyvin mielikuvituskykyinen kaveri) lähetti minulle kirjeen. Kirjeeseen oli kirjoitettu useita huvittavia sanontoja mukaanlukien tämä: “Copyleft—all rights reversed” (“Copyleft- kaikki oikeudet käännetty”). Käytin sanaa “copyleft” nimetäkseni levitysidean jota minä kehitin silloin.

(2) Me nykyään käytämme GNU Free Documentation Licenseä dokumentaatiota varten.

Free Software Foundation

Kiinnostus Emacs:n käyttämisestä kasvoi, muut ihmiset tulivat mukaan GNU-projektiin ja me päätimme että oli aika etsiä rahoitusta taas kerran. Joten vuonna 1985 me loimme Free Software Foundation, veroista vapaan hyväntekeväisyysjärjestön vapaiden ohjelmien kehitykselle. FSF otti myös hoitaakseen Emacs-nauhojen levitysbisneksen; myöhemmin se laajensi tätä lisäten muita vapaita ohjelmistoja (myös GNU ja ei-GNU) nauhalle ja myyden myös manuaaleja.

Suurin osa FSF:n tuotosta tuli vapaiden ohjelmistojen ja muiden palvelujen (lähdekoodi-CD:t, binääri-CD:t, mukavasti tulostetut käyttöohjeet, kaiken mukana vapaus jakaa ja muokata), ja Deluxe-jakeluiden (ohjelmistojakelut, johon laitoimme täyden ohjelmistokokoelman käyttähän valitsemalle alustalle). Tänään FSF edelleen myy käyttöohjeita ja muuta, mutta se saa suurimman osan rahoituksestaan jäsenmaksuista. Voit liittyä FSF:ään osoitteessa fsf.org.

Free Software Foundation:in alaiset ovat kirjoittaneet ja ylläpitäneet useita GNU-ohjelmistoja. Kaksi huomattavaa ovat C-kirjasto ja kuori (shell) GNU C-kirjasto on se jota jokainen GNU/Linux-järjestelmässä ajettava ohjelma käyttää kommunikointiin Linux:n kanssa. Sen on kehittänyt Free Software Foundationin henkilöstön jäsen Roland McGrath. Kuori jota käytetään useimmissa GNU/Linux-järjestelmissä on BASH , the Bourne Again Shell (1) jonka on kehittänyt FSF:n alainen Brian Fox.

Me rahoitimme näiden ohjelmien kehittämisen siksi, että GNU-projektissa ei ollut kyse vain työkaluista tai kehitysympäristöstä. Meidän tavoitteemme oli täydellinen käyttöjärjestelmä ja nämä ohjelmat olivat ne jotka tarvittaisiin siihen tavoitteeseen pääsemiseksi.

(1) "Bourne Again Shell" on vitsi nimestä "Bourne Shell", joka oli tavallinen Unix:n komentotulkki.

Vapaiden ohjelmien tuki

Vapaiden ohjelmistojen filosofia hylkää tietyn laajalle levinneen bisnestavan, mutta se ei ole bisnestä vastaan. Kun liikeala kunnioittaa käyttäjien vapautta, me toivotamme heille menestystä.

Emacs:n kopioiden myyminen osoittaa yhdenlaisen elinkeinon vapailla ohjelmilla. Kun FSF otti haltuunsa sen elinkeinon tarvitsin toisen tavan ansaita elantoni. Löysin sen palvelujen myynnistä liittyen ohjelmiin jotka olin kehittänyt. Tämä sisälsi opettamisen aiheista kuten kuinka ohjelmoida GNU Emacs:ia ja kuinka muokata GCC:tä ja ohjelmistonkehitystä, suurilta osin GCC:n muokkaamista toimivaksi uusilla laitteistoalustoilla.

Tänään useat eri yhtiöt harjoittavat jokaista näistä erilaisista elinkeinoista liittyen vapaisiin ohjelmiin. Jotkut levittävät vapaita ohjelmistoja CD-ROM-levyillä; toiset myyvät tukea eri tasoilla aina käyttäjän kysymyksiin vastaamisesta bugien korjaamiseen ja uusien merkittävien ominaisuuksien lisäämiseen. On jopa näkyvissä uusia ohjelmistoyhtiöitä jotka perustavat liiketoimintansa uusien vapaiden ohjelmien kehittämiseen.

Ole varuillasi, sillä vaikka useat yhtiöt jotka yhdistävät itsensä termiin avoin lähdekoodi (open source) ne oikeastaan perustavat elinkeinonsa ei-vapaille ohjelmistoille jotka toimivat vapaiden ohjelmien kanssa. Nämä yhtiöt eivät kehitä vapaita ohjelmia vaan ovat yhtiöitä jotka koettelevat käyttäjien vapautta ohjelmistoillaan. He kutsuvat näitä ohjelmia “lisäarvoisiksi” joka heijastaa arvoja jotka he haluaisivat meidän hyväksyvän: mukavuus vapauden edelle. Jos me arvostamme vapautta enemmän meidän tulisi kutsua näitä “vapaudesta vähennetyiksi” tuotteiksi.

Tekniset tavoitteet

GNU:n päätavoite oli se, että se olisi vapaa ohjelmisto. Vaikka jos GNU:lla ei olisi mitään teknistä etua verrattuna Unix:iin sillä olisi sosiaalinen etu, antaen käyttäjien tehdä yhteistyötä ja eettinen etu, käyttäjien vapauden kunnioittaminen.

Mutta oli luonnollista käyttää tunnettuja standardeja työssä. Kuten esimerkiksi dynaamisesti jaetut datarakenteet mielivaltaisten määrättyjen kokorajoitusten välttämiseksi ja kaikkien mahdollisten 8-bittisten koodien käsittely aina kun se oli järkevää.

Lisäksi hylkäsimme Unix:n keskittymisen pieneen muistin kokoon päättäen olla tukematta 16-bittisiä koneita (oli selvää että 32-bittiset koneet olisivat yleistyneet siihen mennessä kun GNU-järjestelmä valmistuisi) ja mitään pyrkimyksiä muistin käytön vähentämiseksi ei ollut ellei se ylittänyt yhtä megatavua. Ohjelmissa joissa suurten tiedostojen käsittely ei ollut kriittistä rohkaisimme ohjelmoijia lukemaan koko tiedoston muistiin ja vasta sitten tutkia sen sisältöä huolehtimatta I/O:sta.

Nämä päätökset sallivat useiden GNU-ohjelmien voittaa Unix-vastineensa luotettavuudessa ja nopeudessa.

Lahjoitetut tietokoneet

Kun GNU-projektin maine kasvoi ihmiset alkoivat tarjota lahjoituksina tietokoneita jotka ajoivat Unixia projektille. Nämä olivat hyvin käyttökelpoisia, koska helpoin tapa kehittää komponentteja GNU:lle oli tehdä se Unix-järjestelmässä ja korvata tämän järjestelmän komponentit pala palalta. Mutta tämä aiheutti eettisen kysymyksen: oliko Unix:n kopion hallussapitäminen oikein meille.

Unix oli (ja on) ei-vapaata ohjelmistoa ja GNU-projektin filosofia sanoi että meidän ei pitäisi käyttää ei-vapaita ohjelmia. Mutta vedoten samaan päättelyyn joka johtaa siihen päätökseen että väkivaltaisuus itsepuollustuksessa on sallittua päätin, että oli oikeutettua käyttää ei-vapaata ohjelmistoa kun se oli kriittistä vapaan korvaavan komponentin kehittämiseen joka auttaisi muita olemaan käyttämättä ei-vapaata komponenttia.

Mutta jos tämä oli perusteltu paha, se oli kuitenkin paha. Tänään meillä ei enää ole yhtäkään kopiota Unix:sta, koska olemme korvanneet ne vapailla käyttöjärjestelmillä. Jos emme voineet korvata tietokoneen käyttöjärjestelmää vapaalla, me korvasimme koneen sen sijaan.

GNU:n tehtävälista

Kun GNU-projekti edistyi ja yhä enemmän järjestelmäkomponentteja löydettiin tai kehitettiin, niin lopulta tuli käyttökelpoiseksi tehdä lista jäljellä olevista aukoista. Me käytimme sitä uusien kehittäjien värväämiseen puuttuvien palojen kirjoittamiseksi. Tämä lista tuli tunnetuksi GNU:n tehtävälistana. Puuttuvien Unix-komponenttejen lisäksi me listasimme muitakin sekalaisia ohjelmisto- ja dokumentointiprojektien tuotoksia jotka me arvelimme täysin täydellisen järjestelmän tarvitsevan.

Tänään (1), tuskin yhtäkään Unix-komponenttia on jäljellä GNU:n tehtävälistassa, koska nämä työt on jo tehty lukuunottamatta muutamia epäolennaisia. Mutta lista on täynnä projekteja joita jotkut saattaisivat kutsua “sovelluksiksi”. Mutta ohjelma joka on käyttökelpoinen muille kuin pienelle osalle käyttäjistä olisi hyödyllistä lisätä käyttöjärjestelmään.

Jopa pelit ovat tehtävälistalla ja ovat olleet sillä alusta lähtien. Unix sisälsi pelejä joten luonnollisesti GNU:ssa täytyi olla niitä myös. Mutta yhteensopivuus ei ollut ei ollut tärkeää peleissä, joten emme nähneet tarpeelliseksi tehdä peleistämme samanlaisia kuin Unix:ssa. Sen sijaan me listasimme laajan valikoiman erilaisia pelejä joista käyttäjät voisivat pitää.

(1) Tuo oli kirjoitettu vuonna 1998. Vuonna 2009 me emme enää pidä tehtävälistaa. Yhteisö kehittää vapaata ohjelmistoa niin nopeasti, että emme enää voi seurata heitä. Sen sijaan, meillä on lista korkean prioriteetin projekteista, paljon lyhyempi lista projekteista, joita me haluamme ihmisten kirjoittavan.

GNU:n lisenssi kirjastoille, LGPL

GNU:n C-kirjasto käyttää erityistä copyleftiä nimeltään GNU Library General Public License (GNU Kirjasto Yleinen Julkinen Lisenssi) joka antaa luvan yhdistää ei-vapaita ohjelmistoja kirjastoon. Miksi tehdä tämä poikkeus?

Se ei ole periaatteellinen asia; ei ole olemassa periaatetta jonka mukaan ei-vapaat ohjelmistot ovat oikeutettuja sisältämään meidän koodiamme. (Miksi avustaa projektia joka kieltäytyy jakamisesta kanssamme?) LGPL:n käyttäminen C-kirjastolle tai mille tahansa kirjastolle on strateginen kysymys.

C-kirjasto tekee yleisen tehtävän; jokainen ei-vapaa järjestelmä tai kääntäjä sisältää C-kirjaston. Täten, laittaen meidän C-kirjastomme saataville vain vapaille ohjelmille ei olisi antanut niille mitään etua, vaan se olisi vain vähentänyt kirjastomme käyttöä.

Yksi järjestelmä on poikkeus tälle: GNU-järjestelmän (ja tämä sisältää GNU/Linux:n), sisältämä GNU:n C-kirjasto on ainut C-kirjasto. Joten GNU:n C-kirjaston lisenssi päättää onko mahdollista kääntää ei-vapaa ohjelma GNU-järjestelmälle. Ei ole olemassa eettistä syytä sallia ei-vapaat ohjelmat GNU-järjestelmässä, mutta strategisesti näyttää siltä, että niiden hylkääminen lamauttaisi GNU-järjestelmän käyttöä enemmän kuin se kannustaisi kehittämään vapaita ohjelmia. Tämän takia kirjasto-GPL:n käyttäminen on hyvä strategia C-kirjastolle.

Muille kirjastoille strateginen päätös täytyy tehdä tilanteen mukaan. Kun kirjasto tekee erityisen tehtävän joka voi auttaa tietyn tyyppisiä ohjelmia, sen julkaiseminen GPL:n alla rajoittaen sen vain vapaisiin ohjelmiin on tapa auttaa muita vapaiden ohjelmien kehittäjiä, antaen heille edun ei-vapaita ohjelmia vastaan.

Ajattele GNU Readline:a, kirjastoa joka kehitettiin komentorivieditoinnin tarjoamiseksi BASH:lle. Readline on julkaistu tavallisen GNU GPL:n alla eikä kirjasto-GPL:n. Tämä todennäköisesti vähentää Readline:n käyttöä, mutta se ei ole menetys. Ainakin yhdestä ohjelmasta on tullut vapaa siksi että se voisi käyttää GNU Readlinea, ja se on todellinen saavutus yhteisölle.

Ei-vapaiden ohjelmistojen kehittäjillä on etuja jotka raha tarjoaa; vapaiden ohjelmistojen kehittäjien täytyy hyötyä siitä, että heillä on toisensa. Toivon, että jonain päivänä meillä on suuri valikoima GPL-lisensoituja kirjastoja joille ei ole ei-vapaata vastinetta, tarjoten näin käyttökelpoisia moduuleja, rakennuspalikkoja uusille vapaille ohjelmistoille antaen huomattavan edun tulevalle vapaiden ohjelmien kehittämiselle.

(1) Tätä lisenssiä kutsutaan nykyään nimellä GNU Lesser General Public License, välttääkseen sen idean antamista, että kaikkien kirjastojen pitäisi käyttää sitä. Katso Miksi sinun ei pitäisi käyttää Lesser GPL:ää sinun seuraavalle kirjastollesi lisätietoa varten.

Kutinan raapimista?

Eric Raymond sanoo: “Jokainen hyvä ohjelmistoprojekti alkaa kehittäjän oman kutinan raapimisella.” Ehkä näin käy joskus, mutta useat tärkeät osat GNU-ohjelmistosta kehitettiin täydellisen, vapaan käyttöjärjestelmän tekemisen mahdollistamiseksi. Ne tulevat visiosta ja suunnitelmasta eivätkä impulssista.

Esimerkiksi kehitimme GNU C-kirjaston koska Unix:n kaltainen järjestelmä tarvitsee C-kirjaston, BASH:n koska Unix:in kaltainen järjestelmä tarvitsee kuoren ja GNU tar:n koska Unix:n kaltainen järjestelmä tarvitsee tar-ohjelman. Sama pätee myös moniin omiin ohjelmiini; GNU C-kääntäjään, GNU Emacsiin, GDB:hen ja GNU Make:en.

Jotkut GNU-ohjelmat kehitettiin selvitäksemme tietyistä uhista vapaudellemme. Näin me kehitimme gzipin korvataksemme Compress-ohjelman jota yhteisö ei enää voinut käyttää LZW-patenttien takia. Me löysimme ihmisiä kehittämään LessTif:n, ja tämän jälkeen aloitimme GNOME:n ja Harmony:n, selvitäksemme tiettyjen ei-vapaiden kirjastojen aiheuttamista ongelmista (katso alas). Me kehitämme GNU Privacy Guardia korvatakseen suositun ei-vapaan salakirjoitusohjelmiston, koska käyttäjien ei pitäisi tehdä valintaa yksityisyyden ja vapauden välillä.

Tietenkin ihmiset jotka kirjoittavat näitä ohjelmia kiinnostuivat työn aikana ja monet lisäsivät niihin useita ominaisuuksia heidän omien tarpeittensa ja mielenkiinnon takia. Mutta ohjelma ei ole olemassa siksi.

Odottamattomia ohjelmienkehitysprojekteja

GNU-projektin alussa kuvittelin, että me kehittäisimme koko GNU-järjestelmän ja sitten julkaisisimme sen kokonaisena. Mutta niin ei kuitenkaan tapahtunut.

Koska jokainen GNU-järjestelmän komponentti toteutettin Unix:ssa jokaista näistä komponenteista pystyttiin ajamaan Unix:eissa kauan ennen kuin täydellinen GNU-järjestelmä oli olemassa. Joistain näistä ohjelmista tuli suosittuja ja käyttäjät alkoivat laajentaa niitä ja sovittamaan niitä useille epäyhteensopiville Unix-versioille ja joskus muillekin.

Prosessi teki näistä ohjelmista paljon tehokkaampia, ja veti puoleensa rahoitusta ja avustuksia GNU-projektille. Mutta se luultavasti myös viivästytti minimaalisen toimivan järjestelmän valmistumista useita vuosia, kun GNU-kehittäjien aikaa kului näiden sovitusten ylläpitämiseen ja uusien ominaisuuksien lisäämiseen olemassaoleviin komponentteihin puuttuvien komponenttien kirjoittamisen sijasta.

GNU Hurd

Vuonna 1990 GNU-järjestelmä oli lähes valmis; ainut suuri puuttuva komponentti ole ydin. Me olimme päättäneet toteuttaa ytimemme palvelinprosesseina joita ajetaan Machilla. Mach on mikroydin joka on kehitetty Carnegie Mellon-yliopistossa ja täten Utahin yliopistossa; GNU Hurd on kokoelma palvelimia (tai “lauma GNU:ita”) joita ajetaan Machilla ja jotka toteuttavat useita Unix:n ytimen tehtäviä. Kehitysprosessin alku viivästyi kun me odotimme Machin julkaisua vapaana ohjelmana kuten oli luvattu.

Yksi syy tähän malliin oli vaikeimmalta vaikuttavan työn välttämistä; ydinohjelman debuggaamista ilman lähdekooditason debuggeria. Tämä osa oli jo tehty Machissa ja me odotimme Hurd-palvelinten debuggaamista käyttäjätason ohjelmina GDB:n avulla. Mutta sen mahdolliseksi tekeminen vei kauan aikaa ja useasäikeiset palvelimet jotka lähettävät viestejä toisilleen ovat paljastuneet erittäin vaikeiksi debugata. Hurd:in työstäminen vakaaksi on venynyt useita vuosia.

Alix

GNU-ydintä ei alun perin tarkoitettu kutsuttavaksi HURD:ksi. Sen alkuperäinen nimi oli Alix, nimettynä sen aikaisen kultani mukaan. Hän, Unix-pääkäyttäjä oli osoittanut kuinka hänen nimensä sopisi yleiseen Unix-järjestelmäversioiden nimeämistapaan; hän kertoi ystävilleen vitsinä: “Jonkun pitäisi nimetä ydin minun mukaani.” Minä en sanonut mitään mutta päätin yllättää hänet nimeämällä ytimen Alix:ksi.

Mutta tämä ei ollut lopullista. Michael (nykyinen Thomas) Bushnell, ytimen pääkehittäjä piti nimestä Hurd ja määritti Alixin uudelleen tarkoittamaan tiettyä osaa ytimestä, osaa joka sieppaisi järjestelmäkutsuja ja käsittelisi ne lähettämällä viestejä Hurd-palvelimille.

Lopulta Alix ja minä jätimme toisemme ja hän muutti nimensä; ilman tämän tapahtuman vaikutusta Hurd:n designia muutettiin siten, että C-kirjasto lähettäisi viestejä suoraan palvelimille ja tämä aiheutti Alix-komponentin katoamaan designista.

Mutta ennen näitä tapahtumia hänen ystävänsä löysi nimen Alix lähdekoodista ja mainitsi sen hänelle. Joten nimi teki työnsä.

Linux ja GNU/Linux

GNU Hurd ei ole sopiva tuotantokäyttöön, emmekä ole varmoja tuleeko se koskaan olemaan. Ominaisuuksiin perustuvalla designillä on ongelmia, jotka tulevat suoraan designin mukautettavuudesta, ja ei ole varmaa, onko ratkaisuja olemassa.

Onneksi toinen ydin on saatavilla. Vuonna 1991 Linus Torvalds kehitti Unix-yhteensopivan ytimen ja kutsui sitä Linux:ksi. Se oli epävapaa aluksi, mutta vuonna 1992, hän teki siitä vapaata ohjelmistoa; Linuxin yhdistäminen ei-vielä-valmiin GNU-järjestelmän kanssa toi täysin vapaan käyttöjärjestelmän. (Niitten yhdistäminen oli huomattava työ itsessään, tietenkin.) On Linuxin ansiota, että me voimme käyttää GNU-järjestelmän versiota nykyään.

Me kutsumme tätä järjestelmää GNU/Linux:ksi ilmaistaksemme sen koostuvan GNU-järjestelmästä Linux sen ytimenä. Älä kutsu koko järjestelmää nimellä "Linux", koska se merkkaa meidän työmme jonkin muun työnä. Anna meille myös maininta.

Tulevaisuuden haasteet

Olemme todistaneet kykymme kehittää laajan valikoiman vapaita ohjelmia. Tämä ei tarkoita sitä, että olemme voittamattomia ja pysäyttämättömiä. Useat haasteet tekevät vapaiden ohjelmien tulevaisuuden epävarmaksi: näiden kohtaaminen vaatii järkkymätöntä ponnistelua ja kestävyyttä, joskus useiden vuosien ajan. Ne tarvitsevat sellaista päättäväisyyttä mitä ihmiset ilmaisevat kun he arvostavat vapauttaan ja eivät anna kenenkään viedä sitä.

Seuraavat neljä kohtaa kertovat näistä haasteista.

Salainen laitteisto

Laitteistovalmistajat ovat yhä enenevissä määrin alkaneet pitää tietoja laitteiston toiminnasta salaisina. Tämä tekee vapaiden laiteajureiden kirjoittamisen Linux:lle ja XFree86:lle vaikeaksi ja täten aiheuttaa näille vaikeuksia tukea uutta laitteistoa. Meillä on täydelliset vapaat järjestelmät tänään mutta ei huomenna jos emme voi tukea huomisen tietokoneita.

On olemassa useita tapoja selvitä tästä ongelmasta. Ohjelmoijat voivat tutkia laitteistoa ymmärtääkseen kuinka tukea sitä. Loput meistä voivat valita laitteiston jota vapaat ohjelmistot tukevat; kun meitä tulee yhä lisää laitteistotietojen salaisuudesta tulee laitteistonvalmistajia itseään vahingoittava politiikka.

Laitteiston tutkiminen on suuri työ. Tuleeko meillä olemaan ohjelmoijia jotka ovat tarpeeksi päättäväisiä hoitaakseen sen? Kyllä jos olemme saaneet aikaan vahvan tunteen, että vapaassa ohjelmistossa on kyse periaatteesta ja ei-vapaita ajureita ei suvaita. Ja kuluttavatko useat meistä vähän lisää rahaa tai jopa aikaa, että me voimme käyttää vapaita ajureita? Kyllä jos päättäväisyys vapaudesta on levinnyt laajalle.

(2008 huomautus: tämä ongelma laajenee myös BIOS:iin. On olemassa vapaa BIOS, LibreBoot (corebootin jakelu); ongelma on koneiden teknisten tietojen hankkiminen, jotta libreboot voi tukea niitä ilman epävapaita "blobbeja".)

Ei-vapaat kirjastot

Ei-vapaa kirjasto jota ajetaan vapaalla käyttöjärjestelmänä on ansa vapaiden ohjelmien kehittäjille. Kirjaston viehättävät ominaisuudet ovat syötti; jos käytät kirjastoa joudut ansaan, koska ohjelmasi ei voi olla käyttökelpoinen osa vapaata käyttöjärjestelmää. (Oikeastaan me voisimme sisällyttää ohjelmasi mutta se ei toimisi ilman puuttuvaa kirjastoa). Vielä pahempaa on jos ohjelma joka käyttää ei-vapaata kirjastoa tulee suosituksi niin se voi houkuttaa muita ohjelmoijia ansaan.

Ensimmäinen esimerkki tästä ongelmasta oli Motif-kirjasto 80-luvulla. Vaikka ei ollut olemassa yhtäkään vapaata käyttöjärjestelmää oli selvää minkä ongelman Motif aiheuttaisi jälkeenpäin. GNU-projekti vastasi tähän kahdella tavalla: kysymällä itsenäisiltä vapailta ohjelmistoprojekteilta tukea vapaille X widgeteille Motifin lisäksi ja etsimällä ihmisiä kirjoittamaan Motifin korvaavan vapaan kirjaston. Kirjaston kirjoittaminen vei useita vuosia; Hungry Programmers:n kehittämä LessTif tuli tarpeeksi tehokkaaksi tukeakseen useimpia Motif-sovelluksia vasta vuonna 1997.

Vuosien 1996 ja 1998 välillä toinen ei-vapaa, graafiselle käyttöliittymälle tarkoitettu työkalupakkikirjasto nimeltään Qt tuli käytetyksi huomattavassa osassa vapaita ohjelmistoja, KDE-työpöytäympäristössä.

Vapaat GNU/Linux-järjestelmät eivät voineet käyttää KDE:tä koska me emme voineet käyttää kirjastoa. Kuitenkin jotkut kaupalliset GNU/Linux-järjestelmien levittäjät jotka eivät olleet tiukkoja pysymään vapaissa ohjelmistoissa lisäsivät KDE:n järjestelmiinsä tuottaen järjestelmän jossa oli enemmän toiminnallisuutta mutta vähemmän vapautta. KDE-ryhmä rohkaisi aktiivisesti ohjelmoijia käyttämään Qt:tä ja miljoonille uusille “Linuxkäyttäjille” ei koskaan kerrottu sitä että tässä olisi joku ongelma. Tilanne vaikutti katkeralta.

Vapaita ohjelmia kehittävä yhteisö vastasi ongelmaan kahdella eri tavalla, GNOME:lla ja Harmony:llä.

GNOME, GNU Network Object Model Environment on GNU:n työpöytäprojekti. Vuonna 1997 Miguel de Icaza:n aloittamana ja Red Hat Software:n tuella kehitettämänä GNOME julkaistiin samanlaisten työpöytäominaisuuksien tarjoamiseksi mutta käyttäen vain vapaita ohjelmia. Sillä on myös teknisiä etuja tukien useita kieliä eikä vain C++:aa. Sen päätavoite oli vapaus: se, että ei tarvitsisi käyttää ei-vapaita ohjelmistoja.

Harmony on yhteensopiva korvaava kirjasto joka suunniteltiin KDE-ohjelmistojen ajamisen mahdollistamiseksi ilman Qt:ta.

Marraskuussa 1998 Qt:n kehittäjät ilmoittivat muutoksen lisenssissä joka tulisi tekemään Qt:stä vapaan ohjelman. Ei ole varmaa, mutta minun mielestäni tämä johtui osakseen yhteisön lujaan vastaukseen siitä ongelmasta jonka Qt aiheutti ollessaan ei-vapaa. (Uusi lisenssi on epäoikeudenmukainen ja hankala joten on yhä haluttavaa välttää Qt:n käyttöä).

Jälkihuomautus: [Syyskuussa 2000 Qt julkaistiin uudelleen GNU GPL-lisenssillä joka keskeisesti ratkaisi tämän ongelman.]

Kuinka me vastaamme seuraavaan houkuttelevaan ei-vapaaseen kirjastoon? Ymmärtääkö koko yhteisö tarpeen pysyä poissa ansasta? Vai vaihtavatko monet meistä vapauden mukavuuteen tuottaen suuren ongelman? Tulevaisuutemme riippuu filosofiastamme.

Ohjelmistopatentit

Pahimman uhan meille muodostavat ohjelmistopatentit jotka voivat voivat tehdä algoritmien ja ominaisuuksien käyttämisen vapaissa ohjelmissa mahdottomiksi jopa kahdeksikymmeneksi vuodeksi. LZW pakkausalgoritmin patentit haettiin vuonna 1983 ja emme vieläkään voi julkaista vapaita ohjelmia tuottamaan oikein pakattuja GIF-kuvia. [Patentit ratkesivat vuonna 2009.] Vuonna 1998 vapaa ohjelma MP3-pakatun äänen tuottamiseksi poistettiin levityksestä patenttioikeudenkäynnin takia. [Vuonna 2017 nämä patentit ratkesivat. Katsopas kuinka pitkään meidän piti odottaa.]

On olemassa tapoja selvitä patenteista: voimme etsiä todisteita, että patentti on väärä ja voimme etsiä vaihtoehtoisia tapoja tehdä jokin asia. Mutta kumpikin näistä tavoista toimii vain joskus; kun kummatkin epäonnistuvat patentti aiheuttaa vapaille ohjelmille jonkun käyttäjien haluaman ominaisuuden puuttumisen. Pitkän odotuksen jälkeen patentit ratkeavat, mutta mitä me teemme ennen kun näin käy?

Ne meistä jotka arvostavat vapaita ohjelmistoja vapauden takia kuitenkin pysyvät vapaissa ohjelmistoissa. Me löydämme keinoja tehdä työtä ilman patentoituja ominaisuuksia. Mutta ne jotka arvostavat vapaita ohjelmistoja koska olettavat niiden olevan teknisesti parempia kutsuvat patentin aiheuttamaa hillintää epäonnistumiseksi. Täten kun on käyttökelpoista puhua käytännöllisestä tehokkuudesta "basaarimallia" kehityksessä ja vapaiden ohjelmistojen luotettavuudesta ja voimasta meidän ei tule pysähtyä tähän. Meidän täytyy puhua vapaudesta ja periaatteesta.

Vapaa dokumentaatio

Suurin puute vapaissa ohjelmistoissa ei ole ohjelmistossa vaan hyvien ja vapaiden manuaalien puute jotka voimme sisällyttää järjestelmiimme. Dokumentaatio on tärkeä osa mitä tahansa ohjelmistoa; kun tärkeään vapaaseen ohjelmistopakettiin ei sisälly hyvää vapaata manuaalia niin se on suuri puute. Meillä on useita sellaisia tapauksia tänään.

Vapaassa dokumentaatiossa, kuten vapaissa ohjelmistossa on kyse vapaudesta eikä hinnasta. Vapaan manuaalin määritelmä on melko sama kuin vapaan ohjelman: siinä on kyse tiettyjen vapauksien antamisesta kaikille käyttäjille. Uudelleenlevitys (sisältäen kaupallisen myynnin) täytyy hyväksyä sekä verkossa ja paperilla siten, että manuaali voi tulla jokaisen ohjelmakopion mukana.

Lupa muutosten tekemiseen on myös tärkeää. Yleisensä sääntönä en usko, että ihmisten pitää päästä muokkaamaan kaikkia artikkeleita ja kirjoja. Esimerkiksi minun mielestäni sinä tai minä et ole velvollinen antamaan lupaa tämänkaltaisten tekstien muokkaamiseen jotka selittävät toimiamme ja näkökulmiamme.

Mutta on olemassa tietty syy miksi vapaus muokata on elintärkeä vapaan ohjelmiston dokumentoinnille. Kun ihmiset käyttävät oikeuttaan muokata ohjelmistoa lisäten tai muuttaen sen ominaisuuksia he muuttavat myös manuaalia ollessaan tunnollisia, että he voivat tuottaa tarkkaa ja käyttökelpoista dokumentaatiota muokatun ohjelman kanssa. Epävapaa manuaali, joka ei salli ohjelmoijien olla tunnollisia ja viimeistellä työtään, ei täytä yhteisömme tarpeita.

Jonkinlaiset rajoitukset muutosten tekemiseen eivät aiheuta ongelmia. Esimerkiksi vaatimukset säilyttää alkuperäisen kirjoittajan copyright-ilmoitus , levityssäännöt, tai tiedot tekijöistä ovat sallittavissa. Myös siinä, että muokatuissa versioissa lukee tieto siitä, että ne ovat muokattuja jopa silloin kuin kokonaiset kappaleet ovat pysyneet muuttumattomina niin kauan kuin nämä kappaleet eivät käsittele teknisiä asioita. Tämänlaiset rajoitukset eivät ole ongelma koska ne eivät estä tunnollista ohjelmoijaa sovittamasta manuaalia kuvaamaan muokattua ohjelmaa. Toisinsanottuna ne eivät estä vapaita ohjelmistoja kehittävää yhteisöä saamasta täyttä hyötyä manuaalista.

Kuitenkin täytyy olla mahdollista muokata kaikkea teknistä sisältöä manuaalissa ja sitten levittää tulosta kokonaisuudessaan tavallisella medialla tavallisten kanavien läpi: muuten rajoitukset estävät yhteisöä ja täten manuaali ei ole vapaa ja tarvitsemme toisen manuaalin.

Tuleeko vapaiden ohjelmistojen kehittäjillä olemaan tietoisuus ja päättäväisyys tuottaakseen laajan valikoiman vapaita manuaaleja? Taas kerran tulevaisuutemme riippuu filosofiastamme.

Meidän täytyy puhua vapaudesta

Arvioidaan, että tänään kymmenen miljoonaa ihmistä käyttää GNU/Linux- järjestelmiä kuten Debian GNU/Linux:a ja Red Hat “Linux”:a. Vapaa ohjelmisto on aiheuttanut käytännöllisen edun jonka takia käyttäjät parveilevat sen ympärillä pelkästään käytännöllisistä syistä.

Hyvät seuraukset tästä ovat päivänselviä; lisää kiinnostusta tehdä vapaita ohjelmia , lisää asiakkaita vapaita ohjelmistoja kehittäville yrityksille ja parantuneet mahdollisuudet rohkaista yhtiöitä tekemään kaupallisia vapaita ohjelmistoja suljettujen ei-vapaiden ohjelmistotuotteiden sijasta.

Mutta kiinnostus ohjelmistoon kasvaa nopeammin kuin tietoisuus filosofiasta johon se on perustunut ja tämä johtaa ongelmaan. Kykymme kohdata haasteet ja uhkat selitettynä ylempänä riippuu halusta olla lujasti vapauden kannalla. Tehdäksemme varmaksi sen, että yhteisöllämme on tämä tahto meidän täytyy levittää ideaa uusille käyttäjille kun he tulevat yhteisöön.

Mutta me olemme epäonnistumassa; pyrkimykset saada uusia käyttäjiä yhteisöömme ylittävät pyrkimykset opettaa heille mihin yhteiskuntamme perustuu. Meidän täytyy tehdä molempia ja pitää kummatkin pyrkimykset tasapainossa.

“Avoin lähdekoodi”

Vapauden opettaminen uusille käyttäjille tuli vaikeammaksi vuonna 1998 kun osa yhteisöstä päätti lopettaa termin vapaa ohjelmisto käyttämisen ja sanoivat avoimen lähdekoodin ohjelmisto (open source) sen sijaan.

Jotkut jotka suosivat tätä termiä tähtäsivät sekaannuksen välttämiseksi johtuen siitä, että englannissa sanalla “free” on kaksi merkitystä; vapaa ja ilmainen. Muut kuitenkin tähtäsivät hengen ja periaatteen, joka on kannustanut vapaita ohjelmistoja kehittävää liikettä ja GNU-projektia sivuuttamiseen vedotakseen johtajiin ja yrityskäyttäjiin joista monien ideologia asettaa liikevoiton vapauden, yhteisön ja periaatteen yläpuolelle. Täten avoin lähdekoodi keskittyy mahdollisuuteen tehdä laadukasta ja tehokasta ohjelmistoa mutta karttaa ideoita vapaudesta, yhteisöstä ja periaatteesta.

“Linux”-lehdet ovat selvä esimerkki tästä; ne ovat täynnä mainoksia ei-vapaista ohjelmistoista jotka toimivat GNU/Linux:ssa. Kun seuraava Motif tai Qt ilmestyy niin varoittavatko nämä lehdet ohjelmoijia pysymään kaukana siitä vai mainostavatko he sitä.

Yhtiöiden tuki voi avustaa yhteisöä monilla eri tavoilla; kaikesta huolimatta se on käyttökelpoista. Mutta heidän tukensa voittaminen puhumalla vielä vähemmän vapaudesta ja periaatteesta voi olla tuhoisaa; se lisää epätasapainoa ohjelmistojen suosion ja yhteisömme perusarvojen opettamisen välillä.

Termit vapaa ohjelmisto (free software) ja avoin lähdekoodi (open source) tarkoittavat enemmän tai vähemmän samassa kategoriassa olevia ohjelmistoja, mutta ne sanovat erilaisia asioita ohjelmistosta ja arvoista. GNU-projekti jatkaa termin “vapaa ohjelma” käyttöä ilmaistakseen sitä, että vapaus eikä vain teknologia on tärkeää.

Yritä!

Yodan filosofia (“Ei ole olemassa yritystä”) kuulostaa kivalta mutta se ei toimi minun tapauksessani. Olen tehnyt suurimman osan työstäni huolissani siitä että voisinko tehdä sen ja epävarmana siitä, että olisiko työni tarpeeksi tuloksen saavuttamiseksi jos tekisin sen. Mutta yritin kuitenkin koska ei ollut ketään muuta kaupunkini ja vihollisen välissä. Olen kuitenkin yllättynyt siitä että olen joskus onnistunut.

Joskus epäonnistuin; jotkut kaupungeistani kukistuivat. Mutta sitten löysin toisen uhatun kaupungin ja valmistauduin seuraavaan taisteluun. Olen kuitenkin aikojen saatossa oppinut etsiä uhkia ja laittaa itseni heidän ja kaupunkini väliin kutsuen muita hakkereita mukaani.

Nykyään en yleensä ole yksin. On helpotus ja ilo nähdä rykmentin hakkereita kaivamassa linjan pitämiseksi ja huomaan, että tämä kaupunki voi toistaiseksi selvitä. Mutta vaarat suurenevat joka vuosi ja nyt Microsoft on erityisesti kohdistunut yhteisöömme. Me emme voi ottaa vapaata tulevaisuuttamme varmana. Älä pidä sitä varmana! Jos haluat pitää vapautesi sinun täytyy olla valmis puolustamaan sitä!