GNU operatsionnata sistema i dvizhenieto za otvoren kod (Free
Software Movement) [CHast 1]
Prevod: Andryu Ivanov
Adres na originala:
http://www.oreilly.com/catalog/opensources/book/stallman.html
Richard Stolmun
Purvata obshtnost razmeniashta softuer
Kogato zapochnah rabota v laboratoriiata za izkustven intelekt (AI) v MIT
(Masachuzetskiia Tehnologichen Institut) prez 1971, az stanah chast ot edna
obshtnost, koiato si razmeniashe softuer i sushtestvuvashe ot godini. Razmenianeto
na softuera ne beshe ogranicheno samo do nashata konkretna obshtnost; tazi
praktika e stara, kolkoto i kompyutrite, kakto i razmenianeto na retsepti e
staro, kolkoto i gotveneto. No pri nas tazi praktika beshe osobeno silno
izrazena.
AI laboratoriiata izpolzvashe operatsionna sistema s vremedelenie
(time-sharing OS) narechena ITS (the Incompatible Timesharing System), koiato
hakerite
ot laboratoriiata ni biaha zamislili i napisali na asembler za Digital
PDP-10, edin ot golemite kompyutri prez tazi era. Kato chlen na tazi obshtnost
- haker ot ekipa - moiata rabota se sustoeshe v podobriavaneto na tazi sistema.
Nie ne narichahme softuera "svoboden", zashtoto tozi termin
vse oshte ne sushtestvuvashe, no toi si beshe tochno takuv. Kogato hora
ot drug universitet ili druga obshtnost iskaha da prenesat (portirat) nasha
programa, nie s udovolstvie im go pozvoliavahme. Ako sluchaino niakoi videshe
drug da izpolzva nepoznata ili interesna programa, vinagi mozheshe da pomoli
da razgleda izhodniia kod, taka che da mozhe da go izpolzva, promenia ili da
izpolzva chasti ot nego za napravata na nova programa.
Razpadaneto na Obshtnostta
Situatsiiata se promeni drastichno prez nachaloto na 80-te, kogato
Digital spria PDP-10 seriite. Arhitekturata na PDP-10, elegantna i moshtna prez
60-te, ne mozheshe da se razshiri do golemite adresni prostranstva, koito stanaha
vuzmozhni prez 80-te. Tova oznachavashe, che pochti vsichki programi, sustaviashti ITS,
izlizat ot upotreba.
Po tova vreme obshtnostta na hakerite v AI laboratoriiata
se beshe razpadnala ne mnogo otdavna. Prez 1981, kompaniiata Symbolics beshe
naela pochti vsichki hakeri ot AI laboratoriiata, a obezlyudenata obshtnost beshe
nesposobna da se grizhi za sebe si. (Knigata "Hakeri", ot Stiiv Levi, opisva
tezi subitiia, i dava iasna predstava za tazi obshtnost v nachaloto). Kogato
AI laboratoriiata se sdobi s nov PDP-10 prez 1982, administratorite reshiha
da izpolzvat sistemata s vremedelenie na Digital, koiato ne beshe svoboden softuer,
vmesto ITS.
Modernite kompyutri prez tazi era, kato VAX ili 68020,
imaha svoi operatsionni sistemi, no nito edna ne beshe svoboden softuer: triabvashe
da se podpisva dogovor dori samo za izpulnimo kopie.
Tova oznachavashe, che purvata stupka kum izpolzvaneto na
kompyutur beshe da obeshtaesh da ne pomagash na suseda. Kooperativnite obshtnosti
biaha zabraneni. Praviloto, suzdadeno ot sobstvenitsite na softuera, beshe:
"Ako spodelite neshto sus suseda, tova znachi, che ste pirat. Ako iskate niakakvi
promeni, pomolete ni da gi napravim."
Ideiata, che sotsialnata sistema na sobstvenicheskiia softuer
- sistemata, koiato vi zaiaviava, che ne vi e razresheno da spodeliate ili promeniate
softuera -- e antisotsialna. CHe e neetichna, che prosto e pogreshna, mozhe
da e iznenada za niakoi chitateli. No kakvo drugo mozhem da kazhem za sistema,
osnovana na razdelenie i poddurzhane na potrebitelite v bezpomoshtnost? CHitatelite,
koito smiatat tazi ideia za iznenadvashta, mozhe bi prosto sa vuzprieli tazi
sotsialna sistema kato dadenost ili sa ia sudili vuz osnova na usloviiata,
predlozheni ot sobstvenicheskiia softuereren biznes. Izdatelite na softuer rabotiha
dulgo i uporito, za da ubediat horata, che ima samo edin nachin da se pogledne
na vuprosa.
Kogato izdatelite na softuer govoriat za "otstoiavane" na
tehnite "prava" ili za "spirane na piratstvoto", tova, koeto te
kazvat, v deistvitelnost e vtorostepenno. Istinskoto poslanie
na tezi izkazvaniia e v neizkazanite dopuskaniia, koito te priemat za dadenost;
a ot obshtestvenostta se ochakva da gi prieme bez kritika. I taka neka gi
razgledame.
Edno dopuskane e, che softuernite kompanii imat neosporimo estestveno
pravo da pritezhavat softuer, i taka da imat vlast nad vsichkite mu potrebiteli.
(Ako tova beshe estestveno pravo, to bez znachenie kolko vreda prichiniava na
obshtestvoto, nie ne bihme mogli da protestirame.) Interesno e, che amerikanskata
kostitutsiia i pravni traditsii othvurliat podobno vizhdane; avtorskoto pravo
ne e estestveno pravo, a izkustveno suzdadeno monopolno pravo, nalozheno ot
durzhavata, koeto ogranichava estestvenoto pravo na potrebitelite da kopirat.
Drugo neizkazano dopuskane e, che edinstvenoto vazhno neshto
otnosno softuera e kakva rabota mozhete da svurshite s nego - che nie, kompyuturnite
potrebiteli, ne biva da se trevozhim kakvo obshtestvo ni e razresheno da imame.
Treto predpolozhenie, e che ne bihme imali izpolzvaem softuer
(ili nikoga ne bihme imali programi za tazi ili onazi konretna zadacha),
ako ne predlozhim na dadena kompaniia vlast nad potrebitelite na programata
i. Tova predpolozhenie mozhe da e izglezhdalo pravdopodobno predi dvizhenieto
za svoboden softuer da demonstrira, che mozhem da suzdadem izobilie ot polezen
softuer bez da go okovavame vuv verigi.
Ako otkazhem da priemem tezi predpolozheniia i sudim vuz osnova
na zdraviia razum i morala, koito postavia potrebitelite na purvo miasto, dostigame do
dosta po-razlichni zaklyucheniia. Potrebitelte na kompyutri triabva da sa svobodni
da modifitsirat programite, za da zadovoliat svoite nuzhdi, da sa svobodni da
spodeliat softuer, zashtoto da pomagash na drugi hora e v osnovata na obshtestvoto.
Tuk niama miasto za pulno opisanie na prichinite zad tova
zaklyuchenie, zatova vi nasochvam kum tazi web stranitsa:
http://www.gnu.org/philosophy/why-free.html.
Napulno moralen izbor
Sled kato obshtnostta se razpadna, da se produlzhava po
staromu beshe nevuzmozhno. Vmesto tova, az se izpravih pred moralen izbor.
Po-lesniiat izbor beshe da se prisuedinia kum sobstvenicheskiia
softueren sviat, podpisvaiki dogovori i obeshtavaiki da ne pomagam na blizhniia-haker.
Nai-veroiatno i az shtiah da razrabotvam softuer, koito da bude razprostraniavan
s podobni dogovori, okazvaiki natisk po tozi nachin nad drugi hora da izostaviat
tehnite priiateli.
Mozheh da napravia pari po tozi nachin i veroiatno da se zabavliavam
pisheiki kod. No znaeh, che v kraia na karierata si shtiah da pogledna nazad
kum izminalite godini, prez koito sum izgrazhdal steni, koito da razdeliat horata,
i da razbera, che sum prekaral zhivota si, za da napravia sveta po-losho miasto.
Veche biah izpital kakvo e da si ot stranata na poluchavashtiia
v edno ogranichavashto sporazumenie, kogato niakoi otkaza na men i na AI laboratoriiata
v MIT sors-koda na kontrolnata programa za nashiia printer. (Lipsata na
opredeleni vuzmozhnosti v tazi programa prevurna izpolzvaneto na printera
v neshto izklyuchitelno razocharovashto.) Taka che ne mozhah da si kazha, che ogranichitelnite
dogovori sa neshto nevinno. Biah mnogo iadosan, kogato tozi niakoi ni otkaza; az
ne mozheh da se oburna i da napravia sushtoto s vsichki ostanali.
Drug izbor, chesten, no nepriiaten, beshe da napusna kompyuturnoto
poprishte. Po tozi nachin moite umeniia niamashe da budat izpolzvani pogreshno,
no shtiaha da budat propiliani. niamashe da sum vinoven za razdelianeto i ogranichavaneto
na potrebitelite, no tova shteshe da se sluchi vupreki tova.
I tui, az potursih nachin edin programist da napravi neshto
za dobro. Zapitah se dali ima programa ili programi, koito bih mogul da
napisha, taka che da napravia otnovo vuzmozhno sushtestvuvaneto na Obshtnostta.
Otgovorut beshe iasen: tova, ot koeto imashe nai-napred nuzhda,
beshe operatsionna sistma. Tova e kritichniiat softuer za zapochvane rabota
s kompyutur. S operatsionna sistema mozhete da napravite mnogo neshta, bez neia
izobshto ne mozhete da rabotite s kompyutura. S edna svobodna operatsionna sistema
bihme mogli otnovo da imame obshtnost ot podpomagashti se hakeri i da pokanim
vseki da se prisuedini. I vseki bi mogul da izpolzva kompyutur bez da zagovornichi
i da izostavia svoite priiateli.
Kato razrabotchik na operatsionni sistemi, az imah podhodiashtite
umeniia za tazi rabota. I vupreki, che ne mozheh da priema uspeha za garantiran,
osuznah, che sum izbran za tazi zadacha. Izbrah da napravia sistemata suvmestima
s Unix, taka che da bude prenosima i Unix potrebitelite da mogat lesno da
preminat kum neia. Imeto GNU beshe izbrano po silata na hakerska traditsiia,
kato rekursiven akronim: "GNU's Not Unix."
Operatsionna sistema ne oznachava samo iadro, pochti dostatuchno
za da izpulniava drugi programi. Prez 70-te, vsiaka operatsionna sistema, dostoina
za imeto si, vklyuchvashe komandni protsesori, asembleri, kompilatori, interpretatori,
debugeri, tekstovi redaktori, programi za elektronna poshta i oshte mnogo drugi.
ITS gi imashe, Multics sushto gi imashe, VMS sushto, kakto i Unix. GNU operatsionnata
sistema sushto shteshe da gi vklyuchva. Po-kusno chuh tezi dumi, pripisvani na
Hailul:
Ako ne sum sebe si, koi shte buda az?
Ako sum sam za sebe si, kakvo sum az?
Ako ne sega, koga?
Reshenieto da zapochna proekta GNU beshe bazirano na
sushtia duh.
"svoboden" - kato "svoboda"
Terminut "svoboden softuer" (free software) poniakoga
ne se razbira pravilno - tsenata tuk niama nishto obshto. Stava vupros za svoboda.
Zatova, eto definitsiia za svoboden softuer. Za vas, konkretniia potrebitel,
edna programa e svoboden softuer, ako:
- Imate svobodata da izpolzvate
programata za vsiakakvi tseli.
- Imate svobodata da promeniate
programata, za da otgovori na vashite nuzhdi. (Za da mozhe tova da se prilaga
efektivno na praktika, triabva da imate dostup do sors koda, tui kato da
se praviat promeni v programa bez sors kod e neveroiatno trudno.)
- Ste svobodni da razprostraniavate
kopiia, ili bezplatno, ili sreshtu zaplashtane.
- Ste svobodni da razprostraniavate
modifitsirani versii na programata, taka che obshtnostta da ima polza ot vashite
podobreniia.
Sled kato "svoboden" se otnasia do svoboda, a ne tsena,
niama protivorechie mezhdu prodazhbata na softuer i svobodniiat takuv. Vsushtnost,
svobodata da prodavash kopiia na programite e izklyuchitelno vazhna: kolektsiite
svoboden softuer, prodavani na CD-ta sa vazhni za obshtnostta, a prodazhbata
im e vazhen nachin za nabirane na sredstva za razrabotvane na svoboden softuer.
Sledovatelno, programa, koiato ne mozhe da bude vklyuchena v podobna kolektsiia,
ne e svoboden softuer.
Poradi dvusmislieto na dumata "svoboden", dulgo biaha
turseni alternativi, no nikoi ne nameri podhodiashta alternativa. Angliiskiiat
ezik ima poveche nyuansi ot vseki drug, no mu lipsva edna prosta, nedvusmislena
duma, koiato da znachi "svoboden", kakto v svoboda. Alternativi kato "osvoboden",
"svoboda" i "otvoren" imat ili pogreshno znachenie, ili drugo neudobstvo.
GNU softuer i GNU OS
Razrabotvaneto na tsiala OS e dosta slozhen proekt.
Za da go uprostia, reshih da adaptiram i izpolzvam sushtestvuvashti svobodni
programi, kudeto e vuzmozhno. Naprimer: oshte v samoto nachalo reshih da izpolzvam
TeX kato osnovna programa za formatirane na tekst; niakolko godini po-kusno,
reshih da izpolzvam sistemata X Window, vmesto da pisha nova prozorechna sistema
za GNU.
Poradi tova reshenie, GNU OS ne e prosto kolektsiia
ot GNU softuer. GNU OS vklyuchva programi, koito ne sa GNU, programi, koito
sa bili razraboteni ot drugi hora i tehni sobstveni proekti za lichni tseli,
no koito mozhem da izpolzvame, zashtoto sa svoboden softuer.
Nachalo na Proekta
Prez ianuari 1984 napusnah MIT i zapochnah da pisha
GNU softuer. Napuskaneto na MIT beshe nalozhitelno, za da ne mozhe MIT da
poprechi na razprostranenieto na GNU kato svoboden softuer. Ako biah ostanal
v ekipa, MIT mozheshe da prediavi pretentsii za sobstvenost na razrabotkata
i da nalozhi svoi usloviia za razprostranenie ili dori da ia prevurne v sobstvenicheski
softueren paket. Niamah namerenie da napravia tolkova mnogo, samo za da vidia,
kak stava bezpolezna za postiganeto na purvonachalnata tsel: suzdavaneto na
nova obshtnost, spodeliashta softuera si.
Vupreki tova, prof. Uinstun, po tova vreme rukovoditel
na AI laboratoriiata, lyubezno mi predlozhi da izpolzvam tehnikata na laboratoriiata.
Purvite stupki
Malko predi da zapochna proekta GNU, chuh za Free University
Compiler Kit (kompilatoren paket na svobodniia universitet), poznat kato VUCK.
(Holandskata duma za "svoboden" se pishe s V.) Tova beshe kompilator s mnogoezikova
poddruzhka, v tova chislo C i Pascal, a sushto taka i poddurzhasht mnozhestvo razlichni
mashini. Pisah do avtora mu i popitah dali GNU mozhe da go izpolzva.
Toi mi otgovori prismehulno, zaiaviavaiki, che universitetut
bil svoboden, no kompilatora - ne. Zatova reshih, che purvata programa ot
proekta GNU shte bude mnogoezikov, mnogoplatformen kompilator.
Nadiavaiki se da izbegna neobhodimostta da napisha
sam tseliia kompilator, az se sdobih sus sorsa na kompilatora Pastel, koito
beshe multiplatformen i beshe razraboten vuv Lawrence Livermore Lab. Toi
poddurzhashe, i samiiat beshe napisan, na razshirena versiia na Pascal, napravena
da bude ezik za sistemno programirane. Dobavih frontend na C i zapochnah
da go portiram za kompyutur Motorola 68000. No biah prinuden da se otkazha,
kogato otkrih, che kompilatorut se nuzhdaeshe ot dosta megabaiti stekove, a nalichnata
68000 Unix sistema dopuskashe samo 64K.
Togava otkrih, che kompilatorut Pastel be taka ustroen,
che prevrushtashe tseliiat fail podavan na vhoda mu v sintaktichno durvo (syntax
tree), prevrushtashe tsialoto sintaktichno durvo v poreditsa ot "instruktsii"
i sled tova generirashe tseliiat izhoden fail, bez nikakvi optimizatsii. Na tozi
etap zaklyuchih, che shte triabva da napisha nov kompilator ot nishtoto. Tozi kompilator
sega e izvesten kato GCC; nishto ot kompilatora Pastel ne beshe izpolzvano
v nego; uspiah da adaptiram frontenda na C, koito biah napisal. No tova stana
niakolko godini po-kusno; purvo, se trudih vurhu GNU Emacs.
GNU Emacs
Zapochnah rabota vurhu GNU Emacs prez septemvri 1984,
a v nachaloto na 1985 toi veche beshe pochti izpolzvaem. Tova mi dade vuzmozhnost
da izpolzvam Unix sistemi za redaktirane; tui kato niamah zhelanie da izuchavam
vi ili ed, do tozi moment, az izpolzvah za redaktirane drugi mashini (ne-Unix).
Na tozi etap, horata zapochnaha da iskat da izpolzvat
GNU Emacs, koeto povdigna vuprosut kak da se razprostraniava. Razbira se,
publikuvah go v anonimniia ftp survur na kompyutura v MIT, koito izpolzvah.
(Taka tozi kompyutur, prep.ai.mit.edu, stana nai-vazhniiat ftp sait, razprostraniavasht
GNU; kogato sled niakolko godini toi izleze ot upotreba, nie prehvurlihme
imeto mu na noviia ni ftp survur.) No, po tova vreme, mnogo ot zainteresovanite
ne biaha vklyucheni v Internet i ne mozheha da poluchat kopie po ftp. I taka,
vuprosut beshe - kakvo shte im kazha az?
Mozheh da kazha: "Namerete niakoi priiatel, koito da
ima vruzka s mrezhata, koito da vi napravi kopie." Ili mozheh da napravia tova,
koeto napravih i s originalniia PDP-10 Emacs - da kazha: "Izpratete mi lenta
i SASE, a az shte vi gi vurna sus zapisan Emacs." No az niamah rabota i turseh
nachini da izkaram pari ot svobodniia softuer. Zatova obiavih, che shte izpratia
programata na vseki, koito ia poiska, sreshtu $150. Po tozi nachin zapochnah
distributorski biznes sus svoboden softuer, predtecha na dneshnite kompanii,
koito razprostraniavat tseli Linux bazirani GNU sistemi.
Programata svobodna li e za vseki potrebitel?
Ako edna programa e svoboden softuer, kogato trugva
ot rutsete na avtora si, tova ne znachi nepremenno, che shte bude svoboden softuer
za vseki, do kogoto dostiga. Naprimer, softuerut ot tip "publichen domein"
(public domain software - softuer nezashtiten s avtorski prava) e svoboden
softuer; no vseki mozhe da napravi modifitsirana sobstvenicheska versiia ot nego.
Podobno, mnogo bezplatni programi sa zashtiteni s avtorski prava, no se razprostraniavat
pod elementarni litsenzi, koito pozvoliavat suzdavaneto na sobstvenicheski
versii.
Natrapchiv primer za tozi problem e X Window System.
Razrabotena v MIT, i pusnata kato svoboden softuer s nepretentsiozen permissive
litsenz, sistemata skoro beshe "osinovena" ot razlichni kompyuturni kompanii.
Te dobaviha X kum tehnite sobstvenicheski Unix sistemi, samo pod formata
na dvoichen kod, i pod sushtite ogranichitelni sporazumeniia. Tezi kopiia na X
ne biaha svoboden softuer poveche ot konkretniia Unix.
Razrabotchitsite na X Window sistemata ne vzeha pod
vnimanie tozi problem - te ochakvaha i predvizhdaha tova da se sluchi. Tiahnata
tsel ne beshe svobodata, a samo "uspehut", razbiran v smisul "da imash mnogo
potrebiteli". Tiah ne gi beshe grizha dali tezi potrebiteli shte imat svoboda,
vazhnoto beshe da sa mnogobroini.
Tova dovede do paradoksalna situatsiia, v koiato dva
razlichni metoda za izmervane na svobodata davaha dva razlichni otgovora na
vuprosa "Tazi programa svobodnen softuer li e?" Ako sudite na baza na svobodata
na usloviiata za razprostranenie, davana ot MIT, bihte kazali, che X e svoboden
softuer. No ako izmerehte svobodata na obiknoveniia potrebitel na X,
shtiahte da priznaete, che ne stava vupros za svoboden softuer. Povecheto potrebiteli
na X izpolzvaha versiite, idvashti s ne-svobodnite Unix sistemi, a ne svobodnata
versiia.
Copyleft i GNU GPL
TSelta na GNU beshe da dade na potrebitelite svoboda,
a ne samo da bude populiaren. Zatova imashe nuzhda ot usloviia za razprostranenie,
koito da predotvratiavat prevrushtaneto na GNU softuera v sobstvenicheski. Metoda,
koito izpolzvame, se naricha "copyleft."
Copyleft metoda izpolzva zakona za avtorskoto pravo,
no leko go izvurta, taka che da sluzhi za tochno protivopolozhni tseli na tezi,
za koito obichaino se izpolzva: vmesto sredstvo za "privatizirane" na softuera,
toi stava sredstvo, obezpechavashto svobodata na softuera.
Generalnata ideia na copyleft metoda e, che davame
pravo na vseki da izpolzva nasha programa, da ia kopira, promenia i razprostraniava
modifitsirani versii, no ne i pravo da dobavia svoi ogranichitelni usloviia.
Po tozi nachin nai-vazhnite i osnovni svobodi, koito definirat softuera kato
svoboden, sa garantirani na vseki, koito pritezhava kopie na programata; tezi
prava stavat neotchuzhdaemi.
Za efektivnost na copyleft-a, modifitsiranite versii
na nashata programa triabva sushto da sa svobodni. Tova garantira, che razrabotkata,
bazirana na nashata, shte bude na razpolozhenie na obshtnostta ako bude publikuvana.
Kogato programisti, raboteshti kato programisti, reshat dobrovolno da podobriat
GNU softuer, copyleft-a vuzpira tehnite rabotodateli da zaiaviat: "Ne mozhete
da publikuvate tezi promeni, zashtoto shte gi izpolzvame za suzdavaneto na nasha
sobstvenicheska versiia na tazi programa."
Iziskvaneto promenite da budat dostupni za obshtnostta
e mnogo vazhno, ako iskame da osigurim svoboda za vseki potrebitel na programata.
Kompaniite, koito uzurpiraha X Window sistemata, obiknoveno praveha niakoi
promeni, za da mogat da ia prenesat na svoite sistemi i harduer. Tezi promeni
biaha malki, sravneni s goleminata na X, no ne biaha neznachitelni. Ako promenianeto
beshe izvinenie za ogranichavane na svobodata na potrebitelite, bi bilo lesno
za vseki da izvleche polza ot tova izvinenie.
Shoden e vuprosut za smesvaneto na svobodni programi
s ne-svoboden kod. Podobna kombinatsiia neizbezhno bi bila ne-svobodna; koito
i svobodi da lipsvat za ogranichenata, ne-svobodna chast, biha lipsvali i na
tseliiat paket. Da budat dopusnati podobni kombinatsii bi otvorilo dupka, dostatuchno
goliama, za da mozhe i korab da potune v neia. Eto zashto izklyuchitelno vazhno iziskvane
za copyleft metoda e tazi proluka da bude zapushena -- vsiaka programa dobavena
kum ili kombinirana s copyleft programa, triabva da e takava, che poluchenata
versiia da e svobodna i suvmestima s copyleft.
Spetsifichnata realizatsiia na ideiata copyleft, koiato
izpolzvame za povecheto GNU softuer, se naricha GNU General Public License (Obsht
Obshtestven Litsenz GNU), ili nakratko GNU GPL. Razpolagame i s drugi raznovidnosti
na copyleft, koito se izpolzvat pri spetsifichni obstoiatelstva. Rukovodstvata
na GNU sushto sa zashtiteni s copyleft, no izpolzvat mnogo po-malka raznovidnost
na copyleft, ponezhe ne se nuzhdaiat ot tsialata slozhnost na GNU GPL.