Ideológia slobodného softvéru a projekt GNU: Súčasný stav a okamžité výzvy.

Poplatky príjem

Chyba Lua v Module:Wikidata na riadku 170: pokus o indexovanie poľa „wikibase“ (nulová hodnota).

dary

Chyba Lua v Module:Wikidata na riadku 170: pokus o indexovanie poľa „wikibase“ (nulová hodnota).

Počet dobrovoľníkov

Chyba Lua v Module:Wikidata na riadku 170: pokus o indexovanie poľa „wikibase“ (nulová hodnota).

Počet zamestnancov

Chyba Lua v Module:Wikidata na riadku 170: pokus o indexovanie poľa „wikibase“ (nulová hodnota).

Počet členov

Chyba Lua v Module:Wikidata na riadku 170: pokus o indexovanie poľa „wikibase“ (nulová hodnota).

Dcérske spoločnosti

Chyba Lua v Module:Wikidata na riadku 170: pokus o indexovanie poľa „wikibase“ (nulová hodnota).

vlastné

Chyba Lua v Module:Wikidata na riadku 170: pokus o indexovanie poľa „wikibase“ (nulová hodnota).

slogan

Chyba Lua v Module:Wikidata na riadku 170: pokus o indexovanie poľa „wikibase“ (nulová hodnota).

webové stránky

Chyba Lua v Module:Wikidata na riadku 170: pokus o indexovanie poľa „wikibase“ (nulová hodnota).

Dátum likvidácie

Chyba Lua v Module:Wikidata na riadku 170: pokus o indexovanie poľa „wikibase“ (nulová hodnota).

Súčasná práca projektu GNU zahŕňa vývoj softvéru, zvyšovanie povedomia, politické kampane a distribúciu nových materiálov.

Pôvod projektu

Keď projekt prvýkrát začal,...

  • Asteroid je pomenovaný podľa projektu GNU - (9965) GNU.

pozri tiež

Napíšte recenziu na "Projekt GNU"

Poznámky

Odkazy

  • (anglicky) - oficiálna stránka projektu GNU

Výňatok charakterizujúci projekt GNU

- Klamstvá, vražda, zrada ... Nemáte také slová? ..
- Bolo to dávno... už si nikto nepamätá. Iba ja. Ale vieme, čo to bolo. Toto je zakorenené v našej „dávnej pamäti“, na ktorú nikdy nezabudneme. Prišiel si odtiaľ, kde žije zlo?
Smutne som prikývol. Bolo mi veľmi ľúto mojej rodnej Zeme a toho, že život na nej bol tak divoko nedokonalý, že ma to prinútilo klásť si takéto otázky... Ale zároveň som si veľmi želal, aby Zlo navždy opustilo náš dom, pretože Miloval som tento dom z celého srdca a veľmi často som sníval, že raz príde taký nádherný deň, keď:
človek sa bude usmievať s radosťou, vediac, že ​​ľudia mu môžu priniesť len dobré ...
keď sa osamelé dievča nebojí prejsť večer najtemnejšou ulicou a nebojí sa, že ju niekto urazí...
keď môžeš otvoriť svoje srdce s radosťou, bez strachu, že ťa tvoj najlepší priateľ zradí...
keď bude možné nechať niečo veľmi drahé priamo na ulici a nebojte sa, že ak sa odvrátite - a okamžite vám to ukradnú ...
A úprimne, z celého srdca som veril, že niekde naozaj existuje taký úžasný svet, kde nie je zlo a strach, ale je tu jednoduchá radosť zo života a krásy... Preto som, kráčajúc za svojim naivným snom, využil najmenšiu príležitosť dozvedieť sa aspoň niečo o tom, ako je možné zničiť toto isté, také húževnaté a také nezničiteľné, naše pozemské Zlo... A ešte niečo - aby sa nikdy nehanbilo niekomu niekde povedať, že Som Človek...
Samozrejme, boli to naivné detské sny... Ale vtedy som bol ešte len dieťa.
– Volám sa Atis, Svetlana Man. Žijem tu od samého začiatku, videl som zlo... Veľa zla...
– A ako si sa ho zbavil, múdry Hatis?! Pomohol ti niekto? .. - spýtal som sa s nádejou. - Môžete nám pomôcť? .. Poraďte aspoň?
- Našli sme dôvod... A zabili sme to. Ale tvoje zlo je mimo našej kontroly. Je to iné... Rovnako ako ostatní a vy. A nie vždy dobro niekoho iného môže byť dobré pre vás. Musíte nájsť svoj vlastný dôvod. A znič ju, - jemne mi položil ruku na hlavu a vlial sa do mňa úžasný pokoj ... - Zbohom, Ľudka Svetlana ... Na svoju otázku nájdeš odpoveď. Odpočívaj ti...
Stál som hlboko v myšlienkach a nevenoval som pozornosť tomu, že realita okolo mňa sa už dávno zmenila a namiesto zvláštneho, priehľadného mesta sme sa teraz „vznášali“ na hustej fialovej „vode“ na nejakom nezvyčajnom, ploché a priehľadné zariadenie, na ktorom neboli žiadne rukoväte, žiadne veslá – vôbec nič, akoby sme stáli na veľkom, tenkom, pohyblivom priehľadnom skle. Hoci nebolo cítiť vôbec žiadny pohyb ani nadhodenie. Kĺzal po povrchu prekvapivo hladko a pokojne, takže ste zabudli, že sa vôbec pohyboval ...
– Čo je?... Kde sa plavíme? spýtal som sa prekvapene.
"Vyzdvihnúť svojho malého priateľa," pokojne odpovedala Veya.
- Ale ako?!. Ona nemôže...
- Bude schopný. Má rovnaký kryštál ako ty, znela odpoveď. - Stretneme sa s ňou na "moste", - a bez toho, aby čokoľvek vysvetlila, čoskoro zastavila našu čudnú "čln".
Teraz sme už stáli na úpätí nejakej brilantnej „vyleštenej“ čiernej ako nočná stena, ktorá sa výrazne líšila od všetkého svetlého a trblietavého naokolo a zdala sa byť umelo vytvorená a cudzia. Zrazu sa stena „rozdelila“, akoby na tom mieste pozostávala z hustej hmly a v zlatom „kukle“ sa objavila ... Stella. Svieža a zdravá, ako keby sa práve vybrala na príjemnú prechádzku... A, samozrejme, mala veľkú radosť z toho, čo sa deje... Keď ma uvidela, jej pekná tvár sa šťastne rozžiarila a zo zvyku okamžite štebotal:
– Aj ty si tu?!... Ach, ako dobre!!! A ja som mal taký strach! .. taký strach! .. Myslel som, že sa ti niečo muselo stať. Ale ako si sa sem dostal? .. - dieťa na mňa v nemom úžase hľadelo.

HLAVNÉ ŠTANDARDY

UNIX dodávaný výrobcami počítačov

Auto Operačný systém "originál"
Ne 1,2,10,... SunOS 4.1.2 BSD 4.3
Slnko 10,20,1000 SunOS 5.5 SVR4.0
IBM RS/6000 AIX SV 3.2
HP Apollo 900 HP/UX 10 BSD 4.2 a SV 3.2
Sekvenčný Dynix SW 4.0
Motorola 922 SVR4/88 SVR4.0
Besta-88 bestix SV 3.1
DEC Ultrix BSD 4.2
DEC Alpha AXP OSF/1 BSD 4.3
Silikónová grafika SGCS IRIX 6.0

Výberom platformy s ňou automaticky získame „jeho vlastný“ UNIX. Možno z hľadiska pohodlia a integrity užívateľského a administrátorského prostredia je z nich najpríjemnejší AIX. A najbežnejší je Solaris 2.5 (samozrejme).

