Aquesta traducció no reflecteix els canvis fets des de 2017-06-16 a l' original anglès.

Podeu donar un cop d'ull a aquests canvis. Vegeu la Guia de traducció per informar-vos sobre la coordinació i publicació de les traduccions d'aquest article.
Contacteu amb l'Equip de traducció per col·laborar en la traducció al català del web de GNU.

El Projecte GNU

per Richard Stallman

Publicat originàriament al llibre Open Sources. Richard Stallman mai va donar suport al «codi obert», però va aportar aquest article per tal que les idees del moviment del programari lliure no estiguessin completament absents en aquest llibre.

Per què és mes important que mai insistir que el programari que utilitzem ha de ser lliure.

La primera comunitat per a compartir programari

Quan vaig començar a treballar al Laboratori d'Intel·ligència Artificial (LIA) del MIT l'any 1971 vaig entrar a formar part de la comunitat per a compartir programari que havia existit durant molts anys. L'ús compartit de programari no estava únicament limitat per la nostra comunitat particular: era tan antic com els ordinadors, de la mateixa manera que compartir receptes és tan antic com la cuina. Però ho fèiem més intensament que la majoria.

El LIA utilitzava un sistema operatiu de compartiment de temps anomenat ITS (Incompatible Timesharing System) que els hackers (1) del laboratori havien dissenyat i escrit en assemblador per al Digital PDP-10, ún dels ordinadors més potents de l'època. Com a membre d'aquesta comunitat, un hacker del LIA, la meva feina era millorar el sistema.

No anomenàvem el nostre programari «programari lliure», perquè el mot encara no existia, però això era el que realment era. Sempre que la gent d'altres universitats o empreses volien portar i utilitzar el programa, els hi oferíem amablement. Si veieu algú utilitzant un programa interessant però desconegut, sempre podeu preguntar-li si disposa del codi font per tal de llegir-lo, o reutilitzar-ne algunes parts per a fer un nou programa.

(1) L'ús de «hacker» com a «aquell qui trenca barreres de seguretat» és una confusió per part de la premsa i els medis de comunicació. Nosaltres els hackers refusem aquesta accepció del terme, i continuem emprant el mot per designar aquell qui està enamorat de la programació, aquell que gaudeix d'un enginy juganer o una combinació de les dues coses. Vegeu el meu article Sobre el Hacking.

El col·lapse de la comunitat

La situació canvià dràsticament als inicis dels 80 quan Digital suprimí la producció de la sèrie PDP-10. La seva arquitectura, elegant i potent als 60, no podia estendre's de manera natural als majors espais d'adreces que als 80 esdevenien ja factibles. Això va significar que gairebé tots els programes escrits per a ITS esdevingueren obsolets.

La comunitat hacker del LIA ja havia desaparegut. In 1981, una empresa jove, Symbolics, va contractar gairebé a tots els hackers del LIA, i la comunitat restant fou incapaç de mantenir-se pel seu compte. (El llibre Hackers, de Steve Levy, descriu aquests esdeveniments i alhora ofereix un panorama detallat d'aquesta comunitat.) Quan el LIA va comprar un nou PDP-10 l'any 1982, els administradors van decidir d'utilitzar el sistema de compartició de temps no lliure de Digital en comptes del ITS.

Els ordinadors moderns de l'època, com el VAX o el 68020, disposaven dels seus propis sistemes operatius, però cap d'ells era programari lliure: hom havia de signar un contracte fins i tot per obtenir una còpia de l'executable.

Això significava que havíeu de prometre prometre que no ajudaríeu el vostre veí. La cooperació fou prohibida. La regla establerta pels amos del programari propietari era: «Si ho compartiu amb els vostres companys, sou uns pirates. Si feu voleu cap canvi, demaneu-nos que el fem.»

La idea que el sistema social implantat pel programari propietari (el sistema que prohibeix compartir o modificar el programari) és antisocial, no ètica i simplement dolenta, pot sorprendre a alguns lectors. Però què més podríem dir sobre un sistema basat en dividir al públic i deixar sense ajut als usuaris? Els lectors que trobin la idea sorprenent pot ser que considerin el sistema social de programari propietari com a donat, o el jutgin en els termes aconsellats per les empreses de programari propietari. Els productors de programari han treballat intensament i durant molt temps per tal de convèncer a la gent que és l'única manera de veure el tema.

Quan els productors de programari parlen de «fer valdre» els seus «drets» o «aturar la pirateria», el que volen realment dir és secundari. El missatge real d'aquestes afirmacions és en els supòsits que ells prenen com a donats i que el públic ha d'acceptar sense cap mena de discussió. Anem doncs a examinar-los.

Un supòsit és que les empreses de programari tenen un dret natural inqüestionable sobre el seu propi programari i per tant tenen poder sobre tots els seus usuaris. Si aquest fos un dret natural, llavors no importaria el dany que fa sobre el públic, perquè no podríem posar cap objecció. Però la Constitució dels EE.UU. o la tradició legal refusen aquesta interpretació: el copyright no és un dret natural, sinó un mecanisme artificial que imposa un monopoli limitador del dret natural a copiar dels usuaris.

Un altre d'aquests supòsits és que l'única cosa important relativa al programari són els llocs de treball que permeten crear, un supòsit que du implícit el fet que nosaltres, els usuaris, no ens hem de preocupar del tipus de societat que ens està permès de tenir.

Un tercer supòsit és que no tindríem programari utilitzable (o, millor dit, no tindríem un programa que fes una tasca particular) si no oferíssim a l'empresa poder sobre els usuaris del programa. Aquest supòsit pot semblar plausible abans que el moviment per al programari lliure demostrés que es pot tenir qualsevol programari sense haver d'imposar restriccions.

Si declinem d'acceptar aquests supòsits i jutgem aquest tema basant-nos en el sentit comú i posant els usuaris al capdamunt, arribem a unes conclusions ben diferents. Els usuaris dels sistemes informàtics haurien de ser lliures de modificar programes per tal que s'adaptessin a les seves necessitats, a més de poder compartir-lo, pel senzill fet de què ajudar a la resta de gent és la base de la societat.

No disposem aquí de lloc per a un tractament més extens del raonament que hi ha darrera d'aquesta conclusió, per la qual cosa us adreço a les pàgines http://www.gnu.org/philosophy/why-free.html i http://www.gnu.org/philosophy/free-software-even-more-important.html.

Un dur dilema moral.

Amb la desaparició de la meva comunitat, continuar com abans era impossible. Em vaig plantejar llavors un dur dilema moral.

Una elecció fàcil hauria estat unir-me al món del programari propietari, on hauria signat contractes de no revelació i hauria promès no ajudar als meus companys. Amb major probabilitat hauria també desenvolupat programari que hauria sortit en condicions de no revelació, afegint per tant pressió sobre la resta de gent a trair els seus companys.

Hauria pogut fer diners d'aquesta manera, i potser m'hauria divertit escrivint codi. Però sé que al final de la meva carrera miraria enrere, als anys on es van construir barreres per dividir a la gent, i pensaria que m'hauria passat la vida fent el món una mica pitjor del que és.

Ja havia experimentat el què era un acord de no revelació quan un cop es van negar a facilitar-me (a mi i al LIA del MIT) el codi font d'un programa de control de la nostra impressora (la manca de diverses funcions en el programa utilitzat feia molt difícil l'ús de la impressora). No podria dir doncs que els acords d'exclusivitat eren innocus. Em vaig emprenyar molt quan van rebutjar de compartir el codi; no podria fer jo el mateix a algú.

