p∙vodn∞ zve°ejn∞no v knize ,,Open Sources''
[ Anglicky ]
Kdy╛ jsem v roce 1971 zaΦal pracovat v MIT Artificial Intelligence Lab, stal jsem se souΦßstφ komunity sdφlejφcφ software, kterß existovala ji╛ mnoho let. Sdφlenφ software nebylo v²sadou pouze na╣φ komunity; je starΘ jako poΦφtaΦe samy, stejn∞ jako sdφlenφ recept∙ je starΘ jako va°enφ. D∞lali jsme v╣ak vφce ne╛ toto.
AI Lab pou╛φvala operaΦnφ systΘm pro sdφlenφ Φasu nazvan² ITS (the Incompatible Timesharing System - Nekompatibilnφ systΘm pro sdφlenφ Φasu) navr╛en² hackery pracujφcφmi v laborato°i (1) a psan² v assembleru pro Digital PDP-10, jeden z velk²ch poΦφtaΦ∙ tehdej╣φ doby. Jako Φlen komunity, systΘmov² hacker laborato°e um∞lΘ inteligence, jsem m∞l za ·kol vylep╣ovat tento systΘm.
Nenaz²vali jsme nß╣ software ,,svobodn²m software'', nebo╗ tento termφn je╣t∞ neexistoval, ale nß╣ software jφm byl. Kdykoliv lidΘ z jinΘ vysokΘ ╣koly nebo firmy cht∞li portovat a pou╛φvat program, rßdi jsme jim to umo╛nili. Pokud jste vid∞li n∞koho pou╛φvat neznßm² a zajφmav² program, mohli jste ho v╛dy po╛ßdat, aby vßm ukßzal zdrojovΘ k≤dy, abyste jej mohli studovat, m∞nit anebo demontovat n∞kterΘ z jeho Φßstφ a vytvo°it nov² program.
(1) U╛φvßnφ v²razu ,,hacker" jako pojmenovßnφ n∞koho, kdo se vloupßvß do bezpeΦnostnφch systΘm∙, je matenφ zp∙sobenΘ dne╣nφmi mΘdii. My hacke°i toto pojmenovßnφ odmφtßme uznat a toto slovo stßle pou╛φvßme k oznaΦenφ n∞koho, kdo ,,miluje programovßnφ a dost o n∞m vφ."
Situace se dramaticky zm∞nila na poΦßtku osmdesßt²ch let, kdy╛ Digital p°estal pokraΦovat ve v²rob∞ sΘriφ PDP-10. Jejich stavba, elegantnφ a v²konnß v ╣edesßt²ch letech, nemohla, p°irozen∞, pokr²t v∞t╣φ adresovΘ prostory, kterΘ zaΦaly nastupovat v osmdesßt²ch letech. To znamenalo, ╛e tΘm∞° v╣echny programy pro ITS byly zastaralΘ.
Komunita hacker∙ AI lab se nedlouho p°edtφm rozpadla. Odd∞lujφcφ se firma Symbolics si v roce 1981 najala tΘm∞° v╣echny hackery z AI lab a oslabenß komunita byla neschopnß se nadßle sama udr╛et. (Kniha Hacke°i od Steve Levyho popisuje tyto udßlosti, stejn∞ jako vykresluje jasn² obrßzek komunity za jejφho rozkv∞tu.) Kdy╛ v roce 1982 nakoupila laborato° AI novß PDP-10, jejφ administrßto°i se rozhodli pou╛φvat nesvobodn² systΘm pro sdφlenφ Φasu od Digitalu namφsto na╣eho ITS.
Modernφ poΦφtaΦe tΘ doby jako nap°φklad VAX nebo 68020, m∞ly svΘ vlastnφ operaΦnφ systΘmy, ale ╛ßdn² z nich nebyl svobodn²m software: museli jste podepsat tzv. non-disclosure agreement dokonce i proto, abyste v∙bec zφskali funkΦnφ program.
Znamenalo to tedy, ╛e prvnφ v∞c, kterou jste museli p°i pou╛φvßnφ poΦφtaΦe ud∞lat, byl slib, ╛e nebudeme pomßhat sv²m koleg∙m. Spoluprßce komunity byla zakßzßna. Pravidlo vytvo°enΘ vlastnφky proprietßrnφho software zn∞lo: ,,Pokud sdφlφte software se sv²m kolegou, jste pirßt. Pokud chcete provßd∞t v na╣em software jakΘkoliv zm∞ny, musφte nßs nejd°φve poprosit.''
My╣lenka, ╛e proprietßrnφ softwarov² systΘm -- systΘm, v n∞m╛ nesmφte sdφlet nebo m∞nit software -- ╣kodφ spoleΦnosti, je neetick², zkrßtka a jednodu╣e ╣patn², by mohla b²t pro n∞kterΘ Φtenß°e p°ekvapenφm. Co jinΘho se v╣ak dß °φct o systΘmu zalo╛enΘm na rozd∞lovßnφ ve°ejnosti, na systΘmu nechßvajφcφm svΘ u╛ivatele bez pomoci? LidΘ, jim╛ tato my╣lenka p°ipadß p°ekvapujφcφ, mohli poklßdat proprietßrnφ socißlnφ systΘm za dan², nebo jej posuzovat podle slov lidφ z oblasti obchodu s proprietßrnφm software. VydavatelΘ software dlouho a t∞╛ce pracovali na tom, aby p°esv∞dΦili ve°ejnost, ╛e existuje pouze jedin² zp∙sob, jak pohlφ╛et na tento problΘm.
Kdy╛ softwarovφ vydavetelΘ hovo°φ o ,,posilovßnφ'' sv²ch ,,prßv'' nebo ,,zastavenφ pirßtstvφ'', to, co vlastn∞ *°φkajφ* je druhotnΘ. Opravdovß podstata t∞chto tvrzenφ je v nevysloven²ch domn∞nkßch, je╛ berou jako samoz°ejmΘ; p°edpoklßdß se, ╛e je ve°ejnost bez kritiky p°ijme. Poj∩me se tedy na n∞ podφvat.
Prvnφm p°edpokladem je, ╛e softwarovΘ firmy majφ nespornΘ p°irozenΘ prßvo vlastnit software a mφt tak moc nad v╣emi jeho u╛ivateli. (Pokud by se jednalo o p°irozenΘ prßvo, potom bychom, bez ohledu na to, do jakΘ mφry po╣kozuje ve°ejnost, nemohli nic namφtat.) Je zajφmavΘ, ╛e americkß ·stava a prßvnφ zvyklosti tento pohled na v∞c odmφtajφ; copyright nenφ p°irozenΘ prßvo, ale vlßdou um∞le vytvo°en² monopol, je╛ omezuje p°irozenΘ prßvo u╛ivatel∙ na vytvß°enφ kopiφ.
Dal╣φm neprohlß╣en²m p°edpokladem je, ╛e jedinou d∙le╛itou v∞cφ t²kajφcφ se software je, co s nφm m∙╛eme d∞lat -- a ╛e my, poΦφtaΦovφ u╛ivatelΘ, bychom se nem∞li starat o to, v jakΘ spoleΦnosti je nßm dovoleno ╛φt.
T°etφ domn∞nkou je, ╛e bychom nem∞li pou╛iteln² software (nebo programy na konkrΘtnφ v∞ci), kdybychom nenabφdli spoleΦnosti moc nad u╛ivateli jejφho programu. P°edtφm ne╛ hnutφ svobodnΘho software ukßzalo, ╛e jsme schopni vytvo°it mnoho u╛iteΦnΘho software bez zbyteΦn²ch omezenφ, mohla b²t tato domn∞nka je╣t∞ i p°ijatelnß.
Jestli╛e odmφtneme akceptovat tyto p°edpoklady a posoudφme danΘ problΘmy p°irozen²m smyslem pro etiku a dßme u╛ivatele na prvnφ mφsto, dojdeme k zßv∞r∙m velmi odli╣n²m. PoΦφtaΦovφ u╛ivatelΘ by m∞li mφt svobodu modifikovat programy tak, aby spl≥ovaly jejich pot°eby, a svobodu sdφlet software. Pomßhat ostatnφm lidem je zßklad spoleΦnosti.
Nenφ zde dostatek prostoru pro rozsßhl² dokument od∙vod≥ujφcφ tento zßv∞r, tak╛e odkazuji Φtenß°e na webovou strßnku why-free.cs.html.
Po rozpadu mΘ komunity bylo nemo╛nΘ pokraΦovat jako d°φve. Mφsto toho jsem stßl tvß°φ v tvß° morßlnφmu rozhodnutφ.
Bylo by snadnou volbou p°ipojit se ke sv∞tu proprietßrnφho software, spolu s podepsßnφm tzv. non-disclosure agreement a slib∙, ╛e nebudu pomßhat sv²m koleg∙m hacker∙m. Je velmi pravd∞podobnΘ, ╛e bych rovn∞╛ vyvφjel software vydßvan² pod non-disclosure agreement a nalΘhal na ostatnφ, a╗ rovn∞╛ zrazujφ svΘ kolegy.
Mohl jsem si tak vyd∞lßvat a mo╛nß se sßm bavit psanφm k≤du. V∞d∞l jsem v╣ak, ╛e kdybych se na konci svΘ kariΘry ohlΘdl zp∞t a vid∞l roky strßvenΘ stavbou zdφ odd∞lujφcφch lidi, p°ipadalo by mi, ╛e jsem sv∙j ╛ivot zasv∞til Φin∞nφm sv∞ta hor╣φm a hor╣φm.
Sßm jsem m∞l ji╛ zku╣enosti s tφm, jak dopadne p°ijetφ non-disclosure agreement, a to kdy╛ n∞kdo odmφtl dßt mi a MIT AI lab zdrojov² k≤d na program pro kontrlou na╣φ tiskßrny. ( Program m∞l n∞jakΘ nedostatky a to bylo pro u╛ivatele tiskßrny velmi frustrujφcφ.) Nemohl jsem si °φct, ╛e non-disclosure agreement je nevinn². Byl jsem velmi rozzloben², kdy╛ s nßmi odmφtl sdφlet k≤d; nemohl jsem se otoΦit zßdy a zaΦφt d∞lat ostatnφm totΘ╛.
Dal╣φ mo╛nostφ, snadnou ale neradostnou, bylo opustit poΦφtaΦovΘ odv∞tvφ. MΘ dovednosti by tak sice nebyly zneu╛ity, ale stßle by byly promrhßvßny. Nebyl bych vinnen za rozd∞lovßnφ a omezovßnφ poΦφtaΦov²ch u╛ivatel∙, ale tak jako tak by k tomu do╣lo.
ZaΦal jsem se tedy poohlφ╛et po zp∙sobu, jak bych mohl vytvo°it n∞co prosp∞╣nΘho. Ptal jsem se sßm sebe: existuje n∞jak² program nebo programy, kterΘ bych mohl psßt, aby mohla na╣e komunita op∞t existovat?
Odpov∞∩ byla z°ejmß: nejd°φve byl pot°eba operaΦnφ systΘm. Jednß se o d∙le╛it² software pro pou╛φvßnφ poΦφtaΦe. S operaΦnφm systΘmem m∙╛ete d∞lat mnoho v∞cφ, bez n∞j se v╣ak poΦφtaΦ nedß v∙bec pou╛φvat. Se svobodn²m operaΦnφm systΘmem bychom znovu mohli vytvo°it komunitu spolupracujφcφch hacker∙ -- a pozvat kohokoliv, aby se k nßm p°idal. Kdokoliv by mohl pou╛φvat poΦφtaΦ bez toho, ani╛ by se tak upisoval ke spiknutφ proti sv²m p°ßtel∙m.
Jako v²vojß° operaΦnφch systΘm∙ jsem pro takovou prßci m∞l dostateΦnΘ znalosti. P°esto╛e jsem tehdy nemohl se samoz°ejmostφ p°edpoklßdat, ╛e usp∞ji, uv∞domil jsem si, ╛e jsem byl pro tuto prßci vybrßn. Rozhodl jsem se vytvo°it systΘm kompatibilnφ s Unixem, aby byl p°enosn² a aby na n∞j mohli unixovφ u╛ivatelΘ snadno p°ejφt. JmΘno GNU bylo vybrßno podle hackerskΘ tradice, jako rekurzivnφ akronym ,,GNU's Not Unix.''
OperaΦnφ systΘm neznamenß pouze kernel, pln∞ dostaΦujφcφ ke spou╣t∞nφ jin²ch program∙. V sedmdesßt²ch letech v sob∞ ji╛ ka╛d² operaΦnφ systΘm, kter² byl hoden svΘho jmΘna, zahrnoval procesory, assemblery, kompilßtory, p°ekladaΦe, debuggery, textovΘ editory, mailery a mnohem vφce. ITS, Multics, VMS, Unix, v╣echny tyto systΘmy je m∞ly. OperaΦnφ systΘm GNU je zahrnoval takΘ.
Pozd∞ji jsem sly╣el tato slova, p°ipisovanß Hillelovi (1):
Jestli╛e nejsem pro sebe, kdo bude pro m∞?
Jestli╛e jsem jen pro sebe, co jsem?
Jestli╛e ne nynφ, kdy?
V podobnΘm duchu bylo i rozhodnutφ zaΦφt s projektem GNU.
(1) Coby ateista sice nenßsleduji ╛ßdnΘ nßbo╛enskΘ v∙dce, ale n∞kdy se mi libΘ, co n∞kdo z nich prohlßsφ.
Termφn ,,svobodn² software'' je n∞kdy ╣patn∞ vyklßdßn -- nijak nesouvisφ s cenou. Je o svobod∞. Zde proto cituji definice svobodnΘho software: program je svobodn²m software, pro vßs, u╛ivatele, jestli╛e mßte tyto svobody:
Jeliko╛ se ,,free'' vztahuje ke svobod∞, nikoliv k cen∞, neexistuje rozpor mezi prodejem kopiφ a svobodn²m software. Svoboda prodßvat kopie je vpodstat∞ velmi d∙le╛itß: sbφrky svobodnΘho software prodßvanΘ na CD-ROMech jsou pro komunitu d∙le╛itΘ a jejich prodej je jednou z cest, jak sehnat penΘze na rozvoj svobodnΘho software. Z toho d∙vodu nenφ svobodn²m software program, je╛ nesmφ b²t distribuovßn.
Kv∙li dvojznaΦnosti slova ,,free'' se lidΘ dlouho pokou╣eli najφt jinß oznaΦenφ, av╣ak ╛ßdnΘ z nich nebylo shledßno jako vhodnß alternativa. AngliΦtina mß vφce slov a nuancφ ne╛ kter²koli jin² jazyk, ale chybφ jφ jednoduchΘ, jednoznaΦnΘ slovo pro ''free'' jako v slov∞ svoboda -- ,,nespoutan²'' -- slovo s nejbli╛╣φm podobn²m v²znamem. Alternativy ,,osvobozen²'', ,,zdarma'' a ,,otev°en²'' jsou nevyhovujφcφ.
[Tento problΘm v Φe╣tin∞ nemßme a m∙╛eme proto velmi v²sti╛n∞ a elegantn∞ pou╛φvat oznaΦenφ ,,svobodn² software.'' Pro podrobn∞j╣φ vysv∞tlenφ se prosφm podφvejte na http://svobodnysoft.zde.cz (dostupnΘ i offline). My jako p°ekladatesk² t²m ani Nadace svobodnΘho software nedoporuΦujeme pou╛φvat v Φe╣tin∞ oznaΦenφ ,,free software.'' V na╣em jazyce je pou╛φvßnφ tohoto dvojznaΦnΘho termφnu bezd∙vodnΘ a velmi matoucφ. -- pozn. korek.]
Rozvoj celΘho systΘmu je velmi zdlouhav² projekt. Abych ho dotßhl do konce, rozhodl jsem se p°izp∙sobit a pou╛φvat ji╛ existujφcφ Φßsti svobodnΘho software v╣ude tam, kde to bylo mo╛nΘ. ┌pln∞ na poΦßtku jsem se nap°φklad rozhodl pou╛φvat TeX jako hlavnφ textov² formßtovaΦ; o n∞kolik let pozd∞ji jsem se rozhodl pou╛φvat X Window SystΘm -- rad∞ji, ne╛ abych pro GNU psal dal╣φ ,,okennφ'' systΘm.
Dφky tomuto rozhodnutφ nenφ GNU systΘm totΘ╛ jako souhrn ve╣kerΘho GNU software. GNU systΘm v sob∞ zahrnuje programy, kterΘ nejsou GNU software, programy, kterΘ byly vyvφjeny jin²mi lidmi pro jejich vlastnφ pot°eby, ale kterΘ m∙╛eme pou╛φvat, proto╛e jsou svobodn²m software.
V lednu 1984 jsem ode╣el z MIT a zaΦal psßt GNU software. Bylo nutnΘ MIT opustit, aby se nevm∞╣ovala do distribuce GNU jako svobodnΘho software. Kdybych z∙stal zam∞stnancem MIT, mohli by si chtφt mou prßci p°ivlastnit a uvalit na ni svΘ distribuΦnφ podmφnky, nebo ji dokonce p°em∞nit v proprietßrnφ software. Necht∞l jsem d∞lat tolik prßce jen na to, abych pak vyd∞l jak se stßvß nepou╛itelnou pro m∙j cφl: vytvo°enφ novΘ software sdφlejφcφ komunity.
P°esto mi v╣ak profesor Winston, °editel MIT AI Lab, laskav∞ dovolil i nadßle pou╛φvat vybavenφ laborato°e.
Krßtce p°ed zaΦßtkem GNU projektu jsem se doslechl o SvobodnΘm univerzitnφm kompilßtoru Kit, rovn∞╛ znßmΘho jako VUCK. (dßnskΘ slovo ,,svobodn²" se pφ╣e s V) Tento p°ekladaΦ byl navr╛en pro mnoho jazyk∙, vΦetn∞ C a Pascalu a na podporu multitaskingov²ch stroj∙. Napsal jsem jeho autorovi, zda by je GNU mohl pou╛φvat.
Posm∞╣n∞ mi odpov∞d∞l, ╛e sice univerzita svobodnß je, av╣ak p°ekladaΦ nikoliv. Rozhodl jsem se proto, ╛e m²m prvnφm programem pro projekt GNU bude mnohajazyΦn² a mnohaplatformnφ p°ekladaΦ.
Doufal jsem, ╛e se vyhnu tomu, abych vytvß°el p°ekladaΦ jß sßm. Zφskal jsem zdrojov² k≤d Pastelu, multiplatformnφho p°ekladaΦe rozvφjenΘho v Lawrence Livermore Lab. Byl napsßn a podporoval roz╣φ°enou verzi Pascalu, navr╛enΘho jako systΘmov² programovacφ jazyk. P°idal jsem front end C a zaΦal jsem ho portovat na poΦφtaΦ Motorola 68000. Musel jsem se v╣ak nakonec vzdßt, kdy╛ jsem p°i╣el na to, ╛e tento p°ekladaΦ pot°ebuje megabyty volnΘho prostoru, a dostupn² Unixov² systΘm 68000 umo╛≥oval pou╛φt pouze 64 kilobyte.
PotΘ jsem si uv∞domil, ╛e p°ekladaΦ Pastel fungoval na principu anal²zy celΘho vstupnφho souboru do syntaxovΘho stromu, p°em∞nil cel² syntaxov² strom v °et∞zec ,,instrukcφ'' a potom generoval cel² v²stupnφ soubor. Dokonce bez uvol≥ovßnφ pam∞ti. Tehdy mi do╣lo, ╛e bych m∞l napsat nov² p°ekladaΦ. Tento nov² p°ekladaΦ je nynφ znßm jako GCC; nenφ v n∞m vyu╛it ani jeden z p°ekladaΦ∙ Pastel, ale poda°ilo se mi p°izp∙sobit a pou╛φt front end C, kter² jsem ji╛ m∞l hotov. To ov╣em bylo o n∞kolik let pozd∞ji; nejd°φve jsem pracoval na GNU Emacsu.
Na GNU Emacus jsem zaΦal pracovat v zß°φ 1984 a na poΦßtku roku 1985 ji╛ zaΦal b²t pou╛iteln²m. To mi umo╛nilo zaΦφt pou╛φvat na editaci unixovΘ systΘmy; proto╛e jsem nem∞l zßjem uΦit se pracovat s vi nebo ed, musel jsem do tΘ doby provßd∞t editaci na jin²ch strojφch.
LidΘ zaΦali mφt o pou╛φvßnφ GNU Emacsu zßjem a tak vyvstala otßzka, jak ho ╣φ°it. Samoz°ejm∞ jsem ho umφstil na anonymnφ ftp server na poΦφtaΦ MIT, je╛ jsem pou╛φval. (Tento poΦφtaΦ, prep.ai.mit.edu, se tak stal hlavnφm FTP distribuΦnφm stanovi╣t∞m pro GNU; o n∞kolik let pozd∞ji jsme ho p°emφstili na nß╣ nov² FTP server.) V tΘ dob∞ ov╣em mnoho lidφ, kte°φ se o to zajφmali, nebylo p°ipojeno k Internetu a nemohlo zφskat p°es ftp. Otßzka tedy zn∞la:,,Co jim mßm °φct?''
Mohl jsem °φct: ,,Najd∞te si kamarßda, kter² na sφti je, a ten vßm ud∞lß kopii.'' TakΘ jsem mohl ud∞lat to, co jsem ud∞lal s p∙vodnφm PDP-10 Emacs: °φct jim: ,,Po╣lete mi pßsku a SASE a jß vßm ji vrßtφm s nahran²m Emacsem.'' Nem∞l jsem v╣ak prßci a hledal jsem zp∙sob, jak si svobodn²m software vyd∞lat. Oznßmil jsem tedy, ╛e pßsku po╣lu ka╛dΘmu za poplatek $150. Takto jsem zaΦal s obchodnφm ╣φ°enφm svobodnΘho software a byl jsem p°edch∙dcem spoleΦnostφ, kterΘ nynφ distribuujφ GNU systΘmy zalo╛enΘ na Linuxu.
Jestli╛e je program v dob∞, kdy opou╣tφ ruce svΘho autora svobodn²m software, nemusφ to nutn∞ znamenat, ╛e pro ka╛dΘho vlastnφka kopie tohoto programu to bude rovn∞╛ svobodn² software. Nap°φklad public domain software (software, kter² nenφ copyrightovan²) je svobodn²m software; ale kdokoliv si m∙╛e vytvo°it vlastnφ modifikovanou verzi. Podobn∞ je tomu v p°φpad∞ mnoha svobodn²ch program∙: jsou copyrightovßny, ale ╣φ°eny pod jednoduch²mi licencemi, kterΘ umo╛≥ujφ vytvß°et proprietßrnφ modifikovanΘ verze.
P°φkladem tohoto problΘmu je X Window systΘm vyvinut² na MIT a vydan² jako svobodn² software s velmi volnou licencφ. Brzy byl p°evzat r∙zn²mi poΦφtaΦov²mi firmami. Ty p°idaly X ke sv²m proprietßrnφm unixov²m systΘm∙m pouze v binßrnφ podob∞ a s t²m╛ non-disclosure agreement. Tyto kopie X nebyly svobodn²m software o nic vφc ne╛ Unix.
V²vojß°i X Window System to nepova╛ovali za problΘm -- v∞d∞li , ╛e k tomu dojde. Jejich cφlem nebyla svoboda, jen ·sp∞ch definovan² slovy ,,mφt hodn∞ u╛ivatel∙.'' Nestarali se o to, zda majφ jejich u╛ivatelΘ svobodu, ╣lo jim jen o to, aby jich bylo co nejvφc.
To vedlo k paradoxnφ situaci, kde dva rozdφlnΘ pohledy na mφru svobody poskytovaly odli╣nΘ odpov∞di na otßzku: ,,Je tento program svobodn²?'' Pokud byste tento problΘm posuzovali na zßklad∞ svobod poskytovan²ch distribuΦnφmi podmφnkami tΘ verze z MIT, °ekli byste, ╛e X jsou svobodn² software. Jestli╛e byste ov╣em prov∞°ovali svobodu pr∙m∞rnΘho u╛ivatele X, museli byste °φct, ╛e se jednß o proprietßrnφ software. V∞t╣ina u╛ivatel∙ X pou╛φvala proprietßrnφ verze, kterΘ dostali s unixov²mi systΘmy, ne svobodnou verzi.
Cφlem GNU je poskytnout u╛ivatel∙m svobodu, ne b²t populßrnφ. Pot°ebovali jsme takovΘ dsitribuΦnφ podmφnky, abychom zabrßnili prom∞n∞ GNU software v software proprietßrnφ. Metoda, kterou pou╛φvßme, se naz²vß ,,copyleft''.(1)
Copyleft pou╛φvß copyrightovΘho prßva, ale ,,p°evracφ'' jej tak, aby slou╛ilo k opaΦn²m ·Φel∙m ne╛ obvykle: namφsto prost°edku ke spoutßnφ software, se stßvß prost°edkem k udr╛enφ software svobodn²m.
Hlavnφ my╣lenkou copyleftu je dßt ka╛dΘmu povolenφ ke spou╣t∞nφ, kopφrovßnφ, modifikaci programu a ╣φ°enφ modifikovan²ch verzφ - ne v╣ak povolenφ p°idßvat k nim vlastnφ omezenφ. Takto jsou rozhodujφcφ svobody, kterΘ definujφ ,,svobodn² software'' zaruΦeny pro ka╛dΘho, kdo mß kopii; stßvajφ se nezciziteln²mi prßvy.
Aby byl copyleft efektivnφ, musφ b²t modifikovanΘ verze rovn∞╛ svobodnΘ. To zaji╣╗uje, ╛e na╣e prßce je, pokud je zve°ejn∞na, dostupnß na╣φ komunit∞. Co se t²Φe programator∙, kte°φ pracujφ jako dobrovolnφci na zlep╣ovßnφ GNU software, je to prßv∞ copyleft, je╛ nedovoluje jejich zam∞stnavatel∙m °φkat: ,,Nesmφte sdφlet tyto zm∞ny, proto╛e je pou╛ijeme k vytvo°enφ na╣φ proprietßrnφ verze programu.''
Po╛adavek, ╛e ve╣kerΘ zm∞ny musφ b²t ,,svobodnΘ'' je nezbytn², pakli╛e chceme zajistit svobodu ka╛dΘmu u╛ivateli programu. SpoleΦnosti, je╛ uΦinili X Window systΘm proprietßrnφm, v∞t╣inou provedly n∞kolik zm∞n, aby jej p°izp∙sobily jejich systΘm∙m a hardware. Tyto zm∞ny byly v porovnßnφ s roz╣φ°enφm X malΘ, ale nikoli bezv²znamnΘ. Jestli╛e by vytvß°enφ zm∞n bylo v²mluvou k odep°enφ svobody u╛ivatel∙m, bylo by pro kohokoli velmi snadnΘ z tΘto v²mluvy t∞╛it.
P°φslu╣n² problΘm se t²kß kombinovßnφ svobodnΘho programu s nesvobodn²m k≤dem. Takovßto kombinace by pak nevyhnuteln∞ byla nesvobodnß; jakΘkoliv svobody chyb∞jφcφ nesvobodnΘ Φßsti by pak chyb∞ly i celku. Povolenφ takov²ch kombinacφ by bylo zkßzonosnΘ. Z toho d∙vodu je rozhodujφcφm po╛adavkem pro copyleft ,,ucpat tuto dφru'': jak²koliv program, kter² je p°idan² Φi kombinovan² s copyleftovan²m programem, musφ b²t takov², aby dal╣φ kombinovanß verze byla rovn∞╛ svobodnß a copyleftovanß.
Specifickß implementace copyleftu, kterou pou╛φvßme ve v∞t╣in∞ GNU software, je GNU General Public License, zkrßcen∞ GNU GPL. Mßme ov╣em jinΘ druhy copyleft∙, pou╛φvanΘ za zvlß╣tnφch okolnostφ. P°φruΦky GNU jsou rovn∞╛ copyleftovßny, ale pou╛φvajφ mnohem jednodu╣╣φ druh copyleftu, proto╛e pro n∞ nenφ t°eba slo╛itosti GNU GPL.
(1) V roce 1984 nebo 1985 mi poslal dopis Don Hopkins (nßpady sr╣φcφ Φlov∞k). Na obßlku napsal pßr vtipn²ch poznßmek, vΦetn∞ tΘto: ,,Copyleft -- v╣echna prßva vyhrazena.'' Pou╛φval jsem v²raz ,,copyleft'' k oznaΦenφ distribuΦnφho pojetφ, kterΘ jsem v tΘ dob∞ vyvφjel.
Jak vzr∙stal zßjem o pou╛φvßnφ Emacsu, do projektu GNU se zaΦali zapojovat jinφ lidΘ, a tak jsme se rozhodli, ╛e je Φas znovu se poohlΘdnout po n∞jak²ch financφch. Proto jsme v roce 1985 vytvo°ili Nadaci pro svobodn² software; organizaci pro rozvoj svobodnΘho software, osvobozenou od platby danφ. Nadace pro svobodn² software rovn∞╛ p°evzala kontrolu nad prodejem pßsek s Emacsem; pozd∞ji se obchod roz╣φ°il dφky tomu, ╛e jsme na pßsku p°idali jin² svobodn² software (jak GNU, tak ,,ne-GNU'') a zaΦali jsme rovn∞╛ prodßvat manußly.
Nadace pro svobodn² software p°ijφmß sponzorskΘ dary, ale v∞t╣ina jejφch p°φjm∙ v╛dy pochßzela z prodeje kopiφ svobodnΘho software a jin²ch slu╛eb s tφm spojen²ch. Nynφ prodßvß CD-ROMy se zdrojov²mi k≤dy, CD-ROMy s binßrkami, p°ehledn∞ ti╣t∞nΘ p°φruΦky (v╣e se svobodou redistribuce a modifikace), a zaji╣╗uje distribuce Deluxe (v nich╛ dodßvßme celou sbφrku software dle va╣eho v²b∞ru platformy [distribuce bude na tuto platformu portovßna -- pozn.korek.]).
Zam∞stnanci Nadace pro svobodn² software napsali a udr╛ovali mnoho balφΦk∙ GNU. Dva v²znamnΘ jsou knihovny pro C a shell. GNU C knihovna je tφm, co ka╛d² program b∞╛φcφ na GNU/Linux systΘmu pou╛φvß ke komunikaci s Linuxem. Vyvφjel ji Φlen Nadace pro svobodn² software, Roland McGrath. Na v∞t╣in∞ GNU/Linux systΘm∙ je pou╛φvan²m shellem BASH - Bourne Again Shell(1), vyvφjen² zam∞stnancem FSF, Brianem Foxem.
Financovali jsme v²voj t∞chto program∙, proto╛e GNU projekt nebyl pouze o nßstrojφch Φi v²vojovΘm prost°edφ. Na╣φm cφlem byl kompletnφ operaΦnφ systΘm a tyto programy jsme pro dosa╛enφ cφle pot°ebovali.
(1) "Bourne again Shell" je parodiφ na jmΘno ,,Bourne Shell'', obvykle pou╛φvan² shellu u Unixu.
Filosofie svobodnΘho software odmφtß urΦitou roz╣φ°enou obchodnφ praxi, ale nestavφ se proti komerci. Pokud obchod respektuje svobody u╛ivatele, p°ejemu mu ·sp∞ch.
Prodej kopiφ Emacsu ukazuje jeden druh obchodu se svobodn²m software. Kdy╛ Nadace pro svobodn² software p°evzala tento obchod, pot°eboval jsem najφt jin² zp∙sob vyd∞lßvßnφ. Nalezl jsem jej v prodeji slu╛eb spojen²ch se svobodn²m software, kter² jsem vyvφjel. To zahrnovalo vyuΦovßnφ p°edm∞t∙ jako nap°φklad jak programovat GNU Emacs a jak si p°izp∙sobit GCC, a v²voj software, p°evß╛n∞ portovßnφ GCC na novΘ platformy.
V dne╣nφ dob∞ provozuje ka╛d² z t∞chto typ∙ obchodu se svobodn²m software °ada korporacφ. N∞kterΘ distribuujφ kolekce svobodnΘho software na CD-ROM; jinΘ prodßvajφ podporu k r∙zn²m u╛ivatelsk²m ·rovnφm: od u╛ivatelsk²ch otßzek p°es spravovßnφ chyb a╛ k p°idßvßnφ nov²ch souΦßstφ. Dokonce se zaΦφnajφ objevovat firmy se svobodn²m software zalo╛enΘ na nov²ch softwarov²ch produktech.
P°esto v╣ak pozor -- °ada firem, kterΘ se samy spojujφ s termφnem ,,open source'' vpodstat∞ zaklßdß sv∙j business na nesvobodnΘm software, kter² pracuje spolu se svobodn²m software. Nejsou to firmy svobodnΘho software, jednß se o firmy proprietßrnφho software, o firmy, je╛ se pomocφ sv²ch produkt∙ sna╛φ odlßkat u╛ivatele od svobody. Naz²vajφ je ,,p°idan²mi hodnotami,'' na kterΘ cht∞jφ, abychom si zvykli: jednß se o volbu mezi v²hodnostφ a svobodou. Cenφme-li si svobody vφce, m∞li bychom je naz²vat ,,produkty zbavenΘ svobody''.
Hlavnφm cφlem GNU bylo, aby se jednalo o svobodn² software. Dokonce ani kdyby GNU nebylo technicky vysp∞lej╣φ ne╛ Unix, bylo by pro spoleΦnost p°φnosem, nebo╗ by dovolovalo u╛ivatel∙m spolupracovat a respektovalo jejich svobody.
Bylo ov╣em p°irozenΘ aplikovat znßmΘ standardy z praxe na r∙znΘ Φinnosti -- nap°φklad dynamickΘ rozvr╛enφ datov²ch struktur, aby se vyhly libovoln²m fixnφm limit∙m a manipulovaly s ve╣ker²mi mo╛n²mi osmibitov²mi k≤dy v╣ude tam, kde to m∞lo smysl.
Navφc jsme se rozhodli odmφtnout zam∞°enφ Unixu na malΘ velikosti pam∞ti a to tak, ╛e jsme se rozhodli nepodporovat 16-bitovΘ poΦφtaΦe (bylo z°ejmΘ, ╛e v dob∞, kdy bude GNU systΘm dokonΦen, budou normou 32-bitovΘ stroje), a nesna╛it se o snφ╛enφ pam∞ti, pokud nep°ekroΦila jeden megabyte. U program∙, pro n∞╛ nebyly velmi rozsßhlΘ soubory rozhodujφcφ, jsme povbuzovali programßtory, aby naΦetli celΘ vstupnφ soubory do jßdra a potΘ scannovali jejich obsahy bez obav o I/O operace.
Tato rozhodnutφ umo╛nila mnoha GNU program∙m p°edΦit jejich unixovΘ prot∞j╣ky ve spolehlivosti a rychlosti.
Jak vzr∙stala reputace projektu GNU, lidΘ nßm zaΦali nabφzet stroje pou╛φvajφcφ UNIX. Bylo to velmi u╛iteΦnΘ, proto╛e nejsnaz╣φ cesta k rozvoji komponent GNU spoΦφvala v nahrazovßnφ komponent jednoho systΘmu komponenty druhΘho systΘmu. Bohu╛el to v╣ak vyvolalo etick² problΘm: jestli je v∙bec sprßvnΘ mφt kopii Unixu.
UNIX byl (a je) proprietßrnφ software a filozofie projektu GNU °φkß, ╛e bychom proprietßrnφ software nem∞li pou╛φvat. Kdy╛ jsem v╣ak aplikoval tß╛ od∙vodn∞nφ, kterß vedla k zßv∞ru, ╛e nßsilφ v sebeobran∞ je ospravedlnitelnΘ, do╣el jsem k tomu, ╛e je etickΘ pou╛φvat proprietßrnφ software tam, kde je d∙le╛it²m pro v²voj svobodn²ch nßhrad, kterΘ by pomohly ostatnφm p°estat pou╛φvat proprietßrnφ software.
AΦkoliv se jednalo o ospravedlnitelnou ╣patnost, stßle to byla ╣patnost. Nynφ ji╛ nemßme ╛ßdnΘ dal╣φ kopie Unixu, proto╛e jsme je nahradili svobodn²mi operaΦnφmi systΘmy. Pokud bychom na n∞jakΘm poΦφtaΦi nemohli nahradit stßvajφcφ poΦφtaΦov² systΘm systΘmem svobodn²m, nahradili bychom rad∞ji poΦφtaΦ.
Jak projekt GNU pokraΦoval a p°ib²valo systΘmov²ch komponent, rozhodli jsme se vytvo°it seznam chyb∞jφcφch komponent∙. Verbovali jsme v²vojß°e, aby napsali chyb∞jφcφ souΦßsti. Tento seznam se stal znßm² jako seznam ·loh GNU. Krom∞ chyb∞jφcφch unixov²ch komponent∙ jsme p°idali i jin² u╛iteΦn² software a dokumentaci, kterou by podle nßs m∞l opravdu kompletnφ systΘm mφt.
Nynφ jsou na seznamu ·loh GNU st∞╛φ n∞jakΘ komponenty Unixu -- v╣echno ji╛ bylo vytvo°eno, krom∞ n∞kolika nep°φli╣ d∙le╛it²ch. Seznam je v╣ak zabrßn projekty, kterΘ by n∞kte°φ mohli oznaΦit jako ,,aplikace''. Jak²koliv program, je╛ se zamlouvß vφce lidem ne╛ ·zkΘ skupin∞ u╛ivatel∙, by bylo u╛iteΦnΘ p°idat k operaΦnφmu systΘmu.
Dokonce i hry jsou a ji╛ od poΦßtku byly v seznamu ·loh. Unix hry zahrnoval, a proto je m∞lo GNU p°irozen∞ zahrnovat takΘ. Ov╣em kompatibilita nebyla pro hry problΘmem, a tak jsme se ne°φdili seznamem her, kterΘ m∞l Unix. Namφsto toho jsme sepsali spektrum odli╣n²ch typ∙ her, kterΘ by se u╛ivatel∙m mohly zamlouvat.
GNU knihovna pro C pou╛φvß zvlß╣tnφ druh copyleftu nazvan² GNU Library General Public License. Tento copyleft umo╛≥uje spojit proprietßrnφ software s knihovnami. ProΦ jsme ud∞lali tuto v²jimku?
Nenφ to otßzka principu; neexistuje princip, kter² by tvrdil, ╛e produkty proprietßrnφho software majφ oprßvn∞nφ zahrnovat nß╣ k≤d. (ProΦ p°ispφvat projektu zalo╛enΘm na tom, ╛e s nßmi odmφtne cokoliv sdφlet?) Pou╛φvßnφ LGPL pro C knihovnu, Φi pro jakoukoliv knihovnu, je otßzkou strategie.
C knihovna mß generickou ·lohu; ka╛d² proprietßrnφ systΘm nebo p°ekladaΦ mß C knihovnu. Z toho d∙vodu by vytov°enφ na╣φ C knihovny dostupnΘ pouze svobodnΘmu software nem∞lo pro svobodn² software ╛ßdnΘ v²hody -- jen by odrazovalo od jejφho pou╛φvßnφ.
Jeden systΘm je ov╣em v²jimkou: v GNU systΘmu (a ten zahrnuje GNU/Linux), je GNU C knihovna jedinou C knihovnou. DistribuΦnφ podmφnky GNU C knihovny urΦujφ, zda je mo╛nΘ kompilovat proprietßrnφ program pro GNU systΘm. Neexistuje ╛ßdn² morßlnφ d∙vod, kter² by povoloval proprietßrnφ aplikace na GNU systΘmu, ale ze strategickΘho hlediska to vypadß, ╛e jejich zamφtnutφ by spφ╣e odrazovalo od pou╛φvßnφ GNU systΘmu ne╛ povzbuzovalo rozvoj svobodn²ch aplikacφ.
Proto je pou╛φvßnφ knihovny GPL dobrou strategiφ pro knihovnu C. U ostatnφch knihoven se tyto strategickΘ otßzky rozhodujφ p°φpad od p°φpadu. Jestli╛e se dφky knihovn∞ dajφ psßt zvlß╣tnφ typy program∙, potom je jejφ vydßnφ pod GPL a omezenφ pouze na svobodnΘ programy zp∙sobem, jak pomoci ostatnφm v²vojß°∙m svobodnΘho software, tφm, ╛e budou zv²hodn∞ni oproti proprietßrnφmu software.
Pov╣imn∞te si nap°φklad GNU Readline, knihovny, kterß byla vyvinuta, aby poskytla editaΦnφ p°φkazovou °ßdku pro BASH. Readline je vydßno pod obyΦejnou GNU GPL, ne pod knihovnou GPL. To mß pravd∞podobn∞ za nßsledek snφ╛enφ mno╛stvφ u╛itφ Readline, ale to pro nßs nenφ ztrßta. Mezitφm byla vytvo°ena p°inejmen╣φm jedna softwarovß aplikace tak, aby mohla pou╛φvat Readline, a to je pro komunitu velkou v²hrou.
V²vojß°i proprietßrnφho software majφ v²hody, kterΘ jim poskytujφ penφze; v²vojß°i svobodnΘho software pot°ebujφ vytvß°et v²hody pro sebe navzßjem. Doufßm, ╛e jednou budeme mφt rozsßhlou sbφrku knihoven kryt²ch GPL, k nim╛ nebude mφt proprietßrnφ software p°φstup a nebudeme mu tak poskytovat u╛iteΦnΘ moduly slou╛φcφ jako stavebnφ kameny novΘho svobodnΘho software a zφskßme tak dal╣φ v²hodu pro jeho rozvoj.
Eric Raymond °φkß, ╛e ,,ka╛d² dobr² program je psßn tak, aby vy°e╣il problΘm svΘho tv∙rce.'' Mo╛nß je to obΦas pravdou, ale mnoho d∙le╛it²ch souΦßstφ GNU software bylo rozvφjeno kv∙li tomu, abychom m∞li kompletnφ svobodn² operaΦnφ systΘm. Byly vytvo°eny na zßklad∞ urΦitΘ p°edstavy a plßnu, ne z impulzu.
Nap°φklad jsme vyvφjeli GNU C knihovnu, proto╛e systΘm podobn² Unixu ji pot°ebuje, Bourne-Again Shell (bash), proto╛e systΘm podobn² Unixu pot°ebuje shell, a GNU tar, z toho samΘho d∙vodu jako tyto dv∞ p°edchozφ. TotΘ╛ platφ i pro mΘ vlastnφ programy-- GNU C p°ekladaΦ, GNU Emacs, GDB a GNU Make.
N∞kterΘ GNU programy byly vyvφjeny, aby se ,,utkaly'' s urΦit²mi p°ekß╛kami kladen²mi v∙Φi svobod∞. Vyvφjeli jsme gzip, abychom nahradili Compress program, je╛ na╣e komunita ztratila kv∙li LZW patent∙m. Na╣li jsme lidi, aby vyvinuli LessTif a pozd∞ji zaΦali pracovat na GNOME a Harmony, zam∞°enΘ na potφ╛e zp∙sobenΘ jist²mi proprietßrnφmi knihovnami (viz nφ╛e). Vyvφjφme GNU Privaci Guard, abychom nahradili populßrnφ nesvobodn² kryptovacφ software, proto╛e by si u╛ivatelΘ nem∞li b²t nuceni vybφrat mezi soukromφm a svobodou.
Samoz°ejm∞ mnoho lidφ, kte°φ psali tyto programy, prßce zaujala, a °adu Φßstφ p°idali r∙znφ lidΘ, kv∙li sv²m pot°ebßm a zßjm∙m. To ale nenφ d∙vod proΦ tyto programy existujφ.
Na poΦßtku projektu GNU jsem si p°edstavoval, ╛e vyvineme cel² GNU systΘm a potΘ ho jako celek vydßme. To se v╣ak nestalo.
Od tΘ doby, kdy byla ka╛dß souΦßst GNU systΘmu implementovßna na systΘm Unix, mohla b²t spou╣t∞na na unixov²ch systΘmech, dlouho p°edtφm ne╛ esistoval kompletnφ GNU systΘm. N∞kterΘ z t∞chto program∙ se staly populßrnφmi, a u╛ivatelΘ je zaΦali ╣φ°it a portovat --- do r∙zn²ch nekompatibilnφch verzφ Unixu a n∞kdy tΘ╛ do jin²ch systΘm∙.
Programy se postupn∞ staly daleko v²konn∞j╣φmi a p°itahovaly jak fondy, tak p°isp∞vatele, k projektu GNU. Pravd∞podobn∞ to v╣ak zpozdilo zkompletovßnφ GNU projektu o n∞kolik let, nebo╗ v²vojß°i GNU vlo╛ili sv∙j Φas do ·dr╛by port∙ a p°idßvßnφ Φßstφ k existujφcφm souΦßstem, rad∞ji ne╛ aby pokraΦovali v psanφ chyb∞jφcφch Φßstφ, jednΘ po druhΘ.
V roce 1990 byl ji╛ GNU systΘm tΘm∞° hotov; jedinou v∞t╣φ chyb∞jφcφ komponentou byl kernel. Rozhodli jsme se implementovat nß╣ kernel jako soubor serverov²ch proces∙ na vrcholu Machu. Mach je mikrokernel vyvinut² na univerzit∞ Carnegie Mellon a univerzit∞ v Utahu; GNU HURD je sbφrkou server∙ (nebo ,,stßdo pako≥∙ -- ``herds of gnus''), kter² fungoval na vrcholu Machu, a vykonßvß r∙znΘ Φinnosti unixovΘho jßdra. Zahßjenφ v²voje se zpozdilo kv∙li tomu, ╛e jsme Φekali, a╛ uvolnφ Mach coby svobodn² software, jak nßm bylo slφbeno.
Jednφm z d∙vod∙, proΦ jsme si vybrali tento design, bylo vyvarovat se nejobtφ╛n∞j╣φ Φßsti prßce: debuggovßnφ kernelovΘho programu bez debuggeru na ·rovni zdrojovΘho k≤du. Tato prßce byla ji╛ hotova, v Machu, a zam²╣leli jsme ladit HURD servery jako u╛ivatelskΘ programy, s GDB. Trvalo to v╣ak velmi dlouho a ukßzalo se, ╛e je velmi obtφ╛nΘ odladit multiprocesovΘ servery, kterΘ si navzßjem posφlajφ zprßvy. Trvalo mnoho let ne╛ HURD zaΦal spolehliv∞ fungovat.
Nep°edpoklßdali jsme, ╛e se kernel bude jmenovat HURD. Jeho p∙vodnφ nßzev byl Alix -- podle jmΘna mΘ tehdej╣φ p°φtelkyn∞, systΘmovΘ administrßtorky, kterß poukßzala na to, ╛e by se hodilo jejφ jmΘno hodilo do na╣eho systΘmu pojmenovßvßnφ Unix∙; vtipkovala p°ed sv²mi p°ßteli, ╛e by m∞l n∞kdo pojmenovat kernel po nφ. Nic jsem ne°φkal, ale rozhodl jsem se ji p°ekvapit kernelem s nßzvem Alix.
Nakonec to tak nez∙stalo. Michael Bushnell (nynφ Thomas), hlavnφ v²vojß° kernelu, up°ednost≥oval nßzev HURD a z Alix ud∞lal odkaz k urΦitΘ Φßsti kernelu -- konkrΘtn∞ k tΘ, co zachycuje systΘmovß volßnφ a posφlß zprßvy HURD server∙m.
Nakonec jsme se s Alix roze╣li a zm∞nila si jmΘno; nezßvisle na tom byl zm∞n∞n design HURDu tak, aby C knihovna posφlala zprßvy p°φmo server∙m, a dφky tomu souΦßst Alix zmizela z nßvrhu.
Je╣t∞ p°edtφm ne╛ se tohle v╣echno udßlo, se Alix setkala se sv²mi p°ßteli a ti jφ °ekli o nßzvu Alix ve zdrojovΘm k≤du HURDu, tak╛e jmΘno odvedlo svou prßci.
GNU Hurd nenφ p°ipraven² pro opravdovΘ pou╛itφ. Na╣t∞stφ je dostupn² jin² kernel. V roce 1991 vyvinul Linus Torvalds kernel kompatibilnφ s Unixem a nazval ho Linux. Kolem roku 1992 vznikl zkompletovßnφm Linuxu s ne zcela hotov²m GNU systΘmem ·pln² svobodn² operaΦnφ systΘm. (Jejich zkombinovßnφ bylo samoz°ejm∞ samo o sob∞ podstatn²m ·kolem.) Vlastn∞ m∙╛eme spou╣t∞t verze GNU systΘmu dφky Linuxu.
Naz²vßme tuto systΘmovou verzi GNU/Linux, abychom vyjßd°ili, ╛e se jednß o kombinaci GNU systΘmu a linuxovΘho jßdra.
Prokßzali jsme na╣i schopnost vyvinout ╣irokΘ spektrum svobodnΘho software. To neznamenß, ╛e jsme neporazitelnφ a nezastavitelnφ. Dφky n∞kolika obtφ╛φm je budoucnost svobodnΘho software nejistß; st°et s nimi bude vy╛adovat velkΘ ·silφ a vytrvalost, mo╛nß trvajφcφ roky. Bude vy╛adovat takovΘ odhodlßnφ, v n∞m╛ lidΘ dajφ najevo, ╛e si svΘ svobody vß╛φ a nenechajφ si ji od nikoho vzφt.
Nßsledujφcφ Φty°i oddφly popisujφ tyto v²zvy.
V²robci hardware majφ stßle vzr∙stajφcφ tendence udr╛ovat hardwarovΘ specifikace v tajnosti. Dφky tomu je obtφ╛nΘ psßt svobodnΘ ovladaΦe, aby Linux a XFree86 mohly podporovat nov² hardware. Nynφ mßme kompletnφ svobodnΘ systΘmy, ale nebudeme je mφt pozd∞ji, pakli╛e nebudou schopny podporovat budoucφ poΦφtaΦe.
Existujφ dv∞ mo╛nosti jak zvlßdnout tento problΘm. Programßto°i se mohou zab²vat tzv. zp∞tn²m in╛en²rtsvφm, aby zjistili jak podporovat hardware. Zbylφ z nßs si mohou vybrat hardware, kter² je podporovan² svobodn²m software; jak nß╣ poΦet poroste, utajovßnφ specifikacφ se stane sebeporß╛ejφcφ taktikou.
Zp∞tnΘ in╛en²rstvφ je d∙le╛itou pracφ; budeme mφt programßtory s dostateΦn²m odhodlßnφm pustit se do toho? Ano -- pokud budou lidΘ p°esv∞dΦeni, ╛e svobodn² software je otßzkou principu a nesvobodnΘ ovladaΦe nemohou b²t tolerovßny. A utratφ mnoho z nßs penφze navφc, Φi dokonce ob∞tuje trochu vφc Φasu, abychom mohli pou╛φvat svobodnΘ ovladaΦe? Ano, jestli╛e odhodlßnφ mφt svobodu bude roz╣φ°enΘ.
NesvobodnΘ knihovny fungujφcφ na svobodn²ch operaΦnφch systΘmech jsou jakousi pastφ na v²vojß°e svobodnΘho software. Lßkav²mi rysy knihovny jsou nßvnady; pokud pou╛ijete tuto knihovnu, spadnete do pasti, proto╛e vß╣ program nebude moci b²t u╛iteΦnou Φßstφ svobodnΘho operaΦnφho systΘmu. (StruΦn∞ °eΦeno, m∙╛eme zahrnout vß╣ program, ale nebude fungovat bez chyb∞jφcφ knihovny.) Je╣t∞ h∙°e, pokud se program vyu╛φvajφcφ proprietßrnφ knihovnu stane populßrnφ, m∙╛e nalßkat jinΘ nic netu╣φcφ programßtory do pasti.
Prvnφ ukßzkou tohoto problΘmu byl Motif toolkit v osmdesßt²ch letech. P°esto╛e zde je╣t∞ nebyly svobodnΘ operaΦnφ systΘmy, bylo z°ejmΘ, jakou potφ╛φ pro n∞ pozd∞ji Motif bude. GNU projekt na to reagoval dv∞ma zp∙soby: po╛ßdal jednotlivΘ projekty svobodnΘho software, aby podporovaly svobodn² X toolkit stejn∞ jako Motif a po╛ßdßl takΘ n∞koho, aby napsal svobodnou nßhradu za Motif. Trvalo to velmi dlouho; LessTif, vyvφjen² Hungry Programmers (,,Hladovφ programßto°i''), se stal dostateΦn∞ v²konn²m na podporu v∞t╣iny aplikacφ Motifu a╛ v roce 1997.
Mezi roky 1996 a 1998 byla pou╛ita jinß nesvobodnß GUI toolkit knihovna -- Qt -- v d∙le╛itΘ kolekci svobodnΘho software, desktopu KDE.
SvobodnΘ GNU/Linux systΘmy nebyly schopny pou╛φvat KDE, proto╛e jsme nemohli pou╛φvat knihovnu. Av╣ak n∞kte°φ komerΦnφ distributo°i systΘm∙ GNU/Linux, ti kte°φ striktn∞ nelp∞li na svobodnΘm software, p°idßvali ke sv²m systΘm∙m KDE -- vytvß°eli tak schopn∞j╣φ systΘm, kter² byl v╣ak o╣izen co se svobody t²Φe. Skupina KDE aktivn∞ povzbuzovala programßtory, aby pou╛φvali Qt, a mili≤ny nov²ch ,,linuxov²ch u╛ivatel∙'' nebyly nikdy seznßmeny s tφm, ╛e je s tφm n∞co v nepo°ßdku. Situace se zdßla b²t hrozivß.
Komunita svobodnΘho software odpov∞d∞la na problΘm dv∞ma zp∙soby: GNOME a Harmony.
GNOME, GNU Network Object Model Environment, je desktopov²m projektem GNU. Zahßjil ho Miguel de Icaza v roce 1997 a vyvφjel s podporou Red Hat Software. GNOME cht∞l poskytnout podobnß desktopovß vybavenφ, kterß by v╣ak pou╛φvala pouze svobodn² software. M∞l rovn∞╛ technickΘ v²hody, jako nap°φklad podporu mnoha jazyk∙, nikoliv jen C++. Hlavnφm d∙vodem v╣ak byla svoboda: aby nebylo t°eba pou╛φvat jak²koliv nesvobodn² software.
Harmony je kompatibilnφ knihovna, navr╛enß tak, aby umo╛≥ovala spustit KDE software bez pou╛itφ Qt.
V listopadu 1998 ohlßsili v²vojß°i Qt zm∞nu licence. Z Qt se tak m∞l stßt svobodn² software. Nejsem si zcela jist², ale domnφvßm se, ╛e se tak stalo zΦßsti kv∙li p°φsnΘ reakci firmy na problΘm, kter² Qt vznesl, kdy╛ byl nesvobodn². (Novß licence je nev²hodnß a nespravedlivß, tak╛e je stßle ╛ßdoucφ vyvarovat se pou╛itφ Qt.)
[DodateΦnß poznßmka: Qt bylo znovuvydßno pod GNU GPL v zß°φ 2000, a tak byl problΘm vpodstat∞ vy°e╣en.]
Jak zareagujeme na dal╣φ lßkavou nesvobodnou knihovnu? Porozumφ celß komunita tomu, ╛e je t°eba nespadnout do pasti? Nebo se mnozφ z nßs vzdajφ svobody ve prosp∞ch pohodlφ a vznikne velk² problΘm? Na╣e budoucnost zßvisφ na na╣φ filozofii.
Nejv∞t╣φ hrozba, kterΘ Φelφme, jsou softwarovΘ patenty, kterΘ mohou odstranit algoritmy a hlavnφ Φßsti programu z dosahu svobodnΘho software a╛ na dvacet let. Patenty na LZW kompresnφ algoritmy byly zavedeny v roce 1983 a stßle nesmφme vydßvat svobodn² software, abychom vytvß°eli vlastnφ komprimovanΘ GIFy. V roce 1998 byl sta╛en z prodeje svobodn² program na vytvß°enφ komprimovan²ch MP3 soubor∙ pod hrozbou soudnφho procesu.
Jsou r∙znΘ zp∙soby jak si poradit s patenty: m∙╛eme hledat d∙kaz, ╛e patent je neplatn², anebo se m∙╛eme poohlφ╛et po alternativnφch °e╣enφch, abychom mohli projekt vytvo°it. Ka╛dß z t∞chto metod je v╣ak ·Φinnß pouze v n∞kter²ch p°φpadech; pokud ob∞ dv∞ sel╛ou, patent m∙╛e p°inutit v╣echen svobodn² software, aby se vzdal n∞kter²ch Φßstφ, kterΘ u╛ivatelΘ vy╛adujφ. Co budeme d∞lat, jestli╛e k tomu dojde?
Ti, kte°φ si cenφ svobodn² software dφky svobod∞, kterou poskytuje, u n∞ho z∙stanou. Pokusφme se d∞lat na╣i prßci bez patentovan²ch souΦßstφ. Ti, kte°φ si svobodnΘho software cenφ kv∙li p°edpoklad∙m, ╛e bude technicky vysp∞lej╣φm, nazvou pravd∞podobn∞ zbrzd∞nφ kv∙li patentu selhßnφm. AΦkoli je tedy u╛iteΦnΘ hovo°it o praktickΘ ·Φinnosti modelu rozvoje naz²vanΘho ,,katedrßla'' , spolehlivosti a v²konnosti n∞kterΘho svobodnΘho software, nesmφme se v tomto bod∞ zastavit. Musφme hovo°it o svobod∞ a principu.
N∞jv∞t╣φ nedostatek n╣ich svobodn²ch operaΦnφch systΘm∙ nespoΦφvß v software -- je to nedostatek dobr²ch svobodn²ch manußl∙, kterΘ m∙╛eme zahrnout do na╣ich systΘm∙. Dokumentace je nezbytnou souΦßstφ ka╛dΘho balφku software; kdy╛ sad∞ program∙ d∙le╛itΘho svobodnΘho software chybφ dobrß svobodnß p°φruΦka, je to velkß mezera. V dne╣nφ dob∞ mßme mnoho takov²ch mezer.
Svobodnß dokumentace, jako svobodn² software, se vztahuje ke svobod∞, nikoliv k cen∞. KritΘria, kterφ musφ spl≥ovat svobodnß p°φruΦka, jsou prakticky toto╛nß s kritΘrii pro svobodn² software: jednß se o poskytnutφ urΦit²ch svobod v╣em u╛ivatel∙m. Musφ b²t povolena redistribuce (vΦetn∞ komerΦnφho prodeje), a to jak v on-line, tak v ti╣t∞nΘ podob∞, aby manußl mohl doprovßzet ka╛dou kopii programu.
Povolenφ k modifikaci je rovn∞╛ rozhodujφcφ. Nev∞°φm ale tomu, ╛e je pro lidi nezbytnΘ mφt povolenφ k modifikaci v╣ech druh∙ Φlßnk∙ a knih. Myslφm si nap°φklad, ╛e vy nebo jß smφme omezovat modifikaci Φlßnk∙ jako je tento, kde se popisujφ na╣e Φiny a nßzory.
Je zde ov╣em zvlß╣tnφ d∙vod, proΦ je svoboda modifikace rozhodujφcφ pro dokumentaci svobodnΘho software. Pokud lidΘ uplatnφ svß prßva modifikovat software a p°idßvat nebo m∞nit jeho Φßsti, jsou-li sv∞domitφ, zm∞nφ takΘ p°φruΦku -- aby poskytli p°esnou a pou╛itelnou dokumentaci spolu s modifikovan²m programem. P°φruΦka, kterß programßtor∙m nedovoluje sv∞domit∞ dokonΦit prßci, nespl≥uje pot°eby komunity.
N∞kterß omezenφ modifikacφ jsou p°edklßdßna tak, aby nezp∙sobovala potφ╛e. Nap°φklad po╛adavky na zachovßnφ originßlnφho autorskΘ copyrightovΘ poznßmky, distribuΦnφ podmφnky nebo seznam autor∙ jsou v po°ßdku. Nenφ problΘmem po╛adovat, aby modifikovanΘ verze v sob∞ zahrnovaly poznßmku o svΘ modifikaci, vΦetn∞ oznaΦenφ Φßstφ, kterΘ byly smazßny Φi zm∞n∞ny, dokud tyto oddφly pojednßvajφ o netechnick²ch tΘmatech. Tato omezenφ nep°edstavujφ ╛ßdnou potφ╛, proto╛e neznemo╛≥ujφ sv∞domitΘmu programßtorovi p°izp∙sobenφ p°φruΦky tak, aby se hodila k modifikovanΘmu programu. Jin²mi slovy, neznemo╛≥ujφ komunit∞ svobodnΘho software pln∞ vyu╛φvat manußl.
NicmΘn∞ musφ b²t mo╛nΘ modifikovat ve╣ker² *technick²* obsah manußlu a poslΘze redistribuovat v²sledky p°es b∞╛nß mΘdia, p°es v╣echny b∞╛nΘ kanßly; jinak jsou toti╛ omezenφ komunit∞ na obtφ╛, manußl nenφ svobodn² a je pot°eba vytvo°it jin².
Budou v²vojß°i svobodnΘho software odhodlanφ vytvß°et ╣irokou ╣kßlu svobodn²ch p°φruΦek? Op∞t, na╣e budoucnost zßvisφ na na╣φ filozofii.
V dne╣nφ dob∞ je p°ibli╛n∞ deset mili≤n∙ u╛ivatel∙ na systΘmech GNU/Linux jako nap°φklad Debian GNU/Linux a Red Hat Linux. Svobodn² software vyvinul n∞kolik praktick²ch v²hod, tak╛e k n∞mu u╛ivatelΘ p°echßzejφ ji╛ i z Φist∞ praktick²ch d∙vod∙.
DobrΘ nßsledky jsou z°ejmΘ: v∞t╣φ zßjem o rozvoj svobodnΘho software, vφce zßkaznφk∙ pro obchod se svobodn²m software a v∞t╣φ schopnosti povzbuzovat spoleΦnosti, aby namφsto proprietßrnφch produkt∙ vyvφjely komerΦnφ svobodn² software.
Zßjem o software v╣ak nar∙stß rychleji ne╛ pov∞domφ o filozofii, na nφ╛ je postaven, a to vede k potφ╛φm. Na╣e schopnost st°etßvat se s v²╣e popsan²mi v²zvami a nebezpeΦφmi zßvisφ na v∙li pevn∞ hßjit svobodu. Abychom se ujistili, ╛e na╣e komunita tuto v∙li mß, musφme p°edßvat na╣e my╣lenky a nßpady v╣em nov∞ p°φchozφm Φlen∙m v na╣φ komunit∞.
Bohu╛el v╣ak v tomto selhßvßme: ·silφ p°ilßkat do na╣φ komunity novΘ u╛ivatele dalece p°edstihuje ·silφ nauΦit je chovßnφ na╣φ komunity. Pot°ebujeme d∞lat obojφ a udr╛et tato ·silφ v rovnovßze. [Proto takΘ vznikl tento p°eklad. Zmi≥te se o ΦeskΘm p°ekladu strßnek projektu GNU kamarßd∙m a koleg∙m, a╗ se takΘ dozvφ o na╣φ komunit∞ -- pozn. korek.]
UΦenφ nov²ch u╛ivatel∙ o svobod∞ se ztφ╛ilo v roce 1998, kdy se Φßst komunity rozhodla p°estat pou╛φvat termφn ,,svobodn² software'' a namφsto toho u╛φvat termφn ,,open source software''.
N∞kte°φ z t∞ch, co up°ednost≥ovali tento v²raz, si dßvali pozor, aby nezam∞≥ovali slovo ,,svobodn²'' se slovem ,,zdarma'' -- sprßvn² zßm∞r. Jinφ se naopak distancovali od ducha principu, je╛ motivoval hnutφ svobodnΘho software a u╛ivatele GNU projektu, a aby se zalφbili °φdφcφm pracovnφk∙m a obchodnφm u╛ivatel∙m, mnoho z nich nßsledovalo ideologii, kterß stavφ prosp∞ch nad svobodu, nad komunitu, nad principy. RΘtorika ,,open source'' se zam∞°uje na mo╛nost vytvß°et vysoce kvalitnφ, siln² software, ale vyh²bß se my╣lenkßm svobody, komunity a principu.
Jasn²m p°φkladem tohoto jsou ,,linuxovΘ'' magazφny -- jsou plnΘ inzerßt∙ na proprietßrnφ software, kter² pracuje pod GNU/Linuxem. A╛ se objevφ p°φ╣tφ Motif Φi Qt, budou tyto magazφny p°ed nimi programßtory varovat, nebo na n∞ naopak otiskovat inzerßty?
Podpora obchodu m∙╛e b²t pro komunity v mnoha ohledech p°φnosnß. Ov╣em zφskßnφ jejich podpory tφm, ╛e budeme mluvit je╣t∞ mΘn∞ o svobod∞ a principu, m∙╛e b²t katastrofßlnφ; p°edchozφ nevyvß╛enost mezi rozsahem u╛ivatel∙ a vzd∞lßnφm se tak je╣t∞ zhor╣uje.
,,Svobodn² software'' a ,,open source'' popisujφ vφcemΘn∞ tutΘ╛ kategorii software, ale °φkajφ odli╣nΘ v∞ci o software a o hodnotßch. GNU projekt pokraΦuje v u╛φvßnφ termφnu ,,svobodn² software'', aby dal najevo, ╛e nejen technologie, ale hlavn∞ svoboda je d∙le╛itß.
Yodova filozofie (Neexistuje ,,pokus'') znφ hezky, ale pro m∞ je neplatnß. V∞t╣inu svΘ prßce jsem d∞lal s ·zkostφ, zda na nφ mßm a v nejistot∞, zda dosßhnu cφle, kter² jsem si vytyΦil. P°esto jsem se pokusil, proto╛e mezi m²m m∞stem a nep°φtelem nebyl nikdo jin² ne╛ jß. Ke svΘmu p°ekvapenφ jsem obΦas usp∞l.
ObΦas jsem neusp∞l; n∞kterΘ z m²ch m∞st padly. PotΘ jsem na╣el dal╣φ ohro╛enΘ m∞sto a p°ipravil se na bitvu. Po Φase jsem se nauΦil vyhledßvat hrozby a stav∞t se mezi n∞ a mΘ m∞sto, vyz²vaje ostatnφ hackery, aby p°i╣li a p°ipojili se ke mn∞.
Nynφ ji╛ Φasto nejsem jedin². Je to pro m∞ ·leva a radost, kdy╛ vidφm zßstupy hacker∙, kte°φ se pou╣t∞jφ do tΘho╛, aby pokraΦovali, a uv∞domuji si, ╛e by toto m∞sto mohlo p°e╛φt -- nynφ. NebezpeΦφ jsou v╣ak rok od roku v∞t╣φ a nynφ se Microsoft explicitn∞ zam∞°il na na╣i komunitu. Nem∙╛eme poklßdat budoucnost svobody za samoz°ejmou. Neberte to jako samoz°ejmost! Jestli╛e si chcete udr╛et va╣i svobodu, musφte b²t p°ipraveni ji brßnit.
FSF & GNU informace & otßzky na gnu@gnu.org. Dal╣φ mo╛nost jak kontaktovat FSF.
Komentß°e k t∞mto web strßnkßm na webmasters@www.gnu.org, jinΘ otßzky zasφlejte na gnu@gnu.org.
Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA
DoslovnΘ kopφrovßnφ a ╣φ°enφ tohoto celΘho dokumentu na jakΘmkoliv mΘdiu je dovoleno v p°φpad∞, ╛e tato podmφnka bude zachovßna.
Updated: $Date: 2001/10/01 20:30:42 $ $Author: Sisao $