Bol to nástup komerčných implementácií Unixu, ktorý viedol k takzvaným Unixovým vojnám. Každá z firiem v snahe dosiahnuť prevahu na trhu zaradila do svojho systému niektoré funkcie, vlastné vylepšenia a vylepšenia, niekedy dokonca s priamym cieľom izolovať svoj systém od ostatných na trhu. Firmy-vývojári v snahe získať výhodu nad konkurentmi urobili zmeny aj v Prgramovacie prostredie aplikácií(API- Applications Programmer "s Interface), - špecifikácia súboru funkcií, ktoré musia vývojári softvéru dodržiavať, aby boli ich programy kompatibilné s operačným systémom. To ešte viac zvýšilo nekompatibilitu rôznych verzií Unixu a viedlo k nekompatibilite softvéru vyvinutého spoločnosťou rôznych (vrátane nezávislých) dodávateľov.

Oveľa horším dôsledkom vojen medzi rôznymi verziami Unixu však bolo, že sa zastavila bezplatná výmena zdrojového kódu, ktorá pomáhala rýchlemu zlepšovaniu Unixu v počiatočných fázach jeho vývoja. Spoločnosť AT&T, ktorá nepoznala iný model profitovania zo softvéru okrem jeho utajovania a úplnej kontroly nad vývojom komerčného produktu, striktne zakázala distribúciu zdrojových kódov. Len málo ľudí priťahovala hrozba právnych krokov za nelegálnu distribúciu pások Unix. Prílev nových nápadov z univerzít vyschol.

Na prekonanie tohto problému sa uskutočnilo niekoľko pokusov o štandardizáciu Unixu.

Prvé seriózne úsilie o štandardizáciu verzií API (programovacieho rozhrania) vyvinutého pre System V a Berkeley urobila v roku 1983 iniciatívna skupina s názvom /usr/group. S rastúcim počtom verzií operačného systému však účinnosť štandardu klesala a o rok neskôr, v roku 1985, bol vytvorený štandard POSIX (Portable Operating System Interface for Computing Environment).



V roku 1988 bol vyvinutý štandard POSIX 1003.1-1988, ktorý definoval aplikačné programovacie rozhranie. Tento štandard našiel široké uplatnenie v mnohých operačných systémoch, vrátane architektúr iných ako UNIX. O dva roky neskôr bol štandard prijatý ako štandard IEEE (Inštitút elektrických a elektronických inžinierov, stále existujúci) IEEE 1003.1-1990. Štandard definuje iba rozhranie a napr konkrétnu organizáciu, takže nerozlišuje medzi systémovými volaniami a funkciami knižnice, pričom všetky prvky API volá len funkcie.

Všetky neskoršie štandardy Unixu zahŕňajú POSIX a všetky nasledujúce verzie Unixu dodržiavajú tento štandard. Jediným veľkým doplnkom, ktorý sa neskôr objavil v jadre Unixu, boli sockety, ktoré pochádzali z BSD.

Nezisková organizácia – konzorcium X / Open (neskôr Open Group), vytvorené v roku 1984 niekoľkými európskymi spoločnosťami, sa ujala vývoja spoločnej sady rozhraní operačného systému, na ktorej sa dohodli rôzni výrobcovia, a vytvorila skutočne otvorené systémy, pre ktoré by boli náklady na prenositeľnosť aplikácie minimálne.

V roku 1992 sa objavil dokument známy ako X/OpenPortability Guide verzia 3 (XPG3), ktorý obsahoval POSIX 1003.1-1988 a štandard pre grafický systém X Windows System vyvinutý na Massachusetts Institute of Technology (USA). V roku 1994 - XPG4.2.

V roku 1996 spojenie X/Open a OSF viedlo k vytvoreniu konzorcia The Open Group, ktoré pokračovalo vo vývoji v oblasti otvorených systémov, napríklad v ďalšom vývoji používateľského rozhrania Common Desktop Environment, rozhraní pre Distributed Computing Environment. - DCE atď.

(Americký národný inštitút pre normalizáciu)

V roku 1989 americký národný inštitút pre štandardy schválil štandard X3.159-1989 pre programovací jazyk C. Štandard definuje syntax, sémantiku a obsah štandardnej knižnice.

GNU je združenie vývojárov, ktorí vytvárajú slobodný softvér každého druhu.

GNU je projekt, ktorý vytvoril množstvo slobodného softvéru ako súčasť open source stratégie.

Zároveň tieto programy dokážu všetko od práce so súbormi až po spracovanie textu a kompilátor gcc (GNU C) je jedným z najspoľahlivejších a najefektívnejších kompilátorov pre UNIX. To umožňuje vybaviť takmer každý operačný systém podobný UNIXu slobodným softvérom.

Čo je GNU/Linux?

Keďže Linux je len jadro, tento druh vybavenia je nevyhnutný. Jadro má na starosti prácu s pamäťou, diskami, internými zariadeniami, no napríklad nemá textový editor. Ale môže spustiť iné programy. Preto pridanie bezplatného jadra so sadou bezplatných programov vyzerá veľmi prirodzene. Výsledkom je tandem GNU/Linux.

"Skratka GNU znamená "GNU is not UNIX" (GNU - Not UNIX). Hlavnou myšlienkou vývoja systému GNU je jeho úplný rozdiel z UNIX. UNIX vždy bol a zostáva proprietárnym softvérom, čo znamená, že zbavuje svojich používateľov slobody spolupráce, ako aj kontroly nad ich počítačmi. Aby sme mohli byť komunitou, ktorá slobodne používa svoje vlastné počítače, potrebovali sme bezplatný operačný systém. Nemali sme dosť peňazí na nákup a uvoľnenie niektorého z existujúcich systémov, ale mali sme dostatok vedomostí a zručností na vytvorenie nového. Vytvorenie GNU bolo obrovským počinom. Dokázali sme to v mene našej aj vašej slobody."

V roku 1985 R. Stallman napísal svoj slávny GNU Manifesto (bol publikovaný v marci 1985 v časopise Dr. Dobb's Journal) a založil Free Software Foundation (FSF) - charitatívnu nadáciu pre vývoj slobodného softvéru, ktorá distribuuje pásky Emacs a neskôr distribúciou iného slobodného softvéru (z projektu GNU aj mimo neho) a predajom ich manuálov, ktoré poskytli prostriedky na vývoj projektu GNU. FSF prijímala dary, ale väčšina príjmov vždy pochádzala z predaja kópií slobodného softvéru a súvisiacich služieb.

Vývoj slobodného softvéru bol veľmi dôležitým krokom, ale ešte väčšia zásluha R.Stallmana by mala byť uznaná za vytvorenie GNU General Public License (GPL). Rôzni autori prekladajú tento názov do ruštiny rôznymi spôsobmi - univerzálna verejná licencia, všeobecná verejná licencia atď. Ale to sa považuje za to Platná je iba anglická verzia tejto licencie. Hlavnou myšlienkou GPL je, že používateľ musí mať nasledujúce štyri práva (alebo štyri slobody):

Právo spustiť program na akýkoľvek účel (sloboda 0)

· Právo študovať štruktúru programu a prispôsobiť ju svojim potrebám (sloboda 1), čo zahŕňa prístup k zdrojovému kódu programu.

· Právo na distribúciu programu a zároveň možnosť pomáhať druhým (sloboda 2).

· Právo na zlepšovanie programu a zverejňovanie vylepšení v prospech celej komunity (sloboda 3), čo zahŕňa aj prístup k zdrojovému kódu programu.

Upravené (alebo neupravené) verzie môžete používať, kopírovať, upravovať, upravovať, prenášať alebo predávať iným akýmkoľvek spôsobom za predpokladu, že výsledok takéhoto spracovania je tiež distribuovaný na základe licencie GPL. Posledná podmienka je najdôležitejšia a definujúca v tejto licencii. Zabezpečuje, že výsledky úsilia vývojárov slobodného softvéru zostanú otvoreným zdrojom a nestanú sa súčasťou žiadneho konvenčne licencovaného produktu. Tiež odlišuje slobodný softvér od slobodného softvéru. Jednou z požiadaviek tejto licencie je, že keď predávate softvér pod GPL, musíte sprístupniť zdrojový kód tohto softvéru každému, kto k nemu chce mať prístup. Slovami tvorcov FSF, GPL "robí softvér slobodným a zaisťuje, že zostane zadarmo."

Hlavným účelom GPL je chrániť slobodný softvér pred „privatizáciou“. Malo by sa však poznamenať, že je navrhnutý tak, aby umožňoval všetky „spravodlivé“ spôsoby zarábania peňazí zo slobodného softvéru.Toto je veľmi dôležitý bod, ktorý si vyžaduje osobitnú pozornosť. Pri prvom predstavení GPL môže byť nesprávne pochopené, že táto licencia vo všeobecnosti zakazuje akýkoľvek spôsob zarábania peňazí na softvéri alebo jeho vývoji. V skutočnosti konkrétne GPL a FSF vo všeobecnosti priamo podnecujú podnikanie spojené s poskytovaním súvisiacich služieb – školenia, konzultácie a komerčná replikácia softvéru. To umožňuje pritiahnuť k spolupráci korporácie aj ľudí, pre ktorých je dôležitejší materiálny záujem ako morálne stimuly.

Pôvodne uverejnené v knihe otvorené zdroje. Richard Stallman bol, ale prispel týmto článkom, aby myšlienky hnutia slobodného softvéru v tejto knihe úplne nechýbali.

Prvá komunita na zdieľanie softvéru

Keď som v roku 1971 začal pracovať v laboratóriu umelej inteligencie MIT, stal som sa súčasťou komunity na zdieľanie softvéru, ktorá existovala už mnoho rokov. Zdieľanie softvéru nebolo obmedzené na našu konkrétnu komunitu; je stará ako počítače, rovnako ako zdieľanie receptov je staré ako varenie. Ale urobili sme to viac ako väčšina.

Laboratórium AI ​​používalo operačný systém na zdieľanie času s názvom ITS (Nekompatibilný systém zdieľania času), ktorý hackeri z laboratória (1) navrhli a napísali v jazyku assembler pre Digital PDP -10, jeden z veľkých počítačov tej doby. členom tejto komunity, hackerom systému zamestnancov AI Lab, bolo mojou úlohou vylepšiť tento systém.

Náš softvér sme nenazývali „slobodný softvér“, pretože tento výraz ešte neexistoval; ale tak to bolo. Kedykoľvek ľudia z inej univerzity alebo spoločnosti chceli preniesť a použiť program, radi im to dovolíme. Ak ste videli niekoho používať neznámy a zaujímavý program, vždy ste mohli požiadať o zobrazenie zdrojového kódu, aby ste si ho mohli prečítať, zmeniť alebo kanibalizovať jeho časti a vytvoriť nový program.

(1) Použitie výrazu „hacker“ vo význame „narušiteľ bezpečnosti“ je zmätok zo strany masmédií. My hackeri odmietame uznať tento význam a naďalej používame toto slovo na označenie niekoho, kto rád programuje, niekoho, kto má rád hravú šikovnosť alebo kombináciu oboch. Pozri môj článok O hackovaní.

Kolaps komunity

Situácia sa drasticky zmenila na začiatku osemdesiatych rokov, keď spoločnosť Digital ukončila sériu PDP-10. Jeho architektúra, elegantná a výkonná v 60. rokoch, sa nemohla prirodzene rozšíriť na väčšie adresné priestory, ktoré sa stávali realizovateľnými v 80. rokoch. To znamenalo, že takmer všetky programy tvoriace ITS boli zastarané.

Hackerská komunita AI ​​Lab už skolabovala, nie dlho predtým. V roku 1981 si spin-off spoločnosť Symbolics najala takmer všetkých hackerov z AI ​​Lab a vyľudnená komunita sa nedokázala udržať. (Kniha Hackers od Steva Levyho opisuje tieto udalosti a zároveň poskytuje jasný obraz o tejto komunite v jej najlepších rokoch.) Keď AI ​​Lab v roku 1982 kúpilo nový PDP-10, jeho správcovia sa rozhodli použiť neslobodné systém timesharing namiesto ITS.

Moderné počítače tej doby, ako napríklad VAX alebo 68020, mali svoje vlastné operačné systémy, ale žiadny z nich nebol slobodný softvér: museli ste podpísať zmluvu o mlčanlivosti, aj keď chcete získať spustiteľnú kópiu.

To znamenalo, že prvým krokom pri používaní počítača bolo sľúbiť, že nepomôžete svojmu blížnemu. Spolupracujúca komunita bola zakázaná. Majitelia proprietárneho softvéru zaviedli pravidlo: „Ak zdieľate so susedom, ste pirát. Ak chcete nejaké zmeny, požiadajte nás, aby sme ich urobili.“

Myšlienka, že proprietárny softvérový sociálny systém – systém, ktorý hovorí, že nemáte dovolené zdieľať alebo meniť softvér – je antisociálny, že je neetický, že je jednoducho nesprávny, môže byť pre niektorých čitateľov prekvapením. Čo by sme však ešte mohli povedať o systéme, ktorý je založený na rozdeľovaní verejnosti a udržiavaní používateľov bez pomoci? Čitatelia, ktorí považujú tento nápad za prekvapivý, mohli brať proprietárny softvérový sociálny systém ako samozrejmosť alebo ho posudzovať podľa podmienok navrhovaných podnikmi s proprietárnym softvérom. Vydavatelia softvéru dlho a tvrdo pracovali na tom, aby presvedčili ľudí, že existuje len jeden spôsob, ako sa na problém pozrieť.

Keď vydavatelia softvéru hovoria o „vynútení“ svojich „práv“ alebo „zastavení pirátstva“, čo vlastne povedať je sekundárny. Skutočné posolstvo týchto tvrdení je v nevyslovených domnienkach, ktoré považujú za samozrejmé, a verejnosť ich žiada, aby ich akceptovala bez skúmania. Poďme ich preto preskúmať.

Jedným z predpokladov je, že softvérové ​​spoločnosti majú nespochybniteľné prirodzené právo vlastniť softvér, a teda mať moc nad všetkými jeho používateľmi. (Ak by to bolo prirodzené právo, potom bez ohľadu na to, akú škodu to spôsobuje verejnosti, nemohli by sme namietať.) Je zaujímavé, že Ústava USA a právna tradícia tento názor odmieta; autorské právo nie je prirodzené právo, ale umelý vládou nariadený monopol, ktorý obmedzuje prirodzené právo používateľov na kopírovanie.

Ďalším nevysloveným predpokladom je, že jedinou dôležitou vecou na softvéri je to, aké úlohy vám umožňuje vykonávať – že nám používateľom počítačov by malo byť jedno, akú spoločnosť môžeme mať.

Tretím predpokladom je, že by sme nemali žiadny použiteľný softvér (alebo by sme nikdy nemali program na vykonanie tej či onej konkrétnej úlohy), ak by sme neponúkali spoločnosti moc nad používateľmi programu. Tento predpoklad sa mohol zdať pravdepodobný, kým hnutie za slobodný softvér neukázalo, že môžeme vytvoriť množstvo užitočného softvéru bez toho, aby sme naň kládli reťaze.

Ak odmietneme akceptovať tieto predpoklady a posúdime tieto problémy na základe bežnej morálky zdravého rozumu, pričom na prvé miesto umiestnime používateľov, dospejeme k veľmi odlišným záverom. Používatelia počítačov by mali mať možnosť voľne upravovať programy tak, aby vyhovovali ich potrebám, a slobodne zdieľať softvér, pretože pomáhať druhým je základom spoločnosti.

Prísna morálna voľba

Keďže moja komunita je preč, pokračovať ako predtým bolo nemožné. Namiesto toho som stál pred prísnou morálnou voľbou.

Jednoduchou voľbou bolo vstúpiť do sveta proprietárneho softvéru, podpísať zmluvy o mlčanlivosti a sľúbiť, že nepomôžem môjmu kolegovi hackerovi. S najväčšou pravdepodobnosťou by som tiež vyvíjal softvér, ktorý bol vydaný na základe dohôd o mlčanlivosti, čím by som zvýšil tlak na iných ľudí, aby tiež zradili svojich kolegov.

Mohol som si takto zarobiť peniaze a možno by som sa zabavil pri písaní kódu. Vedel som však, že na konci svojej kariéry sa pozriem späť na roky budovania múrov, aby som rozdelil ľudí, a mal som pocit, že som celý život robil tým, že som svet robil horším.

Už som zažil, keď som bol na prijímacej strane zmluvy o mlčanlivosti, keď mi a laboratóriu MIT AI Lab niekto odmietol poskytnúť zdrojový kód ovládacieho programu pre našu tlačiareň. (Nedostatok určitých funkcií v tomto programe spôsobil, že používanie tlačiarne bolo mimoriadne frustrujúce.) Takže som si nemohol povedať, že dohody o mlčanlivosti sú nevinné. Bol som veľmi nahnevaný, keď sa s nami odmietol podeliť; Nemohol som sa otočiť a urobiť to isté všetkým ostatným.

Ďalšou voľbou, priamočiarou, no nepríjemnou, bolo opustiť počítačové pole. Takto by sa moje schopnosti nezneužili, ale aj tak by boli premrhané. Nebol by som vinný za rozdeľovanie a obmedzovanie používateľov počítačov, ale aj tak by sa to stalo.

Hľadal som teda spôsob, ako by programátor mohol urobiť niečo pre dobro. Pýtal som sa sám seba, či existuje nejaký program alebo programy, ktoré by som mohol napísať, aby som znovu vytvoril komunitu?

Odpoveď bola jasná: čo bolo potrebné ako prvé, bol operačný systém. To je kľúčový softvér na začatie používania počítača. S operačným systémom môžete robiť veľa vecí; bez neho nemôžete počítač spustiť vôbec. S bezplatným operačným systémom by sme opäť mohli mať komunitu spolupracujúcich hackerov – a pozvať kohokoľvek, aby sa pridal. A ktokoľvek by mohol používať počítač bez toho, aby začal sprisahaním, aby pripravil svojich priateľov.

Ako vývojár operačného systému som mal na túto prácu tie správne schopnosti. Takže aj keď som nemohol považovať úspech za samozrejmosť, uvedomil som si, že som bol zvolený, aby som robil túto prácu. Rozhodol som sa vytvoriť systém kompatibilný s Unixom, aby bol prenosný a aby naň používatelia Unixu mohli ľahko prejsť. Názov GNU bol vybraný podľa hackerskej tradície ako rekurzívny akronym pre „GNU's Not Unix“. Vyslovuje sa ako jednoslabičné s tvrdým g.

Operačný systém neznamená len jadro, ktoré sotva stačí na spustenie iných programov. V sedemdesiatych rokoch minulého storočia každý operačný systém hodný tohto mena zahŕňal príkazové procesory, assemblery, kompilátory, tlmočníky, debuggery, textové editory, mailery a mnohé ďalšie. Mal ich ITS, mal ich Multics, mal ich VMS a mal ich Unix. Operačný systém GNU by ich tiež obsahoval.

Neskôr som počul tieto slová, pripisované Hillelovi (1):

Ak nebudem pre seba, kto bude pre mňa?
Ak som len pre seba, čo som?
Ak nie teraz, kedy?

V podobnom duchu sa nieslo aj rozhodnutie začať projekt GNU.

(1) Ako ateista nesledujem žiadnych náboženských vodcov, ale niekedy zisťujem, že obdivujem niečo, čo jeden z nich povedal.

Slobodne ako v slobode

Termín „slobodný softvér“ je niekedy nepochopený – nemá nič spoločné s cenou. Ide o slobodu. Tu je teda definícia slobodného softvéru.

Program je slobodný softvér pre vás, konkrétneho používateľa, ak:

  • Máte slobodu spustiť program podľa vlastného želania a na akýkoľvek účel.
  • Máte slobodu upraviť program tak, aby vyhovoval vašim potrebám. (Aby bola táto sloboda účinná v praxi, vy musieť mať prístup k zdrojovému kódu, pretože vykonávanie zmien v programe bez zdrojového kódu je mimoriadne ťažké.)
  • Máte slobodu redistribúciu kópií, či už zadarmo alebo za poplatok.
  • Máte slobodu distribuovať upravené verzie programu, aby mohla komunita profitovať z vašich vylepšení.

Keďže „zadarmo“ sa vzťahuje na slobodu, nie na cenu, neexistuje rozpor medzi predajom kópií a slobodným softvérom. V skutočnosti je sloboda predávať kópie kľúčová: zbierky slobodného softvéru predávané na CD-ROMoch sú pre komunitu dôležité a ich predaj je dôležitým spôsobom, ako získať prostriedky na vývoj slobodného softvéru. Preto program, ktorý ľudia nemôžu voľne zahrnúť do týchto zbierok, nie je slobodný softvér.

Kvôli nejednoznačnosti slova „zadarmo“ ľudia dlho hľadali alternatívy, ale nikto nenašiel lepší výraz. Anglický jazyk má viac slov a nuancií ako ktorýkoľvek iný, ale chýba mu jednoduché, jednoznačné slovo, ktoré znamená „slobodný“, ako v slobode – „nespútaný“ je slovo, ktoré sa významom najviac približuje. Alternatívy ako „oslobodený“, „sloboda“ a „otvorený“ majú buď nesprávny význam, alebo inú nevýhodu.

GNU softvér a systém GNU

Vývoj celého systému je veľmi rozsiahly projekt. Aby som to dosiahol, rozhodol som sa prispôsobiť a použiť existujúce časti slobodného softvéru všade, kde to bolo možné. Napríklad som sa hneď na začiatku rozhodol použiť TeX ako hlavný formátovač textu; o niekoľko rokov neskôr som sa rozhodol použiť X Window System namiesto písania ďalšieho okenného systému pre GNU.

Kvôli týmto rozhodnutiam a iným podobným nie je systém GNU rovnaký ako zbierka všetkého softvéru GNU. Systém GNU zahŕňa programy, ktoré nie sú softvérom GNU, programy, ktoré boli vyvinuté inými ľuďmi a projekty pre ich vlastné účely, ale ktoré môžeme použiť, pretože ide o slobodný softvér.

Spustenie projektu

V januári 1984 som dal výpoveď na MIT a začal som písať GNU softvér. Opustenie MIT bolo nevyhnutné, aby MIT nebolo schopné zasahovať do distribúcie GNU ako slobodného softvéru. Ak by som zostal medzi zamestnancami, MIT by mohol tvrdiť, že dielo vlastní, a mohol by si uložiť svoje vlastné podmienky distribúcie alebo dokonca premeniť dielo na proprietárny softvérový balík. Nemal som v úmysle urobiť veľké množstvo práce, len aby som videl, že sa to stane zbytočným na zamýšľaný účel: vytvorenie novej komunity na zdieľanie softvéru.

Profesor Winston, vtedajší vedúci laboratória MIT AI, ma však láskavo pozval, aby som naďalej používal zariadenia laboratória.

Prvé kroky

Krátko pred začatím projektu GNU som počul o súprave Free University Compiler Kit, známej aj ako VUCK. (Holandské slovo pre „zadarmo“ sa píše s a v.) Bol to kompilátor navrhnutý na prácu s viacerými jazykmi, vrátane C a Pascal, a na podporu viacerých cieľových počítačov. Napísal som jeho autorovi s otázkou, či ho GNU môže použiť.

Odpovedal posmešne a uviedol, že univerzita je bezplatná, ale kompilátor nie. Preto som sa rozhodol, že môj prvý program pre projekt GNU bude viacjazyčný, multiplatformový kompilátor.

V nádeji, že sa vyhnem potrebe písať celý kompilátor sám, získal som zdrojový kód pre kompilátor Pastel, čo bol multiplatformový kompilátor vyvinutý v Lawrence Livermore Lab. Podporoval a bol napísaný v rozšírenej verzii Pascalu, ktorá bola navrhnutá ako systémový programovací jazyk. Pridal som C frontend a začal som ho prenášať do počítača Motorola 68000. Ale musel som sa toho vzdať, keď som zistil, že kompilátor potrebuje veľa megabajtov zásobníkového priestoru a dostupný 68000 Unixový systém by umožnil len 64k.

Potom som si uvedomil, že kompilátor Pastel funguje tak, že analyzuje celý vstupný súbor do stromu syntaxe, konvertuje celý strom syntaxe na reťaz „inštrukcií“ a potom vygeneruje celý výstupný súbor bez toho, aby sa uvoľnilo akékoľvek úložisko. V tomto bode som dospel k záveru, že budem musieť napísať nový kompilátor od začiatku. Tento nový kompilátor je teraz známy ako GCC; nie je v ňom použitý žiadny kompilátor Pastel, ale podarilo sa mi prispôsobiť a použiť frontend C, ktorý som napísal. Ale to bolo o niekoľko rokov neskôr; najprv som pracoval na GNU Emacs.

GNU Emacs

Na GNU Emacs som začal pracovať v septembri 1984 a začiatkom roku 1985 začal byť použiteľný. To mi umožnilo začať používať systémy Unix na úpravy; Keďže som nemal záujem naučiť sa používať vi alebo ed, dovtedy som úpravy robil na iných typoch strojov.

V tomto bode ľudia začali chcieť používať GNU Emacs, čo vyvolalo otázku, ako ho distribuovať. Samozrejme som to dal na anonymný ftp server na počítači MIT, ktorý som použil. (Tento počítač, prep.ai.mit.edu, sa tak stal hlavnou distribúciou GNU ftp; keď bol o niekoľko rokov neskôr vyradený z prevádzky, preniesli sme názov na náš nový ftp server.) V tom čase však mnohí ľudia neboli na internete a nemohli získať kópiu cez ftp. Otázka teda znela, čo by som im povedal?

Mohol som povedať: „Nájdi priateľa, ktorý je na internete a ktorý ti urobí kópiu.“ Alebo som mohol urobiť to, čo som urobil s pôvodným Emacsom PDP-10: povedzte im: „Pošlite mi poštou pásku a SASE a ja to pošlem poštou späť s Emacsom.“ Nemal som však prácu a hľadal som spôsoby, ako zarobiť peniaze na slobodnom softvéri. Tak som oznámil, že pošlem pásku poštou každému, kto ju bude chcieť, za poplatok 150 dolárov. Týmto spôsobom som začal s distribúciou slobodného softvéru, predchodcu spoločností, ktoré dnes distribuujú celé systémové distribúcie GNU/Linux.

Je program zadarmo pre každého používateľa?

Ak je program slobodným softvérom, keď opustí ruky svojho autora, nemusí to nevyhnutne znamenať, že bude slobodným softvérom pre každého, kto má jeho kópiu. Napríklad softvér vo verejnej doméne (softvér, ktorý nie je chránený autorskými právami) je slobodný softvér; ale ktokoľvek môže vytvoriť vlastnú upravenú verziu. Podobne, mnohé bezplatné programy sú chránené autorskými právami, ale sú distribuované na základe jednoduchých povolených licencií, ktoré umožňujú proprietárne upravené verzie.

Paradigmatickým príkladom tohto problému je X Window System. Vyvinutý na MIT a vydaný ako slobodný softvér s povolenou licenciou, bol čoskoro prijatý rôznymi počítačovými spoločnosťami. Do svojich proprietárnych unixových systémov pridali X iba v binárnej forme a vzťahuje sa naň rovnaká dohoda o mlčanlivosti. Tieto kópie X neboli o nič viac slobodným softvérom ako Unix.

Vývojári X Window System to nepovažovali za problém – očakávali a zamýšľali, aby sa to stalo. Ich cieľom nebola sloboda, len „úspech“, definovaný ako „mať veľa používateľov“. Nezáležalo im na tom, či títo používatelia majú slobodu, iba na tom, aby ich bolo veľa.

To viedlo k paradoxnej situácii, keď dva rôzne spôsoby počítania množstva slobody poskytli rôzne odpovede na otázku: „Je tento program bezplatný? Ak by ste súdili na základe slobody poskytovanej distribučnými podmienkami vydania MIT, povedali by ste, že X bol slobodný softvér. Ak by ste však zmerali slobodu priemerného používateľa X, museli by ste povedať, že ide o proprietárny softvér. Väčšina používateľov X používala proprietárne verzie dodávané so systémami Unix, nie bezplatnú verziu.

Copyleft a GNU GPL

Cieľom GNU bolo poskytnúť používateľom slobodu, nielen byť populárny. Museli sme teda použiť distribučné podmienky, ktoré zabránia tomu, aby sa softvér GNU zmenil na proprietárny softvér. Metóda, ktorú používame, sa nazýva „copyleft“.(1)

Copyleft používa zákon o autorských právach, ale prevracia ho tak, aby slúžil opaku svojho obvyklého účelu: namiesto prostriedku na obmedzenie programu sa stáva prostriedkom na ponechanie programu voľný.

Ústrednou myšlienkou copyleftu je, že každému dávame povolenie spustiť program, kopírovať program, upravovať program a distribuovať upravené verzie – ale nie povolenie pridávať vlastné obmedzenia. Preto sú kľúčové slobody, ktoré definujú „slobodný softvér“, zaručené každému, kto má kópiu; stávajú sa neodňateľnými právami.

Pre efektívny copyleft musia byť aj upravené verzie bezplatné. To zaisťuje, že práca založená na našom bude dostupná našej komunite, ak bude zverejnená. Keď programátori, ktorí majú prácu ako programátori, dobrovoľne vylepšujú softvér GNU, je to copyleft, ktorý bráni ich zamestnávateľom povedať: „Nemôžete zdieľať tieto zmeny, pretože ich použijeme na vytvorenie našej vlastnej verzie programu.“

Požiadavka, že zmeny musia byť bezplatné, je nevyhnutná, ak chceme zabezpečiť slobodu pre každého používateľa programu. Spoločnosti, ktoré privatizovali X Window System, zvyčajne vykonali nejaké zmeny, aby ho preniesli do svojich systémov a hardvéru. Tieto zmeny boli malé v porovnaní s veľkým rozsahom X, ale neboli triviálne. Ak by vykonávanie zmien bolo zámienkou odoprieť používateľom slobodu, bolo by pre kohokoľvek ľahké túto výhovorku využiť.

Súvisiaci problém sa týka kombinácie bezplatného programu s neslobodným kódom. Takáto kombinácia by bola nevyhnutne neslobodná; ktorákoľvek sloboda, ktorá chýba neslobodnej časti, bude chýbať aj celku. Povoliť takéto kombinácie by otvorilo dostatočne veľkú dieru na potopenie lode. Preto kľúčovou požiadavkou pre copyleft je zapchať túto dieru: čokoľvek pridané alebo kombinované s copyleftovým programom musí byť také, aby väčšia kombinovaná verzia bola tiež bezplatná a copyleftovaná.

Špecifická implementácia copyleftu, ktorú používame pre väčšinu softvéru GNU, je GNU General Public License alebo skrátene GNU GPL. Máme aj iné druhy copyleftu, ktoré sa používajú za špecifických okolností. GNU manuály sú tiež copyleftované, ale používajú oveľa jednoduchší druh copyleftu, pretože zložitosť GNU GPL nie je pre manuály potrebná.(2)

(1) V roku 1984 alebo 1985 mi poslal list Don Hopkins (veľmi nápaditý chlapík). Na obálku napísal niekoľko zábavných výrokov vrátane tohto: „Copyleft – všetky práva obrátené.“ Použil som slovo „copyleft“ na pomenovanie konceptu distribúcie, ktorý som v tom čase vyvíjal.

Zamestnanci Free Software Foundation napísali a spravovali množstvo softvérových balíkov GNU. Dve pozoruhodné sú knižnica C a shell. Knižnica GNU C je to, čo používa každý program bežiaci na systéme GNU/Linux na komunikáciu s Linuxom. Bol vyvinutý členom tímu Free Software Foundation, Rolandom McGrathom. Shell používaný na väčšine systémov GNU/Linux je BASH, Bourne Again Shell(1), ktorý vyvinul zamestnanec FSF Brian Fox.

Financovali sme vývoj týchto programov, pretože projekt GNU nebol len o nástrojoch alebo vývojovom prostredí. Naším cieľom bol kompletný operačný systém a na tento cieľ boli potrebné tieto programy.

(1) „Bourne Again Shell“ je hra s názvom „Bourne Shell“, ktorý bol obvyklým shellom na Unixe.

Bezplatná softvérová podpora

Filozofia slobodného softvéru odmieta špecifickú rozšírenú obchodnú prax, ale nie je proti biznisu. Keď podniky rešpektujú slobodu používateľov, prajeme im úspech.

Predaj kópií Emacsu demonštruje jeden druh podnikania so slobodným softvérom. Keď FSF prevzal tento podnik, potreboval som iný spôsob, ako si zarobiť na živobytie. Našiel som to pri predaji služieb súvisiacich so slobodným softvérom, ktorý som vyvinul. Zahŕňalo to výučbu predmetov, ako napríklad ako programovať GNU Emacs a ako prispôsobiť GCC, a vývoj softvéru, väčšinou portovanie GCC na nové platformy.

Dnes každý z týchto druhov podnikania so slobodným softvérom vykonáva množstvo korporácií. Niektorí distribuujú zbierky slobodného softvéru na CD-ROM; iní predávajú podporu na úrovniach od odpovedí na otázky používateľov, cez opravu chýb až po pridávanie hlavných nových funkcií. Dokonca začíname vidieť spoločnosti so slobodným softvérom založené na uvádzaní nových produktov slobodného softvéru.

Dávajte si však pozor – množstvo spoločností, ktoré sa spájajú s pojmom „open source“, v skutočnosti zakladá svoje podnikanie na neslobodnom softvéri, ktorý funguje so slobodným softvérom. Toto nie sú spoločnosti poskytujúce slobodný softvér, sú to spoločnosti s proprietárnym softvérom, ktorých produkty odvádzajú používateľov od slobody. Tieto programy nazývajú „balíky s pridanou hodnotou“, čo ukazuje hodnoty, ktoré by sme chceli, aby sme prijali: pohodlie nad slobodou. Ak si viac vážime slobodu, mali by sme ich nazvať „balíčkami s odpočítaním slobody“.

technické ciele

Hlavným cieľom GNU je byť slobodným softvérom. Aj keby GNU nemala žiadnu technickú výhodu oproti Unixu, mala by sociálnu výhodu, ktorá by používateľom umožnila spolupracovať, a etickú výhodu rešpektujúcu slobodu používateľa.

Bolo však prirodzené aplikovať na prácu známe štandardy osvedčených postupov – napríklad dynamicky prideľovať dátové štruktúry, aby sa predišlo ľubovoľným limitom pevnej veľkosti, a manipulovať so všetkými možnými 8-bitovými kódmi všade tam, kde to dávalo zmysel.

Okrem toho sme odmietli zameranie Unixu na malú veľkosť pamäte tým, že sme sa rozhodli nepodporovať 16-bitové stroje (bolo jasné, že 32-bitové stroje budú štandardom v čase, keď bude systém GNU dokončený), a nevynaložiť žiadne úsilie znížiť využitie pamäte, pokiaľ nepresiahne megabajt. V programoch, pre ktoré nie je rozhodujúca manipulácia s veľmi veľkými súbormi, sme vyzvali programátorov, aby načítali celý vstupný súbor do jadra a potom skenovali jeho obsah bez toho, aby sa museli starať o I/O.

Tieto rozhodnutia umožnili mnohým programom GNU prekonať ich unixové náprotivky v spoľahlivosti a rýchlosti.

darované počítače

Ako rástla reputácia projektu GNU, ľudia začali ponúkať darovanie strojov s operačným systémom Unix do projektu. Boli to veľmi užitočné, pretože najjednoduchší spôsob, ako vyvinúť komponenty GNU, bolo urobiť to na systéme Unix a nahradiť komponenty tohto systému jedným. Ale vyvolali etický problém: či bolo správne, aby sme vôbec mali kópiu Unixu.

Unix bol (a je) proprietárny softvér a filozofia projektu GNU hovorila, že by sme nemali používať proprietárny softvér. Ale pri použití rovnakého uvažovania, ktoré vedie k záveru, že násilie v sebaobrane je oprávnené, som dospel k záveru, že používanie proprietárny balík, keď to bolo kľúčové pre vývoj bezplatnej náhrady, ktorá by pomohla ostatným prestať používať proprietárny balík.

Ale aj keby to bolo ospravedlniteľné zlo, stále to bolo zlo. Dnes už nemáme žiadne kópie Unixu, pretože sme ich nahradili bezplatnými operačnými systémami. Ak sme nemohli nahradiť operačný systém stroja bezplatným, vymenili sme namiesto toho stroj.

Zoznam úloh GNU

Ako projekt GNU pokračoval a bol nájdený alebo vyvíjaný stále väčší počet komponentov systému, nakoniec sa stalo užitočným vytvoriť zoznam zostávajúcich medzier. Použili sme to na nábor vývojárov, aby napísali chýbajúce časti. Tento zoznam sa stal známym ako zoznam úloh GNU. Okrem chýbajúcich unixových komponentov sme vymenovali rôzne ďalšie užitočné softvérové ​​a dokumentačné projekty, o ktorých sme si mysleli, že by mal mať skutočne kompletný systém.

Dnes (1) nezostali v zozname úloh GNU takmer žiadne unixové komponenty – tieto úlohy boli vykonané, okrem niekoľkých nepodstatných. Ale zoznam je plný projektov, ktoré by niektorí mohli nazvať „aplikácie“. Do operačného systému by bolo užitočné pridať akýkoľvek program, ktorý osloví viac ako úzku triedu používateľov.

Dokonca aj hry sú zahrnuté v zozname úloh - a boli od začiatku. Unix obsahoval hry, takže GNU by samozrejme mal tiež. Ale kompatibilita nebola problémom pre hry, takže sme sa neriadili zoznamom hier, ktoré mal Unix. Namiesto toho sme uviedli spektrum rôznych druhov hier, ktoré by sa používateľom mohli páčiť.

(1) Písal sa rok 1998. V roku 2009 už nemáme dlhý zoznam úloh. Komunita vyvíja slobodný softvér tak rýchlo, že ho ani nestíhame sledovať. Namiesto toho máme zoznam projektov s vysokou prioritou, oveľa kratší zoznam projektov, ktoré naozaj chceme povzbudiť ľudí, aby písali.

Knižnica GNU GPL

Knižnica GNU C používa špeciálny druh copyleftu nazývaný všeobecná verejná licencia knižnice GNU(1), ktorá dáva povolenie na prepojenie proprietárneho softvéru s knižnicou. Prečo urobiť túto výnimku?

Nejde o princíp; neexistuje žiadna zásada, ktorá hovorí, že proprietárne softvérové ​​produkty sú oprávnené zahrnúť náš kód. (Prečo prispievať do projektu, ktorý je založený na odmietnutí zdieľania s nami?) Používanie LGPL pre knižnicu C alebo pre akúkoľvek knižnicu je otázkou stratégie.

Knižnica C vykonáva všeobecnú prácu; každý proprietárny systém alebo kompilátor sa dodáva s knižnicou C. Preto sprístupnenie našej knižnice C iba slobodnému softvéru by neposkytlo slobodnému softvéru žiadnu výhodu – iba by to odradilo od používania našej knižnice.

Jeden systém je výnimkou: na systéme GNU (a to zahŕňa GNU/Linux) je knižnica GNU C jedinou knižnicou C. Takže distribučné podmienky knižnice GNU C určujú, či je možné zostaviť vlastný program pre systém GNU. Neexistuje žiadny etický dôvod na povolenie proprietárnych aplikácií v systéme GNU, ale strategicky sa zdá, že ich nepovolenie by viac odradilo od používania systému GNU, než aby podporilo vývoj bezplatných aplikácií. Preto je používanie knižnice GPL dobrou stratégiou pre knižnicu C.

V prípade iných knižníc je potrebné strategické rozhodnutie zvážiť od prípadu k prípadu. Keď knižnica vykoná špeciálnu prácu, ktorá môže pomôcť pri písaní určitých druhov programov, potom jej uvoľnenie pod GPL, ktoré ju obmedzí len na bezplatné programy, je spôsob, ako pomôcť iným vývojárom slobodného softvéru, čo im dáva výhodu oproti proprietárnemu softvéru.

Zvážte GNU Readline, knižnicu, ktorá bola vyvinutá na poskytovanie úprav v príkazovom riadku pre BASH. Readline je vydaný pod bežnou GNU GPL, nie Library GPL. To pravdepodobne znižuje množstvo použitého Readline, ale to nie je pre nás žiadna strata. Medzitým sa aspoň jedna užitočná aplikácia vytvorila ako bezplatný softvér, aby mohla používať Readline, a to je skutočný zisk pre komunitu.

Vývojári proprietárneho softvéru majú výhody, ktoré poskytujú peniaze; vývojári slobodného softvéru musia navzájom využívať výhody. Dúfam, že jedného dňa budeme mať veľkú zbierku knižníc pokrytých GPL, ktoré nemajú k dispozícii žiadnu paralelu s proprietárnym softvérom, poskytujúce užitočné moduly, ktoré budú slúžiť ako stavebné bloky v novom slobodnom softvéri, a pridávajú tak veľkú výhodu pre ďalší vývoj slobodného softvéru.

(1) Táto licencia sa teraz nazýva GNU Lesser General Public License, aby sa predišlo predstave, že by ju mali používať všetky knižnice. Viac informácií nájdete v časti Prečo by ste pre svoju ďalšiu knižnicu nemali používať Lesser GPL.

Škrabanie svrbenie?

Eric Raymond hovorí, že „každá dobrá práca so softvérom začína poškriabaním vývojárovho osobného svrbenia.“ Možno sa to niekedy stáva, ale veľa základných častí softvéru GNU bolo vyvinutých s cieľom získať kompletný bezplatný operačný systém.

Napríklad sme vyvinuli knižnicu GNU C, pretože systém podobný Unixu potrebuje knižnicu C, BASH, pretože systém podobný Unixu potrebuje shell a GNU tar, pretože systém podobný Unixu potrebuje program tar. To isté platí pre moje vlastné programy – kompilátor GNU C, GNU Emacs, GDB a GNU Make.

Niektoré programy GNU boli vyvinuté, aby sa vyrovnali so špecifickými hrozbami pre našu slobodu. Preto sme vyvinuli gzip, aby sme nahradili program Compress, ktorý komunita stratila kvôli patentom LZW. Našli sme ľudí, ktorí vyvinuli LessTif, a nedávno sme spustili GNOME a Harmony, aby riešili problémy spôsobené určitými proprietárnymi knižnicami (pozri nižšie). Vyvíjame GNU Privacy Guard, ktorý má nahradiť populárny neslobodný šifrovací softvér, pretože používatelia by si nemali vyberať medzi súkromím a slobodou.

Samozrejme, ľudia, ktorí tieto programy písali, sa o prácu začali zaujímať a mnoho funkcií im pridávali rôzni ľudia pre svoje potreby a záujmy. Ale to nie je dôvod, prečo programy existujú.

neočakávaný vývoj

Na začiatku projektu GNU som si predstavoval, že vyvinieme celý systém GNU a potom ho vydáme ako celok. Takto sa to nestalo.

Keďže každý komponent systému GNU bol implementovaný na systéme Unix, každý komponent mohol bežať na systémoch Unix dávno predtým, než existoval úplný systém GNU. Niektoré z týchto programov sa stali populárnymi a používatelia ich začali rozširovať a portovať – do rôznych nekompatibilných verzií Unixu a niekedy aj do iných systémov.

Tento proces urobil tieto programy oveľa výkonnejšími a pritiahol finančné prostriedky aj prispievateľov do projektu GNU. Ale pravdepodobne to tiež oneskorilo dokončenie minimálne fungujúceho systému o niekoľko rokov, pretože vývojári GNU venovali čas údržbe týchto portov a pridávaniu funkcií k existujúcim komponentom namiesto toho, aby pokračovali v písaní jedného chýbajúceho komponentu za druhým.

GNU Hurd

V roku 1990 bol systém GNU takmer dokončený; jedinou významnou chýbajúcou súčasťou bolo jadro. Rozhodli sme sa implementovať naše jadro ako kolekciu serverových procesov bežiacich nad Machom. Mach je mikrokernel vyvinutý na Carnegie Mellon University a potom na University of Utah; GNU Hurd je kolekcia serverov (t.j. stádo GNU), ktoré bežia nad Machom a vykonávajú rôzne úlohy unixového jadra. Začiatok vývoja bol oneskorený, pretože sme čakali, kým bude Mach uvoľnený ako slobodný softvér, ako bolo sľúbené.

Jedným z dôvodov výberu tohto dizajnu bolo vyhnúť sa tomu, čo sa zdalo byť najťažšou časťou práce: ladenie programu jadra bez ladiaceho nástroja na úrovni zdroja, ktorý by to urobil. Táto časť práce už bola vykonaná v Machu a očakávali sme odladenie serverov Hurd ako užívateľských programov pomocou GDB. Ale trvalo to dlho urob to a viacvláknové servery, ktoré si navzájom posielajú správy, sa ukázali ako veľmi ťažko laditeľné. Zabezpečiť, aby Hurd spoľahlivo fungoval, trvá mnoho rokov.

Alix

GNU jadro sa pôvodne nemalo volať Hurd. Jeho pôvodné meno bolo Alix – pomenované po žene, ktorá bola v tom čase mojou srdcovkou. Ona, správkyňa systému Unix, poukázala na to, ako by jej meno zodpovedalo bežnému vzoru pomenovaní pre verzie systému Unix; zo žartu povedala svojim priateľom: "Niekto by mal pomenovať jadro po mne." Nepovedal som nič, ale rozhodol som sa ju prekvapiť jadrom menom Alix.

Nezostalo to tak. Michael (teraz Thomas) Bushnell, hlavný vývojár jadra, uprednostnil názov Hurd a predefinoval Alix, aby odkazoval na určitú časť jadra – časť, ktorá zachytáva systémové volania a spracováva ich posielaním správ na servery Hurd.

Neskôr sme sa s Alix rozišli a ona si zmenila meno; nezávisle bol dizajn Hurd zmenený tak, aby knižnica C posielala správy priamo na servery, čo spôsobilo, že komponent Alix z dizajnu zmizol.

Ale predtým, ako sa tieto veci stali, jej kamarátka natrafila na meno Alix v zdrojovom kóde Hurda a spomenula jej to. Takže mala šancu nájsť jadro pomenované po nej.

Linux a GNU/Linux

GNU Hurd nie je vhodný na produkčné použitie a nevieme, či niekedy bude. Dizajn založený na schopnostiach má problémy, ktoré vyplývajú priamo z flexibility dizajnu, a nie je jasné, či existujú riešenia.

Našťastie je k dispozícii ďalšie jadro. V roku 1991 Linus Torvalds vyvinul jadro kompatibilné s Unixom a nazval ho Linux. Najprv bol proprietárny, ale v roku 1992 z neho urobil slobodný softvér; skombinovaním Linuxu s nie celkom kompletným systémom GNU vznikol kompletný bezplatný operačný systém. (Skombinovanie bolo samo o sebe podstatná práca, samozrejme.) Vďaka Linuxu môžeme dnes skutočne spustiť verziu systému GNU.

Výzvy v našej budúcnosti

Máme preukázanú schopnosť vyvíjať široké spektrum slobodného softvéru. To neznamená, že sme neporaziteľní a nezastaviteľní. Niekoľko výziev robí budúcnosť slobodného softvéru neistou; ich splnenie si bude vyžadovať vytrvalé úsilie a vytrvalosť, niekedy trvajúce roky. Bude si to vyžadovať odhodlanie, ktoré ľudia prejavujú, keď si vážia svoju slobodu a nenechajú si ju nikým vziať.

Nasledujúce štyri časti sa zaoberajú týmito výzvami.

tajný hardvér

Výrobcovia hardvéru majú čoraz väčšiu tendenciu udržiavať špecifikácie hardvéru v tajnosti. To sťažuje písanie bezplatných ovládačov, aby Linux a XFree86 mohli podporovať nový hardvér. Dnes máme kompletné bezplatné systémy, ale zajtra ich mať nebudeme, ak nebudeme môcť podporovať počítače zajtrajška.

Existujú dva spôsoby, ako sa s týmto problémom vyrovnať. Programátori môžu vykonať reverzné inžinierstvo, aby zistili, ako podporovať hardvér. My ostatní si môžeme vybrať hardvér, ktorý je podporovaný slobodným softvérom; Keď sa naše čísla zvýšia, utajenie špecifikácií sa stane samopoškodzujúcou politikou.

Spätné inžinierstvo je veľká práca; budeme mať programátorov dostatočne odhodlaných na to, aby to zvládli? Áno – ak sme si vybudovali silný pocit, že slobodný softvér je vecou princípu a neslobodné ovládače sú netolerovateľné. A bude veľké množstvo z nás míňať peniaze navyše alebo dokonca trochu času navyše, aby sme mohli používať bezplatné ovládače? Áno, ak je odhodlanie mať slobodu rozšírené.

(Poznámka z roku 2008: tento problém sa týka aj BIOSu. Existuje bezplatný BIOS, LibreBoot (distribúcia coreboot); problémom je získanie špecifikácií pre počítače, aby ich LibreBoot mohol podporovať bez neslobodných „blobov“.)

neslobodné knižnice

Neslobodná knižnica, ktorá beží na slobodných operačných systémoch, pôsobí ako pasca na vývojárov slobodného softvéru. Atraktívne funkcie knižnice sú návnadou; ak použijete knižnicu, padnete do pasce, pretože váš program nemôže byť užitočne súčasťou slobodného operačného systému. (Prísne povedané, mohli by sme zahrnúť váš program, ale vyhralo to. bežať s chýbajúcou knižnicou.) Ešte horšie je, ak sa program, ktorý používa proprietárnu knižnicu, stane populárnym, môže nalákať do pasce ďalších nič netušiacich programátorov.

Prvým prípadom tohto problému bola súprava nástrojov Motif v 80. rokoch. Hoci ešte neexistovali voľné operačné systémy, bolo jasné, aký problém im Motif neskôr spôsobí. Projekt GNU zareagoval dvoma spôsobmi: požiadaním jednotlivých projektov slobodného softvéru, aby podporovali bezplatné widgety X Toolkit, ako aj Motif, a tým, že požiadali niekoho, aby napísal bezplatnú náhradu za Motif. Práca trvala mnoho rokov; LessTif, ktorý vyvinuli Hungry Programmers, sa stal dostatočne výkonným na to, aby podporoval väčšinu aplikácií Motif až v roku 1997.

V rokoch 1996 až 1998 bola v rozsiahlej zbierke slobodného softvéru, desktopovom KDE, použitá ďalšia neslobodná knižnica GUI toolkit s názvom Qt.

Bezplatné systémy GNU/Linux nemohli používať KDE, pretože sme nemohli používať knižnicu. Avšak niektorí komerční distribútori systémov GNU/Linux, ktorí neboli striktní pri dodržiavaní slobodného softvéru, pridali do svojich systémov KDE – vytvorili systém s väčšími schopnosťami, ale menšou slobodou. Skupina KDE aktívne povzbudzovala viac programátorov, aby používali Qt, a milióny nových „používateľov Linuxu“ sa nikdy nestretli s myšlienkou, že je v tom problém. Situácia vyzerala pochmúrne.

Komunita slobodného softvéru reagovala na problém dvoma spôsobmi: GNOME a Harmony.

GNOME, GNU Network Object Model Environment, je desktopový projekt GNU. Spustil ho v roku 1997 Miguel de Icaza a vyvinul ho s podporou Red Hat Software. GNOME si stanovilo za cieľ poskytovať podobné desktopové zariadenia, ale výhradne s použitím bezplatného softvéru. aj výhody, ako napríklad podpora rôznych jazykov, nielen C++.

Harmony je kompatibilná náhradná knižnica navrhnutá tak, aby umožňovala spúšťať softvér KDE bez použitia Qt.

V novembri 1998 vývojári Qt oznámili zmenu licencie, ktorá, keď sa uskutoční, by mala z Qt urobiť slobodný softvér. Neexistuje žiadny spôsob, ako si byť istý, ale myslím si, že to bolo čiastočne kvôli pevnej reakcii komunity na problém, ktorý Qt predstavoval, keď nebolo slobodné. (Nová licencia je nepohodlná a nespravodlivá, takže zostáva žiaduce vyhnúť sa používaniu Kv.)

Ako zareagujeme na ďalšiu lákavú neslobodnú knižnicu? Pochopí celá komunita potrebu zostať mimo pasce? Alebo sa mnohí z nás vzdajú slobody kvôli pohodlnosti a spôsobia veľký problém? Naša budúcnosť závisí od našej filozofie.

Softvérové ​​patenty

Najhoršia hrozba, ktorej čelíme, pochádza zo softvérových patentov, ktoré môžu obmedziť algoritmy a funkcie pre slobodný softvér až na dvadsať rokov. Patenty na kompresný algoritmus LZW boli podané v roku 1983 a stále nemôžeme vydať slobodný softvér na výrobu správnych komprimovaných súborov GIF. V roku 1998 bol pod hrozbou patentového sporu stiahnutý z distribúcie bezplatný program na výrobu komprimovaného zvuku vo formáte MP3.

Existujú spôsoby, ako sa vyrovnať s patentmi: môžeme hľadať dôkazy, že patent je neplatný, a môžeme hľadať alternatívne spôsoby, ako vykonávať prácu. Ale každá z týchto metód funguje len niekedy; keď oboje zlyhá, patent môže prinútiť všetok slobodný softvér postrádať niektoré funkcie, ktoré používatelia požadujú. Po dlhom čakaní platnosť patentov vyprší (predpokladá sa, že platnosť patentov na MP3 vyprší do roku 2018), ale čo budeme dovtedy robiť?

Tí z nás, ktorí si cenia slobodný softvér kvôli slobode, aj tak zostanú pri slobodnom softvéri. Podarí sa nám urobiť prácu bez patentovaných funkcií. Ale tí, ktorí si cenia slobodný softvér, pretože očakávajú, že bude technicky lepší, ho pravdepodobne nazvú zlyhanie, keď ho brzdí patent.A tak hoci je užitočné hovoriť o praktickej efektívnosti „bazárového“ modelu vývoja a spoľahlivosti a sile niektorého slobodného softvéru, nesmieme sa zastaviť pri slobode a princípoch.

Bezplatná dokumentácia

Najväčší nedostatok našich bezplatných operačných systémov nie je v softvéri – je to nedostatok dobrých bezplatných príručiek, ktoré môžeme zahrnúť do našich systémov. Dokumentácia je nevyhnutnou súčasťou každého softvérového balíka; keď dôležitý balík slobodného softvéru neprichádza s dobrým bezplatným manuálom, je to veľká medzera. Dnes máme veľa takýchto medzier.

Bezplatná dokumentácia, podobne ako slobodný softvér, je otázkou slobody, nie ceny. Kritérium bezplatnej príručky je v podstate rovnaké ako pri slobodnom softvéri: ide o to, aby všetci používatelia mali určité slobody. Redistribúcia (vrátane komerčného predaja) musí byť povolená online a na papieri, aby manuál mohol sprevádzať každú kópiu programu.

Dôležité je aj povolenie na úpravu. Vo všeobecnosti si nemyslím, že je nevyhnutné, aby ľudia mali povolenie upravovať najrôznejšie články a knihy. Napríklad si nemyslím, že vy alebo ja sme povinní poskytnúť povolenie na úpravu článkov, ako je tento, ktoré popisujú naše činy a naše názory.

Existuje však osobitný dôvod, prečo je sloboda úprav kľúčová pre dokumentáciu k slobodnému softvéru. Keď ľudia uplatnia svoje právo na úpravu softvéru a pridanie alebo zmenu jeho funkcií, ak sú svedomití, zmenia aj príručku – aby mohli poskytnúť presnú a použiteľnú dokumentáciu s upraveným programom. Neslobodný manuál, ktorý neumožňuje programátorom byť svedomití a dokončiť prácu, nenapĺňa potreby našej komunity.

Niektoré druhy obmedzení spôsobu vykonávania úprav nepredstavujú žiadny problém. Napríklad požiadavky na zachovanie pôvodného autorského oznámenia o autorských právach, distribučných podmienok alebo zoznamu autorov sú v poriadku. Rovnako nie je problém požadovať, aby upravené verzie obsahovali upozornenie, že boli upravené, a to aj tak, aby mali celé sekcie, ktoré nemusia byť vymazané alebo zmenené, pokiaľ sa tieto časti zaoberajú netechnickými témami. Inými slovami, neblokujú komunitu slobodného softvéru v úplnom využívaní manuálu.

Musí byť však možné upraviť všetky technické obsah príručky a následne distribuovať výsledok vo všetkých obvyklých médiách prostredníctvom všetkých obvyklých kanálov; inak obmedzenia bránia komunite, príručka nie je zadarmo a potrebujeme ďalšiu príručku.

Budú mať vývojári slobodného softvéru povedomie a odhodlanie vytvoriť celé spektrum bezplatných príručiek? Naša budúcnosť opäť závisí od filozofie.

Musíme hovoriť o slobode

Dnes sa odhaduje, že existuje desať miliónov používateľov systémov GNU/Linux, ako sú Debian GNU/Linux a Red Hat „Linux“. Slobodný softvér vyvinul také praktické výhody, že sa k nemu používatelia hrnú z čisto praktických dôvodov.

Dobré dôsledky toho sú evidentné: väčší záujem o vývoj slobodného softvéru, viac zákazníkov pre podniky so slobodným softvérom a väčšia schopnosť povzbudzovať spoločnosti, aby vyvíjali komerčný slobodný softvér namiesto proprietárnych softvérových produktov.

Záujem o softvér však rastie rýchlejšie ako povedomie o filozofii, na ktorej je založený, a to vedie k problémom. Naša schopnosť čeliť výzvam a hrozbám uvedeným vyššie závisí od vôle postaviť sa pevne za slobodu. Aby sme sa uistili, že naša komunita bude mať túto vôľu, musíme túto myšlienku rozšíriť medzi nových používateľov, keď do komunity prídu.

Ale nedarí sa nám to: snahy prilákať nových používateľov do našej komunity ďaleko prevyšujú snahy naučiť ich občiansku náuku našej komunity. Musíme urobiť oboje a musíme udržať obe snahy v rovnováhe.

"open source"

Učenie nových používateľov o slobode sa stalo zložitejším v roku 1998, keď sa časť komunity rozhodla prestať používať termín „slobodný softvér“ a namiesto toho hovoriť „softvér s otvoreným zdrojom“.

Niektorí, ktorí uprednostňovali tento výraz, sa snažili vyhnúť zámene „zadarmo“ s „gratis“ – čo je platný cieľ. Iní však mali za cieľ odložiť ducha princípu, ktorý motivoval hnutie za slobodný softvér a projekt GNU, a namiesto toho apelovať na vedúcich pracovníkov a obchodných používateľov, z ktorých mnohí zastávajú ideológiu, ktorá stavia zisk nad slobodu, nad komunitu, nad. zásady. Rétorika „open source“ sa teda zameriava na potenciál vytvárať vysokokvalitný a výkonný softvér, ale vyhýba sa myšlienkam slobody, komunity a princípov.

Časopisy „Linux“ sú toho jasným príkladom – sú plné reklám na proprietárny softvér, ktorý pracuje s GNU/Linuxom. Keď sa objaví ďalší Motif alebo Qt, budú tieto časopisy varovať programátorov, aby sa od neho držali ďalej, alebo naň budú zobrazovať reklamy?

podpora podnikania môže prispieť ku komunite mnohými spôsobmi; ak je všetko ostatné rovnaké, je to užitočné. ale získať ich podporu tým, že budeme ešte menej hovoriť o slobode a princípoch, môže byť katastrofálne; ešte viac prehlbuje predchádzajúcu nerovnováhu medzi terénnou a občianskou výchovou.

„Slobodný softvér“ a „open source“ viac-menej opisujú rovnakú kategóriu softvéru, ale hovoria rôzne veci o softvéri ao hodnotách. Projekt GNU naďalej používa termín „slobodný softvér“ na vyjadrenie myšlienky, že dôležitá je sloboda, nielen technológia.

Skúste!

Yodov aforizmus („Neexistuje žiadny „skús“) znie úhľadne, ale pre mňa to nefunguje. Väčšinu svojej práce som urobil, keď som sa obával, či tú prácu zvládnem, a nie som si istý, či by to na dosiahnutie cieľa stačilo. Ale aj tak som to skúsil, pretože medzi nepriateľom a mojím mestom nebol nikto okrem mňa. Prekvapivo sa mi to niekedy podarilo.

Niekedy som zlyhal; niektoré z mojich miest padli. Potom som našiel ohrozené ďalšie mesto a pripravil som sa na ďalšiu bitku. Postupom času som sa naučil hľadať hrozby a postaviť sa medzi ne a moje mesto, vyzývajúc ostatných hackerov, aby sa pridali ku mne.

V súčasnosti často nie som jediný. Je to úľava a radosť, keď vidím pluk hackerov, ktorí sa snažia udržať líniu, a uvedomujem si, že toto mesto môže prežiť – zatiaľ. Ale každé nebezpečenstvo je väčšie. Spoločnosť Microsoft sa teraz výslovne zamerala na našu komunitu. Budúcnosť slobody nemôžeme považovať za samozrejmosť. Neber to ako samozrejmosť! Ak si chceš zachovať slobodu, musíš byť pripravený ju brániť.

TH.arial ( rodina fontov: Arial, Serif;) P.topic ( rodina fontov: sans-serif;) A.plain ( dekorácia textu: žiadna;) A.topic01 ( farba: #006890; rodina fontov: bezpätkové; ozdoba textu: žiadna;) A.topic02 ( farba: #099771; rodina písma: bezpätkové; ozdoba textu: žiadna;) pätka; ozdoba textu: žiadna;) A.topic04 ( farba: #98650A; rodina fontov: bezpätkové; zdobenie textu: žiadne;) zdobenie textu: žiadne;) A.topic06 ( farba: #099607; rodina fontov: sans-serif; zdobenie textu: žiadne;) A .topic07 ( farba: #9E1215; rodina písma: bezpätkové; ozdoba: žiadna;) A.topic08 ( farba: #970941; rodina písma: bezpätková; ozdoba textu: žiadna;) A.topic09 ( farba : #950995; rodina fontov: sans-serif; text-decoration: none;) A.topic010 ( farba: #390A98; font-family: sans-serif; text-decoration: none;) H1 ( font-family: sans -serif;) H2 ( rodina písiem: sans-serif;) H3 ( rodina písiem: sans-serif;) H4 ( rodina písiem: sans-serif f;) H5 ( rodina písiem: bezpätkové;) H6 ( rodina písiem: bezpätkové;)

Ideológia slobodného softvéru a projekt GNU: Súčasný stav a okamžité výzvy

S.D. Kuznecov

Free Software Foundation (FSF) je v dnešnom programátorskom svete veľmi zaujímavým a v mnohých smeroch výnimočným fenoménom. Mnoho domácich programátorov sa muselo vysporiadať s programami od FSF (známy je najmä programovací systém GCC), ale nedostatok publikácií v ruštine sťažuje pochopenie ideológie a cieľov FSF a tiež znemožňuje posúdiť existujúci nevybavených vecí. Účelom tohto krátkeho článku je aspoň čiastočne vyplniť túto medzeru. Článok je úplne založený na materiáloch FSF, a preto v súlade so všeobecnými zásadami tejto organizácie môže byť voľne pretlačovaný, kopírovaný alebo distribuovaný akýmkoľvek iným spôsobom (so zachovaním tejto poznámky).

1. Ideológia FSF a všeobecné ciele projektu GNU

FSF je programátorská organizácia založená a vedená Richardom Stallmanom. V najvšeobecnejšom kontexte je úlohou FSF odstrániť obmedzenia týkajúce sa kopírovania, distribúcie, štúdia a upravovania počítačových programov. Na dosiahnutie tohto spoločného cieľa FSF podporuje vývoj a používanie slobodného softvéru zameraného na širokú škálu aplikácií.

Vo svojom „Manifeste GNU“, napísanom v roku 1985, R. Stallman ako hlavnú myšlienku, ktorá viedla k vzniku FSF a projektu GNU, predkladá svoje odmietnutie vlastníctva softvéru. Zvláštnosti vzťahov v komunite programátorov často vedú k tomu, že ľudia sa rozhodnú nasledovať prirodzený pocit priateľstva a vzájomnej pomoci alebo podriadenosti, ktorá zasahuje do tohto vlastníckeho práva. So slobodným softvérom už táto náročná voľba nie je potrebná.

Vytvorením integrovaného slobodného softvérového systému sa vyhnete duplicitnej práci programátorov (čo je často potrebné len preto, že niekto vlastní softvér). Bezplatná distribúcia zdrojových kódov programov uľahčuje ich údržbu a prispôsobenie potrebám konkrétneho používateľa (nie je potrebné siahať len po službách spoločností, ktoré vlastnia licencie na zdrojové kódy). Existuje ďalšia a veľmi dôležitá príležitosť využiť dobrý softvér na vzdelávacie účely.

Podľa R. Stallmana programátori pri prechode na slobodný softvér nezomrú od hladu (aj keď zrejme zarobia o niečo menej). Obmedzenie kopírovania softvéru nie je jediným spôsobom, ako zarobiť peniaze. Hlavnou myšlienkou Stallmana je, že by ste nemali predávať programy, ale prácu programátora. Zdrojom príjmu môže byť najmä údržba softvérových systémov alebo ich konfigurácia na použitie na nových počítačoch a/alebo v nových podmienkach, výučba atď.

Stallmanov „Manifest“ je napísaný veľmi emotívne a miestami až príliš utopisticky. Napriek tomu sa zdá, že myšlienky slobodného softvéru sú historicky blízke tradičným (s výnimkou posledných rokov) postojom medzi sovietskymi programátormi. Možno práve línia FSF je najprirodzenejšou cestou k hlbokej integrácii domácich a svetových komunít programátorov.

Presnejšie povedané, FSF vyvíja programy v rámci projektu GNU (skratka GNU je rozšírená rekurzívne - GNU "s Not Unix). Cieľom projektu GNU je vytvoriť kompletný integrovaný softvérový systém, ktorý je kompatibilný s možnosťami prostredie Unix OS (možnosti programov GNU sú spravidla širšími možnosťami analógov prostredia Unix).

Softvér FSF je „zadarmo“ v dvoch významoch. Po prvé, akýkoľvek program je možné voľne kopírovať a prenášať na kohokoľvek. Po druhé, dostupnosť zdrojových kódov programov poskytuje možnosť bezplatného štúdia programov, ich vylepšovania a distribúcie upravených verzií.

Tak ako sú práva bežných softvérových spoločností chránené ich autorskými právami (copyright), „sloboda“ softvérových systémov FSF je chránená „copyleftom“ – kombináciou autorských práv a dokumentu s názvom „GNU General Public License“ prítomným vo všetkých textoch FSF. Tento dokument uvádza práva, ktoré má ktorýkoľvek súčasný vlastník tohto textu, a nemožnosť odobrať tieto práva akémukoľvek inému subjektu.

Hlavnou činnosťou FSF je vývoj nových komponentov slobodného softvéru v rámci projektu GNU. Projekt GNU sa z väčšej časti vyvíja plánovaným spôsobom (pozri najmä časť 3 tohto článku), ale FSF akceptuje na bezplatnú distribúciu aj programy vyvinuté firmami a jednotlivcami z vlastnej iniciatívy. Okrem toho FSF vyrába a predáva pásky so slobodným softvérom, pripravuje, publikuje a distribuuje manuály pre rôzne súčasti softvéru GNU a udržiava a distribuuje adresár služieb, zoznam firiem a jednotlivcov, ktorí poskytujú platené služby používateľom programov GNU a systémy..

Finančným základom FSF je predaj pások a dokumentácie, ako aj sponzorstvo komerčných firiem a jednotlivcov.

2. Dostupný softvér GNU

V súčasnosti nie sú pripravené všetky súčasti softvéru projektu GNU. FSF však distribuuje mnoho programov, z ktorých niektoré sú napísané priamo programátormi FSF a niektoré z nich darujú FSF na bezplatnú distribúciu inými organizáciami a jednotlivcami. Poďme si teraz v krátkosti vymenovať softvérové ​​produkty distribuované spoločnosťou FSF.

Emacs je rozšíriteľný, prispôsobiteľný editor pre rôzne typy terminálov a potreby používateľov. Rozšíriteľnosť editora je založená na použití tlmočníka jazyka Lisp zabudovaného v editore (dialekt jazyka Common Lisp). Súčasne so zdrojovými textami editora sú distribuované manuály na používanie Emacsu a referenčný manuál na programovanie v Lispe v prostredí Emacsu.

Bison je náhradou za štandardný generátor syntaktického analyzátora Yacc s niektorými rozšíreniami. Rozdáva sa aj sprievodca.

Dve implementácie zjednodušeného dialektu jazyka Lisp - Schéma: jedna z MIT (napísaná v C), druhá z University of Yale (napísaná v schéme).

Nástroj texi2roff je určený na konverziu textových súborov vo formáte TeX na textové súbory štandardného formátu roff pre operačný systém Unix (dokumentácia distribuovaná FSF na strojových médiách je formátovaná vo formáte TeX).

Pomôcky na balenie/rozbaľovanie textových súborov.

Šachový program GNU.

GNU CC je prenosný optimalizačný kompilátor jazyka C. Plne podporuje štandard ANSI C. Obsahuje nástroje na poloautomatické vytváranie generátorov kódu pre nové počítače. Distribuované s manuálom.

Jednopriechodový prenosný GAS assembler, ktorý je takmer dvakrát rýchlejší ako štandardný unixový assembler.

Voľné možnosti pomocných programov pre prácu s objektovými súbormi: ar, ld, nm, size, gprof, strip a ranlib. Distribuuje sa aj nový nástroj na dynamické načítanie, dld.

GNU make obsahuje takmer všetky nástroje na vytváranie BSD, System V a POSIX, ako aj množstvo rozšírení. Distribuované s manuálom.

Debugger GDB možno použiť na ladenie programov napísaných v C, C++ a Fortran. Distribuované s manuálom.

BASH (Bourne Again SHell) – GNU Shell je kompatibilný so štandardným príkazom Unix sh a obsahuje množstvo rozšírení prevzatých z iných variantov Shell.

GAWK je GNU verzia štandardného unixového nástroja AWK.

flex je náhrada GNU za štandardný generátor lexikálneho analyzátora lex. flex vám umožňuje získať efektívnejšie skenery ako lex.

GNU tar je rozšírenie štandardného nástroja na archiváciu tar.

Časť súborov z BSD 4.3-tahoe, ktoré neobsahujú zdrojový kód AT&T a sú uvoľnené na bezplatnú distribúciu University of Berkeley. Tieto súbory obsahujú najmä úplné zdrojové texty niektorých nástrojov, hier, knižničných rutín atď.

Systémy, ktoré podporujú prácu s verziami softvéru vo veľkých softvérových projektoch, RCS (Revision Control System) a CVS (Concurrent Version System).

Rýchlejšie ako štandardné bezplatné verzie pomôcok grep a diff.

Takmer úplne kompatibilný grafický jazyk Ghostscript.

Interaktívny program na kreslenie matematických výrazov a údajov gnuplot.

Sada nástrojov na premenu kompilátora GCC na kompilátor C++ vrátane pokročilých knižníc tried.

Obrovské množstvo programov X11, implementácia MIT X-Windows (verzia 11, vydanie 4). Objem článku neumožňuje venovať sa tomu podrobnejšie.

V podstate všetky programy distribuované FSF sú navrhnuté tak, aby fungovali v prostredí Unix a už sa používajú s rôznymi verziami tohto systému, existujú však verzie niektorých programov pre prácu s VMS a dokonca aj MS-DOS.

3. Okamžité úlohy projektu GNU

Zoznam prác, ktoré sa plánujú vykonať v rámci projektu GNU, je pomerne rozsiahly. Uveďme len stručný prehľad hlavných smerov.

3.1. Dokumentácia

Pre programy, ktoré sú už hotové alebo sa blížia k dokončeniu, je potrebné pripraviť množstvo manuálov: referenčný manuál pre jazyk C, popis GCC vrátane manuálu na určenie cieľových strojov, manuál pre programovanie aplikačných systémov v X- Prostredie Windows atď.

3.2. Projekty súvisiace s vývojom bezplatného unixového jadra

FSF pracuje na vytvorení unixového jadra založeného na voľnom Machovom mikrokerneli. Okamžité úlohy zahŕňajú implementáciu sieťových protokolov TCP/IP a nový súborový systém (dúfam, že využije výhody nejakého bežne dostupného softvéru, o ktorom sa očakáva, že bude vyhlásený za bezplatný). Existujú aj ďalšie úlohy, vrátane vývoja vzdialeného ladiaceho programu jadra OS.

3.3. Vývoj slobodného prostredia Unix

Je potrebné implementovať niektoré nástroje (sdiff, mailx, join atď.). Vyžaduje sa rozvoj množstva knižníc. Medzi úlohy patrí vývoj užívateľsky prívetivého terminálového rozhrania.

3.4. Rozšírenia existujúceho softvéru GNU

Emacs, GCC a GDB v podstate potrebujú prácu.

Pokiaľ ide o Emacs, sú potrebné dve oblasti zlepšenia: rozšírenie Emacsu, aby ho bolo možné použiť ako publikačný systém, a úplná internacionalizácia Emacsu, aby bolo možné použiť akýkoľvek národný skript.

GCC je potrebné dokončiť, aby sa opravili nahromadené pripomienky a implementovali existujúce návrhy (zoznam pripomienok a návrhov je distribuovaný s GCC).

GDB je potrebné zlepšiť, pokiaľ ide o zavedenie tlmočníka C do debuggera; niektoré vylepšenia sú potrebné aj na to, aby bolo možné používať GDB pri ladení programov napísaných v iných jazykoch ako C.

3.5. Nové kompilátory

Vyžaduje sa implementácia kompilátorov pre množstvo programovacích jazykov (Algol, Algol-68, PL/1, Ada atď.) s prístupom ku generátoru kódu GCC. (Takéto práce už prebiehajú pre Fortran, Pascal a Modula-2.)

3.5. Tony ďalších projektov

Aktuálny zoznam okamžitých úloh projektu GNU zahŕňa širokú škálu ďalších prác. Spomeňme túžbu mať bezplatné analógy systémov Page Maker, Ventura Publisher, dbase2 alebo dbase3 atď. Vyžaduje množstvo programov X-Windows. Atď. atď.

4. Ako získať ďalšie informácie a/alebo programy GNU

Na komunikáciu s FSF v dnešnom domácom prostredí je najlepšie použiť e-mail. Kontaktná osoba FSF pre ľudí, ktorí sa chcú pripojiť k projektu GNU, je Walter Poxon. Jeho e-mailová adresa: Môžete tiež získať informácie o pravidlách pre príjem pások so softvérom GNU od FSF. Žiaľ, táto prirodzená cesta nie je príliš vhodná pre súčasnú sovietsku realitu (platba za pásky, aj keď symbolická, je stále v tvrdej mene).

V našej krajine sú vlastne všetky tieto pásky. Každý ich držiteľ je v súlade s pravidlami hry FSF povinný uľahčiť ich ďalšiu distribúciu. Bohužiaľ, je to dosť veľa technickej práce. Sovietsky zväz používateľov UNIXu (SUUG) plánuje prevziať, hneď ako to technické podmienky umožnia, bezplatné šírenie slobodného softvéru pre svojich členov a platené kopírovanie pások pre každého (to je otázka najbližších mesiacov). Všetci členovia SUUG dostanú relevantné informácie, aktuálne informácie je možné získať na adrese prostredníctvom e-mailu alebo na obvyklej adrese SUUG: 125502, Moskva, st. Lavočkina, 19.

Literatúra.

  1. Richard M. Stallman. Manifest GNU.
  2. GNU General Public License // Free Software Foundation, 1989.
  3. Bulletin GNU // Free Software Foundation, 1991.
  4. Zoznam úloh GNU (pravidelne aktualizovaný súbor dostupný prostredníctvom e-mailu; vychádzame z verzie z 24. júla 1991)