Una altra tria, fàcil però poc motivadora, era la de deixar el món de la informàtica. D'aquesta manera els meus coneixements no s'utilitzarien malament, però es malgastarien. No seria culpable de dividir als usuaris i de restringir-los els drets, però no podria fer-hi res.

Vaig cercar per tant una manera per tal de poder fer quelcom de bo. Em vaig preguntar si hi havia algun programa o programes que podia escriure, per tal de refer la comunitat.

La resposta era clara: el que primer calia era un sistema operatiu. És a dir, el programari crucial per a poder fer servir un ordinador. Amb un sistema operatiu, podeu fer moltes coses; sense ell, no podeu treballar-hi. Amb un sistema operatiu lliure podia refer-se la comunitat de programadors i convidar a què més gent s'hi afegís. I tothom podria fer servir un ordinador sense que el seu ús provoqués una pèrdua de drets dels seus companys.

Com a desenvolupador de sistemes operatius, tenia els coneixements i habilitats adequades per a la feina. Tot i que no n'estava segur dels resultats em vaig adonar que era la persona indicada per a fer-ho. Vaig decidir de fer el sistema compatible amb Unix per tal de que podés ser portable i perquè els usuaris de Unix poguessin fàcilment canviar-se de bàndol. El nom GNU fou escollit seguint una tradició hacker: GNU és un acrònim recursiu que significa GNU's Not Unix.

Un sistema operatiu no és només un nucli, amb prou feines suficient per a executar altres programes. Als anys 70 tots els sistemes operatius dignes de dur aquest nom duien assembladors, processadors de comandes, compiladors, intèrprets, depuradors, editors de text, programari de correu i molt més. ITS els duia, Multics també els duia, VMS també els duia i Unix també els duia. El sistema operatiu GNU també els havia de dur.

Més tard vaig escoltar aquests versos, atribuïts a Hillel (1):

Si no existeixo per mi mateix, qui existirà per mi?
Si només existeixo per mi mateix, què sóc?
Si no ara, quan?

La decisió de començar el projecte GNU estava basada en un esperit similar.

(1) Com a ateu, no estic sota les ordres de cap líder religiós, però a vegades admiro algunes coses del que diuen.

Lliure com a llibertat

El terme «programari lliure» és sovint entès malament: no té res a veure amb el preu. Té a veure amb la llibertat. La definició de programari lliure és, per tant, aquesta:

Un programa és programari lliure per a vosaltres, ususaris particulars, si:

Com «lliure» fa referència a llibertats, no a preu, no hi ha cap contradicció en vendre còpies de programari lliure. De fet, la llibertat de vendre còpies és crítica: els reculls de programari lliure venuts en un CD-ROM són valuosos per a la comunitat, i la seva venda és una font important de recursos per al desenvolupament del programari lliure. Per tant, un programa on la gent no té dret a incloure'l en col·leccions de programes no és un programa lliure.

Degut a la ambigüitat del terme «lliure», molta gent ha cercat des de fa temps per paraules alternatives. L'anglès té més paraules i matisos que cap d'altra però li manca una paraula simple, sense ambigüitats, on «lliure» sigui idèntic a «llibertat». Unfettered és el mot que està més proper en significat. Alternatives com liberated, freedom o open tenen o bé un significat dubtós o algun altre desavantatge.

El programari GNU i el sistema GNU

Desenvolupar un sistema operatiu complet és un projecte molt complex. Per tal de poder-lo dur a terme, vaig decidir adaptar i utilitzar peces ja existents de programari lliure sempre això que fos possible. Vaig decidir, per exemple, fer servir des dels inicis TeX com a formatador de textos; uns quants anys més tard, vaig decidir a fer servir el sistema X Window en comptes de qualsevol altre per al sistema GNU.

Degut a aquestes decisions i a altres semblants, el sistema GNU no és el mateix que la col·lecció de programari GNU. El sistema GNU inclou programes que no són programari GNU, sinó programari desenvolupat per tercers i projectes independents, però que podem utilitzar pel fet que són programes lliures.

Arrencada del projecte

El gener de 1984 vaig deixar la meva feina al MIT i vaig començar a escriure programari GNU. Deixar el MIT era necessari amb l'objectiu que el MIT no pogués interferir amb la distribució del GNU com a programari lliure. En cas d'haver continuat formant part del personal, el MIT podria haver reclamat el seus drets sobre el treball, imposar els seus termes de distribució, o fins i tot fer que el programa esdevingués un programa propietari. No tenia ganes de què una tasca d'aquestes magnituds es veiés desvirtuada del seu propòsit original: crear una nova comunitat de compartició del programari.

Tot i això, el catedràtic Winston, en aquells moments el cap del LIA del MIT, em va convidar cordialment a fer servir els equips del laboratori sempre que ho volgués.

Les primeres passes

Una mica abans dels inicis del projecte GNU havia tingut notícies del Free University Compiler Kit, també conegut com a VUCK. (El terme holandès referit a «lliure» s'escriu amb una v). Era un compilador dissenyat per a utilitzar diversos llenguatges, entre ells C i Pascal, i per suportar múltiples màquines. Vaig escriure al seu autor demanant-li si la GNU podia fer-lo servir.

La resposta fou irònica, indicant-me que si bé la universitat era gratuïta, el compilador no ho era. Em vaig decidir, per tant, a què el primer programa del projecte GNU fos un compilador multillenguatge i multiplataforma.

Esperant haver d'estalviar-me la feina d'escriure completament el compilador pel mou compte, vaig obtenir el codi font del compilador Pastel, que era un compilador multiplataforma desenvolupat al Lawrence Livermore Lab. Suportava, i de fet estava escrit en ell, una versió estesa de Pascal, dissenyada per a ser un llenguatge de programació del sistema. Hi vaig afegir suport per a C i vaig començar a portar-lo a un ordinador Motorola 68000. Però vaig haver-ho d'abandonar quan em vaig donar compte de què el compilador necessitava molts megaoctets d'espai de pila i que la pila disponible al Unix 68000 només permetia 64k.

Llavors em vaig adonar que el compilador Pastel funcionava analitzant el fitxer d'entrada complet en un arbre de sintaxi, convertint el fitxer de sintaxi complet en una cadena d'«instruccions» i generant un únic fitxer de sortida, sense haver fet cap emmagatzematge. Vaig concloure que havia d'escriure un nou compilador des de zero. Aquest nou compilador és conegut actualment com a GCC. El GCC no utilitza res del compilador Pastel, però me les vaig arreglar per adaptar i incloure la part que havia escrit per al C. Però això fou anys més tard; abans, vaig treballar amb el GNU Emacs.

GNU Emacs

Vaig començar a treballar en el GNU Emacs el setembre de 1984, i a primers de 1985 començava a poder ser utilitzat. Això em va permetre utilitzar sistemes Unix per a editar. Com no tenia cap interès en aprendre com utilitzar vi o ed, havia fet l'edició en altres màquines fins llavors.

Fou llavors quan la gent començà a voler utilitzar GNU Emacs, cosa que va fer sorgir el dubte de com distribuir-lo. Per descomptat, el vaig posar al servidor ftp anònim de l'ordinador del MIT que havia utilitzat. (Aquest ordinador, prep.ai.mit.edu, esdevingué la principal ftp de distribució GNU; quan fou donat de baixa anys més tard, vam transferir el nom al nostre nou servidor ftp). Malgrat això, en aquella època la majoria dels potencials usuaris no tenien accés a Internet i no podien aconseguir la còpia via ftp. Per tant el dubte era: com fer-los saber de la seva existència?

Podria haver dit: «Troba un amic que estigui a la xarxa i que et faci una còpia.» O podria haver fet el que vaig fer amb l'Emacs PDP-10 original: dir-los: «Envieu-me una cinta i un SASE, i us ho retornaré amb l'Emacs.» Però jo no tenia feina remunerada i estava cercant vies per obtenir diners del programari lliure. Vaig decidir-me per tant a anunciar que enviaria una cinta a tothom que ho volgués, però previ pagament de 150 $. D'aquesta manera vaig començar el negoci de la distribució de programari lliure, el precursor de les empreses que avui distribueixen sistemes complets GNU basats en Linux.

És un programa lliure per a tots els usuaris?

Si un programa és programari lliure quan deixa les mans del seu autor, això no significa necessàriament que sigui programari lliure per a qualsevol que tingui una còpia. Per exemple, el programari de domini públic (programari sense copyright) és programari lliure, però qualsevol pot fer una versió modificada propietària a partir d'ell. De la mateixa manera molts programes lliures tenen copyright però es distribueixen amb llicències simples molt permissives que permeten versions modificades propietàries.

L'exemple paradigmàtic d'aquest problema és el sistema X Window. Desenvolupat al MIT, i llençat com a programari lliure amb una llicència permissiva, fou adoptat ràpidament per diverses empreses d'ordinadors. Aquestes afegiren X als seus sistemes Unix propietaris, només en mode binari, i la van incloure en el seu mateix contracte. Aquestes còpies de X van deixar de ser programari lliure, de la mateixa manera que ho va deixar de ser el Unix.

Els desenvolupadors del sistema X Window no van considerar això un problema: ho preveien. El seu objectiu final no era la llibertat sinó l'«èxit», definit com a «captar el màxim nombre d'usuaris». No van tenir en compte si aquests usuaris disposarien de drets; només de què fossin nombrosos.

Això va dur a la situació paradoxal on dues maneres diferents de mesurar els drets donaren diferents respostes a la pregunta «És aquest programa lliure?» Si jutgeu basant-vos en els drets donats pels termes de distribució de la versió del MIT, X és programari lliure. Però si mesureu la llibertat de l'usuari típic de X, la resposta és que és programari propietari. La majoria d'usuaris de X executen les versions propietàries que venen amb els sistemes Unix, no la versió lliure.

Copyleft i la GPL del GNU

L'objectiu del GNU fou donar als usuaris drets, no només ser populars. Per tant, calia utilitzar uns termes de distribució que no deixessin cap possibilitat de què el programari GNU esdevinguin programari propietari. Aquest mètode que utilitzem és anomenat «copyleft». (1)

El copyleft utilitza la llei del copyright, però amb l'objectiu de què serveixi per al contrari del seu propòsit habitual: en comptes de privatitzar el programari, esdevé un medi per a mantenir el programari lliure.

La idea central del copyleft és donar a tothom permís per a executar el programa, copiar-lo, modificar-lo i distribuir-lo modificat o sense modificat, però sense permís d'afegir restriccions. Per tant, els drets crítics que defineixen el «programari lliure» estan garantits per a tothom que tingui una còpia. Són drets inalienables.

Per a un copyleft efectiu, les versions modificades han de ser també lliures. Això garanteix que la feina que fem pugui estar disponible per a tothom si es publica. Quan els programadors que tenen feines de programador col·laboren a millorar el programari GNU, és el copyleft el que impedeix als seus caps que esdevinguin situacions com: «Tu no pots distribuir aquests canvis, perquè els farem servir per llençar una versió propietària del programa.»

L'exigència de que els canvis han de ser lliures és essencial si volem garantir els drets de tots els usuaris del programa. Les empreses que van privatitzar el sistema X Window sovint feien canvis mínims per a portar-los als seus sistemes i maquinari. Aquests canvis eren petits comparats amb les dimensions del sistema X, però no trivials. Si el fer canvis era una excusa per a denegar drets als usuaris hauria de ser fàcil per a qualsevol de prendre avantatge d'aquesta excusa.

Un aspecte relacionat és la combinació d'un programa lliure amb codi no lliure. Tal combinació esdevindrà necessàriament no lliure: aquells drets eliminats de la part no lliure seran drets eliminats al programa final. Permetre aquests combinacions pot obrir un forat prou gran per enfonsar un vaixell. Per tant, un requisit indispensable per al copyleft és omplir aquest forat: qualsevol cosa afegida o combinada amb un programa amb copyleft ha de donar lloc a una versió lliure i amb copyleft.

La implementació específica del copyleft que utilitzem per a la majoria del programari GNU és la Llicència Pública General GNU (GNU GPL abreujadament). Tenim altres tipus de copyleft que utilitzem en circumstàncies particulars. Els manuals GNU també tenen copyleft, però utilitzen un sistema de copyleft més simple, donat que la complexitat de la GNU GPL no és necessària per als manuals. (2)

(1) El 1984 o 1985, Don Hopkins (un paio molt imaginatiu) em va enviar una carta. Al sobre havia escrit diverses notes divertides, incloent-hi aquesta: «Copyleft – all rights reversed.» Vaig emprar el mot «copyleft» per nombrar el concepte de distribució que estava desenvolupant en aquell moment.

(2) Ara utilitzem la Llicència de Documentació Lliure de GNU per a la documentació.

La Free Software Foundation

Com l'interès en utilitzar l'Emacs estava creixent, més gent s'estava involucrant en el projecte GNU, i vam decidir que era hora de cercar fons. Per tant, el 1985 vam crear la Free Software Foundation (FSF), una entitat no lucrativa dedicada al programari lliure. La FSF va assumir el negoci de distribució de les cintes amb l'Emacs (més tard s'hi va afegir altre programari lliure (bé GNU o no GNU) ) i la venda de manuals lliures.

La majoria dels ingressos de la FSF han provingut sempre de les vendes de còpies de programari lliure i d'altres serveis relacionats (CD-ROMs amb el codi font, CD-ROMs amb els binaris, manuals acuradament impresos, tot amb la llibertat de distribuir i modificar) i distribucions de luxe (distribucions que construïm amb una col·lecció completa de programari segons la plataforma escollida pel client). Encara avui la FSFl ven manuals i altres complements, peró obté la major part dels seus fons de les donacions dels membres. Podeu unir-vos a la FSF a fsf.org.

Els treballadors de la FSF han escrit i mantingut un nombre de paquets de programari GNU. Dos exemples notables són la biblioteca C i la shell. La biblioteca C GNU és el medi amb que qualsevol programa treballant amb GNU/Linux utilitza per a comunicar-se amb Linux. Fou desenvolupada per un membre del nucli de la FSF, Roland McGrath. La shell utilitzada en la majoria dels sistemes GNU/Linux és la Bash, la Bourne Again Shell (1), desenvolupada per Brian Fox, treballador de la FSF.

Vam subvencionar el desenvolupament d'aquests programes perquè el projecte GNU no es limitava a crear eines de desenvolupament. El nostre objectiu era un sistema operatiu complet, i tots aquests programes eren necessaris per a assolir aquest objectiu.

(1) Bourne again Shell és un acudit del nom Bourne Shell, que era la shell usual a Unix.

Suport al programari lliure

La filosofia del programari lliure rebutja una pràctica empresarial àmpliament estesa, però en cap cas està en contra de les empreses. Quan les empreses respecten els drets dels usuaris els desitgem sort.

La venda de còpies de l'Emacs és un dels exemples dels negocis relacionats amb el programari lliure. Quan la FSF va assumir el negoci, necessitava un altre medi de subsistència. El vaig trobar venent serveis relacionats amb el programari lliure que havia desenvolupat. Això incloïa la formació: com programar el GNU Emacs, com personalitzar el GCC, desenvolupament de programari (portar GCC a noves plataformes).

Actualment cadascun d'aquests tipus de pràctiques empresarials relacionades amb el programari lliure són realitzades per un gran nombre d'empreses. Algunes distribueixen col·leccions de programari lliure en CD-ROM; d'altres venen suport a nivells que van des de respondre dubtes dels usuaris a afegir noves funcionalitats importants. Estem començant a veure empreses de programari lliure basades en llençar nous productes de programari.

Tot i això, un nombre d'empreses que s'associen amb el terme «programari lliure» realment basen els seus negocis en el programari no lliure que utilitza el programari lliure. Aquestes no són empreses de programari lliure, són empreses de programari propietari amb productes que tempten als usuaris a prescindir dels seus drets. Els anomenen «valor afegit», que reflecteix els valors que volen fer-nos adoptar: conveniència per sobre dels drets. Si valorem més els drets, hauríem d'anomenar-los productes «limitadors de drets».

Objectius tècnics

El principal objectiu de la GNU és el d'oferir programari lliure. Fins i tot en el cas de què el sistema GNU no tingués avantatges tècnics respecte a Unix, tindria avantatges socials al permetre la cooperació entre usuaris, i avantatges de tipus ètic al respectar els drets dels usuaris.

Però era natural aplicar les bones pràctiques conegudes al treball, per exemple, les estructures de dades d'assignació dinàmica per evitar mides límit arbitràriament fixades i utilitzar tots els codis de 8 bits possibles on això tingués sentit.

A més, vam rebutjar l'obsessió de Unix en mides de memòria petites, i no vam voler donar suport a les màquines de 16 bits (ja era clar que les màquines de 32 bits serien les habituals quan el projecte GNU estigués acabat) ni insistir en reduir l'ús de la memòria llevat que excedís d'un megaoctet. En programes en els que el tractament de fitxers molt grans no era crucial, vam animar als programadors a que es llegís el fitxer dins el nucli, i llavors escanejar els seus components sense haver-se de preocupar de l'E/S.

Aquestes decisions permeteren a molts programes GNU de millorar els seus homònims Unix en fiabilitat i velocitat.

Ordinadors donats

A mesura que la reputació del projecte GNU creixia, van començar les donacions de màquines amb Unix. Aquestes eren molt útils, perquè la manera més útil de desenvolupar components per al GNU era fer-ho amb Unix i canviar els components d'aquell sistema un a un. Però fou llavors quan aparegué una qüestió ètica: si era lícit utilitzar el Unix.

El Unix era (i és) programari propietari, i la filosofia del projecte GNU diu que no hauríem de fer servir programari propietari. Però, aplicant el mateix raonament que du a la conclusió de què la violència és justifica si és en defensa pròpia, vaig concloure que era legítim utilitzar un paquet propietari quan era crític per al desenvolupament d'aplicacions que el substituïen i que ajudarien a la resta a deixar d'utilitzar el paquet propietari.

Però, tot i que sigui un pecat justificable, no deixa de ser un pecat. Actualment no tenim cap còpia de Unix, perquè l'hem substituït per sistemes operatius lliures. Si no podem canviar el sistema operatiu de la màquina, canviem la màquina.

La llista de tasques del GNU

A mesura que el projecte GNU s'anava desenvolupant i que s'anaven trobant o desenvolupant un nombre creixent de components del sistema fou hora de fer una llista de buits per omplir. La vam fer servir per cercar desenvolupadors per escriure les peces per fer. Aquesta llista es va conèixer com la llista de tasques del GNU. A més dels components de Unix que faltaven vam fer una llista d'altre programari útil i documentació que, creiem, un sistema operatiu complet havia de tenir.

Actualment (1), gairebé tots els components Unix han deixat d'estar a la llista de tasques del GNU: ja han estat fets, llevat d'alguns que no eren essencials. Però la llista continua plena de projectes que alguns anomenen «aplicacions». Qualsevol programa que sigui atractiu per a un segment d'usuaris prou important és un programa potencial d'afegir al sistema operatiu.

Fins i tot s'inclouen els jocs en la llista de tasques (i han estat des dels inicis). El Unix incloïa jocs; el GNU per tant els havia d'incloure. Però la compatibilitat no és el punt fort del jocs. Per tant, no vam seguir la llista de jocs que Unix tenia. En comptes d'això vam fer una llista de diferents tipus de jocs als que els usuaris els agradaria.

(1) Això es va escriure el 1998. Al 2009 ja no mantenim una llarga llista de tasques. La comunitat desenvolupa programari lliure tan ràpidament que no podem fer-ne un seguiment total. En lloc d'això, tenim una llista de Projectes d'Alta Prioritat, molt més curta, amb els projectes que realment volem que la gent faci realitat.

La GPL per a Biblioteques de GNU

La Biblioteca C GNU fa servir un tipus especial de copyleft anomenat Llicència Pública General per a Biblioteques GNU (1), que dóna dret a enllaçar programari propietari amb la biblioteca. Per què vam fer aquesta excepció?

No és una qüestió de principis: no hi ha cap principi que digui que els productes de programari propietari tinguin el dret a incloure el nostre codi (Per què contribuir a un projecte que té l'objectiu no cooperar amb nosaltres?). L'ús de la LGPL per a la Biblioteca C, o per a qualsevol altra biblioteca, és una qüestió d'estratègia.

La Biblioteca C fa una feina genèrica: cada sistema propietari o compilador ve amb una biblioteca C. Per tant, fer que la nostra Biblioteca C estigui disponible només per al programari lliure no hauria donat al programari lliure cap avantatge (només n'hauria desincentivat l'ús)

Un sistema és fer una excepció: al sistema GNU (i això inclou GNU/Linux), la Biblioteca C GNU és l'única biblioteca C. Per tant els termes de la distribució de la Biblioteca C GNU determinen si és possible compilar un programa propietari per al sistema GNU. No hi ha cap raó ètica per permetre aplicacions propietàries al sistema GNU, però estratègicament sembla que no permetre-ho no faria res més que desincentivar l'ús del sistema GNU en comptes d'incentivar el desenvolupament d'aplicacions lliures. Aquesta és la raó perquè l'ús de la GPL per a Biblioteques sigui una bona estratègia per a la Biblioteca C.

Per altres biblioteques, la decisió estratègica ha de ser considerada sota la base d'analitzar cas per cas. Quan una biblioteca fa una tasca especial que pot ajudar a escriure certs tipus de programes fa que llençar-la sota la GPL, limitant-la només al programari lliure, sigui una manera d'ajudar altres desenvolupadors de programari lliure, donant-los un avantatge respecte el programari propietari.

Considereu el GNU Readline, una biblioteca que fou desenvolupada per a combinar l'edició de linies de comandes per al Bash. Readline fou llençat sota la llicència GPL GNU, no la GPL per a Biblioteques. Això probablement reduirà la difusió de Readline, però no significa cap pèrdua per a nosaltres. Mentrestant, com a mínim una aplicació útil ha estat concebuda específicament programari lliure i pot fer servir Readline, i això és un guany real per a la comunitat.

Els desenvolupadors de programari propietari tenen els avantatges que donen els diners: els desenvolupadors de programari lliure han de prendre avantatge cooperant. Espero que algun dia disposem d'una bona col·lecció de biblioteques sota el paraigües de la GPL sense versió paral·lela propietària, que ofereixin mòduls útils amb l'objectiu de crear nou programari lliure, i afegint majors avantatges per al posterior desenvolupament de més programari lliure.

(1) Aquesta llicència s'anomena ara Llicència Pública General Reduïda de GNU, per no donar la idea que totes les biblioteques hagin d'utilitzar-la. Vegeu Per què no hauríeu d'utilitzar la Llicència Pública General Reduïda per a la vostra pròxima biblioteca per a més informació.

Una tasca improvisada?

Eric Raymond diu que «Cada bona obra de programari s'inicia per un interès o necessitat personal del desenvolupador (scratching an itch).» Potser això passi alguns cops, però la majoria de peces essencials del sistema GNU van ser desenvolupades amb la intenció que formessin part d'un sistema operatiu lliure complet. Van ser el fruit d'una planificació prèvia i no d'un impuls espontani.

Per exemple, vam desenvolupar la biblioteca GNU C perquè un sistema a l'estil de Unix necessitava una biblioteca C, la Bourne-Again Shell (Bash) perquè un sistema a la Unix necessita una shell, i GNU tar perquè un sistema de tipus Unix necessita un programa com el tar. El mateix és cert per els meus propis programes, el compilador GNU C, el GNU Emacs, GDB i el GNU Make.

Alguns programes GNU van ser desenvolupats per solucionar algunes amenaces a la nostra llibertat que es van presentar. Així vam desenvolupar gzip per a substituir el programa Compress, que havia estat perdut per a la comunitat a causa de les patents LZW. Vam trobar gent que desenvolupés LessTif i més recentment GNOME i Harmony, per solucionar els problemes causats per certes biblioteques de caràcter propietari (vegeu més avall). Estem desenvolupant del GNU Privacy Guard (GNUPG) per a substituir un programa popular de xifratge no lliure de manera que els usuaris no hagin de triar entre privacitat i llibertat.

Per descomptat, els desenvolupadors d'aquests programes es van interessar per la feina i moltes funcionalitats van ser afegides per més gent d'acord amb els seus interessos i necessitats. Però això no explica el perquè els programes existeixen.

Successos inesperats

Als inicis del projecte GNU havia pensat que desenvoluparíem el sistema GNU complet i llavors el llençaríem com a conjunt. Aquesta no ha estat la realitat.

Com cada component del sistema GNU fou implementat en un sistema Unix, cada component podia executar-se en sistemes Unix molt abans de què existís un sistema GNU complet. Alguns d'aquests programes es van fer populars i els usuaris van començar a fer extensions i a portar-los a les diferents versions de Unix incompatibles entre elles i a d'altres sistemes.

Aquest procés va fer aquests programes més potents i van aconseguir atraure fons i col·laboradors al projecte GNU. Però probablement també van fer que la finalització d'un sistema operatiu mínim funcional es retardés uns anys: part del temps dels desenvolupadors GNU es gastava mantenint aquests ports i afegint funcionalitats als components existents, disminuint el temps disponible per a escriure components que faltaven.

El GNU Hurd

Pels volts de 1990, el sistema GNU estava gairebé enllestit; l'únic component que faltava era el nucli. Vam decidir d'implementar el nostre nucli com una conjunt de processos del servidor executant-se al capdamunt del Mach. El Mach és un micronucli desenvolupat a la Universitat Carnegie Mellon i posteriorment a la Universitat de Utah. El GNU Hurd és un conjunt de servidors (o «grup de nyus») que s'executen al capdamunt del Mach, i fan les diferents tasques del nucli Unix. L'inici del desenvolupament es va posposar fins que el Mach fos llençat com a programari lliure, tal com ens havien promès.

Una raó per la que vam escollir aquest disseny era que evitàvem el que semblava ser la part més dura del treball: depurar un programa de nucli sense un depurador a nivell de codi. Aquesta part de la feina ja s'havia fet, al Mach, i esperàvem depurar els servidors Hurd com a programes d'usuari, amb GDB. Però això va trigar molt de temps a ser possible, i els servidors multienllaçats que s'enviaven missatges uns amb els altres van resultar ser molt complicats de depurar. Fer que el Hurd treballés fiablement fou una tasca de força anys.

Alix

El nucli GNU no s'havia d'anomenar originalment Hurd. El seu nom original era Alix – un nom idea de la que llavors era la meva dona. Ella, una administradora de sistemes Unix, havia fet notar que algunes versions del sistema Unix prendrien el seu nom. Un cop va fer el següent acudit als seus amics: «Algú hauria de posar el meu nom a un nucli.» Jo no vaig dir res, però vaig decidir donar-li una sorpresa anomenant Alix el nucli en el que treballava.

Però això fou efímer. Michael Bushnell (ara Thomas), el principal desenvolupador del nucli, va estimar-se més el nom Hurd, i va redefinir Alix com la part del nucli que atrapava les crides al sistema i les canalitzava enviant missatges als servidors Hurd.

A més a més, Alix i jo vam trencar i ella es va canviar el seu nom. Independentment de tot això el disseny de Hurd va canviar de tal manera que la biblioteca C enviaria els missatges directament del servidor, cosa que provocà que el component Alix desaparegués.

Però abans que aquestes coses passaren, un amic d'ella va veure el nom d'Alix al codi font de Hurd i li va esmentar. El nom va fer la seva tasca.

Linux i GNU/Linux

El nucli GNU Hurd no està preparat per a un ús quotidià, i no sabem si algun dia ho estarà. El seu disseny basat en la capacitat té problemes que provenen directament de la flexibilitat del disseny, i no està clar si hi ha solucions.

Afortunadament, un altre nucli ja és disponible. L'any 1991, Linus Torvalds desenvolupà un nucli compatible amb Unix i l'anomenà Linux. Al principi era propietari, però el 1992, el va convertir en lliure; la combinació de Linux amb el sistema no-del-tot-complet GNU resultà en un sistema operatiu complet i lliure. (Naturalment, combinar-los fou ja una feina substancial.) És gràcies a Linux que realment podem executar una versió del sistema GNU actualment.

Anomenem a aquesta versió del sistema GNU/Linux per indicar que és una combinació del sistema GNU y del nucli Linux. Si us plau, no caigueu en el costum d'anomenar «Linux» a tot el sistema, ja que implica atribuir a algú altre la nostra feina: mencioneu-nos de manera justa.

Desafiaments futurs

Hem mostrat les nostres capacitats de desenvolupar un ampli espectre de programari lliure. Això no vol dir que siguem invencibles ni que no se'ns pugui aturar. Diversos desafiaments faran el futur del programari lliure quelcom incert. Afrontar-los implica un esforç constant i profund, un esforç que pot durar anys. Caldrà que la gent mostri quant valora la seva llibertat i no que deixa que ningú se la prengui.

Els propers quatre apartats parlen sobre aquestes amenaces.

Especificacions secretes de maquinari

Els fabricants de maquinari tendeixen de manera creixent a guardar en secret les especificacions de maquinari. Això fa que sigui difícil d'escriure drivers lliures per tal que el Linux i XFree86 puguin suportar nous components. Tenim sistemes lliures complets actualment, però pot ser que no els tinguem en un futur si no tenim suport per als ordinadors del demà.

Hi ha dues maneres de tractar aquest problema. Els programadors poden fer enginyeria inversa per intuir com suportar el maquinari. La resta pot escollir el maquinari que tingui suport per programari lliure. A mesura que anem creixent, el secretisme de les especificacions és una estratègia ruïnosa.

L'enginyeria inversa és una feinada: tindrem programadors amb prou determinació per a dur-la a terme? Sí, si hem creat l'opinió de què el programari lliure és qüestió de principis, i de què els drivers no lliures no es poden tolerar. I podem gastar diners extra, o fins i tot temps extra, utilitzant drivers lliures? Sí, si la determinació de donar drets i llibertats és estesa.

(Nota de 2008: aquest problema s'aplica també a la BIOS. Existeix una BIOS lliure, LibreBoot (una distribució de coreboot; el problema és aconseguir especificacions de màquines, de manera que pugui fer-les funcionar sense blobs no lliures).

Biblioteques no lliures

Una biblioteca no lliure que opera en un sistema operatiu lliure actua com a trampa per als desenvolupadors de programari lliure. Les funcionalitats atractives de la biblioteca són l'esquer: si utilitzeu la biblioteca, caieu a la trampa, pel fet de què el vostre programa no pot ser part útil d'un sistema operatiu lliure (estrictament parlant, podeu incloure-hi el vostre programa, però no podrà ser executat amb la biblioteca que falta). Encara pitjor, si un programa que utilitza una biblioteca de caràcter propietari esdevé popular, pot fer que altres programes caiguin a la mateixa trampa.

El primer cas que es va produir fou el conjunt d'eines Motif als anys 80. Tot i que llavors encara no hi havia sistemes operatius lliures, esdevingueren clars els problemes que Motif podia causar-hi més endavant. El Projecte GNU va respondre-hi de dues maneres: demanant als projectes de programari individuals que donessin suport als conjunts d'eines X alhora que el donaven al Motif, i demanant que algú escrivís un substitut de caràcter lliure del Motif. La feina va trigar força anys. Lesstif, desenvolupat per Hungry Programmers, va esdevenir prou potent per suportar la majoria d'aplicacions Motif l'any 1997.

Entre el 1996 i el 1998, una altra biblioteca capsa d'eines de la GUI no lliure, anomenada Qt, fou utilitzada en un conjunt substancial de programari lliure: l'escriptori KDE.

Els sistemes lliures GNU/Linux no podien utilitzar KDE pel fet de què no podien utilitzar la biblioteca. Tot i això, alguns distribuïdors comercials de sistemes GNU/Linux no massa estrictes amb el concepte de programari lliure afegiren el KDE als seus sistemes, oferint un sistema amb funcionalitats més grans, però també amb la llibertat minvada. El grup KDE encoratjava de manera activa cada cop més programadors a emprar Qt, i milions de nous «usuaris de Linux» mai van tenir en ment que hi havia un problema darrera d'això. Aquesta situació semblava complicada.

La comunitat de programari lliure va respondre al problema amb dues alternatives: GNOME i Harmony.

GNOME, acrònim de GNU Network Object Model Environment, és el projecte d'escriptori GNU. Iniciat l'any 1997 per Miguel de Icaza, i desenvolupat amb el suport de Red Hat Sotware, el GNOME fou concebut per a proveir funcionalitats d'escriptori similar però utilitzant exclusivament programari lliure. També conté avantatges tècnics, tals com suportar una varietat de llenguatges de programació a més del C++. Però la seva primera finalitat fou la de donar llibertat i no haver de requerir l'ús de cap tipus de programari no lliure.

Harmony és una biblioteca de substitució, dissenyada per fer possible l'execució del programari KDE sense fer ús de Qt.

El novembre de 1998 els desenvolupadors de Qt van anunciar un canvi a la política de llicències, que un cop dut a terme, faria que Qt fos programari lliure. Tot i que no en tinc la certesa absoluta, em sembla que això fou el resultat de la ferma resposta de la comunitat al problema que Qt va plantejar quan no era lliure. Tot i això, la nova llicència no és ni equitativa ni prou bona, per la qual cosa continua sent desitjable evitar l'ús de Qt.

[Nota posterior: al setembre de 2000, es va publicar Qt sota la GNU GPL, fet que essencialment va resoldre aquest problema.]

Com respondrem a la nova biblioteca no lliure que ens tempti? Entendrà la majoria de membres de la comunitat la necessitat d'estar fora d'aquest tipus de trampes? O molts de nosaltres abandonarem la llibertat per pura conveniència i provocarem així un greu problema? El nostre futur depèn de la filosofia que apliquem.

Patents de programari

La pitjor amenaça que tenim prové de les patents de programari, que posen fora de l'abast del programari lliure durant vint anys algorismes i funcionalitats. Les patents de l'algorisme de compressió LZW es van sol·licitar l'any 1983: per tant no podem distribuir programari lliure per a produir fitxers GIF comprimits. [Aquestes patents van expirar l'any 2009.] L'any 1998, un programa lliure per a produir fitxers de sons comprimits en format MP3 va haver de ser eliminat de la distribució per l'amenaça d'un procés judicial.

Hi ha vies per lluitar amb les patents: podem cercar evidències de què la patent és invàlida, o podem cercar vies alternatives de fer la feina. Però cadascun d'aquests mètodes només a vegades és vàlid : quan els dos fallen, una patent pot forçar que tot el programari lliure no disposi d'una funcionalitat que els usuaris volen. Què fem doncs si això passa?

Aquells qui valorem el programari lliure per qüestió de concepte continuarem amb el programari lliure. Haurem d'acostumar-nos a treballar sense les característiques patentades. Però aquells qui valoren el programari lliure perquè esperen sigui superior en qüestions tècniques trobaran un inconvenient quan una patent no els permeti fer servir una característica. Per tant, tot i que és útil parlar de l'efectivitat pràctica del model de desenvolupament «basar» i de la fiabilitat i potència d'alguns programes lliures, no ens podem aturar aquí. Hem de parlar de drets i llibertats.

Documentació lliure

La pitjor deficiència en els nostres sistemes operatius lliure no és el programari sinó la manca de bons manuals lliures que puguin ser inclosos als nostres sistemes. La documentació és una part essencial del qualsevol paquet de programari. Quan un paquet de programari lliure important no inclou un bon manual lliure, aquest paquet té una mancança greu. Tenim moltes mancances d'aquest tipus actualment.

La documentació lliure, com el programari lliure, és un aspecte de llibertat i no de preu. El criteri per als manuals lliures és més o menys el mateix que per al programari lliure: és el tema de donar a tots els usuaris certs drets. La redistribució (incloent-hi la venda comercial) és permesa, bé de manera electrònica o en format paper, per tal que el programa pugui acompanyar cada còpia del programa.

El permís de modificació és un aspecte crucial. Com a regla general no crec que sigui essencial que tothom doni permís per a modificar qualsevol tipus de llibre o article. Per exemple, no crec que tu o jo estem obligats a donar permís per modificar articles com aquest, que descriu les nostres accions o els nostres punts de vista.

Però hi ha una raó particular perquè la llibertat de modificar sigui crucial per a la documentació del programari lliure. Quan hom exercita el seu legítim dret a modificar el programari, i li afegeix noves funcionalitats o en canvia les existents, hauria de ser conscient de que hauria de canviar el manual també, per tal de donar documentació acurada i utilitzable sobre la versió modificada. Un manual no lliure que no permeti als programadors de ser curosos i els impedeixi acabar la seva tasca no és bo pels interessos de la comunitat.

Alguns tipus de límits en com s'han de fer les modificacions no són cap problema. Per exemple, el requeriment a preservar la nota original de copyright de l'autor original, els termes de distribució o la llista d'autors són limitacions correctes. Tampoc és cap problema obligar a les versions modificades d'incloure una nota indicant que són versions modificades, fins i tot si hi ha capítols sencers que no han estat eliminats o canviats, sempre i quan aquests capítols no tractin de temes tècnics. Aquests tipus de restriccions no són cap problema perquè no aturen al programador curós d'adaptar el manual per tal d'encabir-hi el programa modificat. En altres paraules, no bloquegen a la comunitat de programari lliure de fer un ús complet del manual.

Malgrat tot hauria de ser possible poder modificar tots els continguts tècnics del manual, i distribuir posteriorment el resultant en tots els medis habituals, mitjançant els canals habituals; d'altra manera, restriccions de distribució afectarien la comunitat, farien que el manual no fos lliure i necessitaríem un altre manual.

Tindran els desenvolupadors de programari lliure la conscienciació i determinació per a produir un ampli espectre de manuals lliures? Un cop més el nostre futur depèn de la filosofia que apliquem.

Hem de parlar de llibertat

Les estimacions actuals parlen de prop de deu milions d'usuaris de sistemes GNU/Linux del tipus Debian o Red Hat. El programari lliure ha ofert avantatges pràctiques que han fet que els usuaris migrin a aquests sistemes per raons purament pràctiques.

Les conseqüències positives d'aquest fet són evidents: major interès en desenvolupar programari lliure, una major base de consumidors-usuaris d'empreses de programari lliure, i una major facilitat per encoratjar a les empreses a desenvolupar programari lliure en comptes de programari de caràcter propietari.

Però l'interès en el programari està creixent a un ritme més ràpid que la percepció de la filosofia subjacent, i això pot dur a més d'un maldecap. La nostra facilitat per fer front als canvis i amenaces descrites més amunt depèn de amb quina fermesa defensem la nostra llibertat. Per assegurar-nos de què la nostra comunitat vol defendre-la, cal que difonguem la idea als nous usuaris per a que s'uneixin a la comunitat.

Però no ho estem aconseguint. Els esforços per a atraure nous usuaris a la nostra comunitat superen de llarg els esforços per ensenyar-los el contingut cívic que hi ha darrera la nostra comunicat. Hem de fer ambdues coses i cal que ambdues es desenvolupin harmoniosament.

«Codi obert»

Conscienciar als nous usuaris sobre la llibertat ha esdevingut més difícil a partir de 1998 quan una part de la comunitat va decidir deixar de fer servir el terme «programari lliure» i utilitzar el terme «codi obert».

Alguns dels qui afavoriren aquesta expressió volien evitar la confusió del mot «lliure» amb «gratuït», un objectiu lícit. Alguns però volien amb això desmarcar-se de l'esperit que havia creat el moviment del programari lliure i el projecte GNU, i volien dirigir-se a usuaris de tipus comercial, molts dels quals tenien una ideologia on els seus beneficis monetaris estaven per sobre la llibertat, el civisme i qualsevol altre principi. Per tant, la retòrica del «codi obert» gira entorn el potencial de crear programari de gran qualitat i prestacions, però sense entrar en idees com la llibertat, el civisme i altres principis bàsics.

Les revistes sobre «Linux» en són un bon exemple. Estan plenes d'anuncis d'empreses fabricants de programari de caràcter propietari que treballa amb GNU/Linux. Quan el proper Motif o Qt surti al mercat, advertiran aquestes revistes als programadors dels perills que això suposa o els faran tractes especials?

Hi ha moltes maneres com les empreses poden contribuir a la comunitat. Però guanyant-se el suport parlant cada cop menys de llibertat i principis pot ser un desastre. Fa que el desequilibri entre utilitarisme i civisme cada cop es faci més gran.

«Programari lliure» i «codi obert» descriuen més o menys la mateixa categoria de programari, però diuen coses diferents sobre el concepte de programari i sobre els valors en general. El Projecte GNU continua utilitzant el terme «programari lliure», per a expressar la idea de que la llibertat és tant o més important que la tecnologia.

Intenta-ho!

La filosofia de Yoda («No hi ha ‘intents’ que valguin») sona bé, però no la comparteixo. He fet la majoria de la meva feina mentre em preguntava si podria fer-la i no estant segur que faria prou per aconseguir els objectius que m'havia marcat. Però ho vaig intentar perquè no hi ha ningú a més de jo mateix entre els enemics i els meus objectius. I sorprenentment alguns cops he tingut èxit.

Alguns cops he fallat i alguns dels meus objectius han esdevingut inassolibles. Però llavors he trobat un altre objectiu amenaçat i m'he posat en una nova batalla. Al llarg del temps he après a cercar desafiaments i posar-me entre ells i els meus ideals, cercant altres hackers a què vinguessin i m'ajudessin.

Actualment no sóc pas l'únic. És una veritable joia quan veig el regiment de hackers disposats a fer-me costat i llavors me n'adono que els ideals poden sobreviure… per ara. Però els perills són més grans cada any que passa i ara Microsoft ha fixat els seus canons cap a la nostra comunitat. No podem estar segur de què el futur de la llibertat estigui assegurat. No us ho creieu! Si voleu mantenir la vostra llibertat heu d'estar preparats per a defendre-la.