Tłumaczenia tej strony

Linux a Projekt GNU

Richard Stallman

 [rysunek młodej GNU]

Wielu użytkowników komputerów codziennie uruchamia zmodyfikowaną wersję systemu GNU, nie zdając sobie z tego sprawy. Wskutek szczególnego zbiegu okoliczności, ta wersja GNU, która jest szeroko wykorzystywana obecnie jest częściej znana jako „Linux”, a wielu użytkowników nie jest świadomych stopnia jej powiązań z Projektem GNU.

Rzeczywiście, istnieje coś, co nazywamy "Linux", i są ludzie, którzy z niego korzystają, ale nie jest to system operacyjny. Linux jest jądrem — tym programem w systemie, który przydziela zasoby komputera innym, uruchamianym przez nas programom. Jądro jest istotną częścią systemu operacyjnego, ale samo jest bezużyteczne — może działać tylko w obrębie pełnego systemu operacyjnego. Linux jest zwykle używany w połączeniu z systemem operacyjnym GNU: cały system to zasadniczo GNU, z Linuksem funkcjonującym jako jądro.

Wielu użytkowników nie uświadamia sobie w pełni różnicy pomiędzy jądrem, którym jest Linux, a całym systemem, który również nazywają „Linuksem”. Niejednoznaczne stosowanie tej nazwy nie przyczynia się do zrozumienia. Ci użytkownicy często sądzą, że w 1991 Linus Torvalds, z niewielką pomocą, napisał cały system operacyjny.

Programiści na ogół wiedzą, że Linux jest jądrem. Ale ponieważ na ogół słyszeli, że cały system także nazywano „Linuksem”, często spodziewają się historii, która usprawiedliwiłaby nazywanie całego systemu operacyjnego według jądra. Na przykład, wielu jest przekonanych, że gdy tylko Linus Torvalds skończył pisać jądro, jego użytkownicy rozejrzeli się za innym wolnym oprogramowaniem, które by do niego pasowało i zauważyli, że (bez jakiegoś szczególnego powodu) prawie wszystko niezbędne do stworzenia uniksopodobnego systemu było już dostępne.

To, co znaleźli nie było przypadkiem — był to niezupełnie ukończony system GNU. Dostępne wolne programy połączyły się w kompletny system, gdyż Projekt GNU od 1984 roku pracował nad jego stworzeniem. W Manifeściet GNU określiliśmy jako przyszły cel zbudowanie wolnego uniksowego systemu, nazwanego GNU. Pierwsze ogłoszenie Projektu GNU również nakreśla niektóre z pierwotnych planów systemu GNU. W momencie, gdy napisano Linuksa, system był prawie gotowy.

Większość projektów wolnego oprogramowania ma na celu rozwój konkretnego programu do konkretnych zadań. Na przykład, Linus Torvalds zamierzał napisać zbliżone do uniksowego jądro, Donald Knuth zamierzał napisać program do formatowania tekstu (TeX), a Bob Scheifler — rozwinąć system okien (system X Window). Naturalne jest mierzenie wkładu tego rodzaju projektu wedle konkretnych programów, które z niego powstały.

Do jakiego wniosku doszlibyśmy, próbując zmierzyć w ten sposób wkład Projektu GNU? Jeden ze sprzedawców CD-ROM-ów zauważył, że w ich „dystrybucji Linuksa” oprogramowanie GNU stanowiło największy pojedynczy wkład, około 28% całego kodu źródłowego, i obejmowało niektóre kluczowe główne składowe, bez których nie byłoby w ogóle systemu. Sam Linux miał około 3%. Zatem, jeśli chcieć wybrać nazwę dla systemu na podstawie tego, kto napisał jego programy, najbardziej odpowiednim pojedynczym wyborem byłoby „GNU”.

Jednak nie uważamy, by to była właściwa metoda rozpatrywania tej kwestii. Projekt GNU nie był, i nie jest, przedsięwzięciem mającym na celu powstanie konkretnych pakietów programowych. To nie był projekt zrobienia kompilatora C, chociaż go zrobiliśmy. To nie był projekt napisania edytora tekstów, choć taki napisaliśmy. Celem Projektu GNU było skonstruowanie kompletnego wolnego systemu uniksowego: GNU.

Wiele osób wniosło istotny wkład w wolne oprogramowanie tego systemu i wszyscy oni zasługują na uznanie. Jednak przyczyną tego, że jest to zintegrowany system, a nie tylko zbiór przydatnych programów, jest fakt, że Projekt GNU zamierzał zrobić system. Sporządziliśmy listę programów potrzebnych do skonstruowania kompletnego wolnego systemu i systematycznie wyszukaliśmy wszystko z listy, napisaliśmy sami albo znaleźliśmy ludzi, którzy to zrobili. Napisaliśmy niezbędne, lecz niezbyt pasjonujące składowe[1], gdyż system powinien je mieć. Niektóre z komponentów naszego systemu, narzędzia programistyczne, samodzielnie zyskały sobie popularność wśród programistów, ale napisaliśmy też wiele składowych systemu, które nie są narzędziami [2]. Opracowaliśmy nawet program do gry w szachy, GNU Chess, bo w kompletnym systemie operacyjnym potrzebne są i gry.

Do początku lat dziewięćdziesiątych złożyliśmy cały system z wyjątkiem jądra (a pracowaliśmy też nad jądrem GNU Hurd, które działa w oparciu o Mach). Stworzenie tego jądra okazało się o wiele trudniejsze niż się spodziewaliśmy; GNU Hurd zaczęło pracować solidnie w 2001 roku. Obecnie rozpoczynamy przygotowanie faktycznego wydania systemu GNU, z jądrem GNU Hurd.

Na szczęście, nie musieliśmy czekać na jądro Hurd, ponieważ był dostępny Linux. Kiedy Linus Torvalds napisał Linuksa, wypełnił ostatnią istotną lukę. Ludzie mogli następnie połączyć Linuksa z systemem GNU, by utworzyć kompletny wolny system: wersję systemu GNU opartą na Linuksie, w skrócie: system GNU/Linux. Najwcześniejsze informacje o wydaniach Linuksa zwracały uwagę, że Linux to jądro, używane razem z częściami GNU: „ Most of the tools used with linux are GNU software and are under the GNU copyleft. These tools aren't in the distribution - ask me (or GNU) for more info” (Większość narzędzi wykorzystywanych razem z linuksem to programy GNU, są objęte przez copyleft [Projektu] GNU. Tych narzędzi nie ma w pakiecie dystrybucyjnym — o więcej info proście mnie (lub GNU)).

Złożenie ich razem brzmi prosto, ale to nie było trywialne zadanie. Przystosowanie niektórych komponentów GNU [3] do działania z Linuksem wymagało poważnych zmian. Wielką pracą było też zintegrowanie kompletnego systemu jako dystrybucji, która działaby „po wyjęciu z pudełka”. Wymagało zajęcia się sprawą sposobu instalacji i uruchamiania systemu — problemem, z którym wówczas nie próbowaliśmy się zmierzyć, gdyż jeszcze nie osiągnęliśmy tego punktu. Znaczny wkład wnieśli ludzie, którzy rozwinęli rozmaite dystrybucje systemu.

Projekt GNU wspomaga systemy GNU/Linux tak samo, jak system GNU — nawet finansowo. Sfinansowaliśmy przepisanie rozszerzeń biblioteki GNU C związanych z Linuksem, tak że są teraz dobrze zintegrowane, a najnowsze systemy GNU/Linux korzystają z aktualnego wydania biblioteki bez żadnych zmian. Sfinansowaliśmy też wczesny etap rozwoju systemu Debian GNU/Linux.

Obecnie do wszystkich naszych prac korzystamy z systemów GNU na bazie Linkusa i mamy nadzieję, że wy też będziecie z nich korzystać. Obecnie istnieje wiele różnych wariantów systemu GNU/Linux (często zwanych „dystrybucjami”). Większość z zawiera niewolne oprogramowanie — ci, którzy je konstruują, kierują się raczej filozofią związaną z Linuksem niż filozofią GNU. Ale istnieją też całkowicie wolne dystrybucje GNU/Linuksa.

Obojętnie, czy korzystacie z GNU/Linuksa, czy też nie, prosimy, nie mylcie ludzi używając nazwy „Linux” w sposób niejednoznaczny. Linux jest jądrem, jednym z kluczowych, głównych składowych systemu. System jako całość jest w przybliżeniu systemem GNU, z dodanym Linuksem. Mówiąc o tym połączeniu, proszę nazywajcie je „GNU/Linux”.

Gdybyście chcieli utworzyć odnośnik hipertekstowy do „GNU/Linuksa”, to dobrym wyborem jest ta strona, a także http://www.gnu.org/gnu/the-gnu-project.html. Jeśli wspominacie o Linuksie i chcecie dodać odpowiedni odnośnik, dobry będzie http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?Linux.

Dodatek: Oprócz GNU, inny projekt niezależnie zbudował wolny uniksowy system operacyjny. System ten znany jest jako BSD i został opracowany na Uniwersytecie Kalifornijskim Berkeley. W latach 80. nie był wolny, lecz na początku lat 90. stał się wolnym oprogramowaniem. Dowolny istniejący dziś wolny system operacyjny jest niemal na pewno albo odmianą systemu GNU albo rodzajem systemu BSD.

Ludzie czasem pytają, czy i BSD jest wersją GNU, jak GNU/Linux. Autorzy BSD uczynili swój kod wolnym oprogramowaniem zainspirowani przykładem Projektu GNU, a formułowane wprost apele ludzi zaangażowanych w GNU pomogły ich przekonać, lecz sam kod ma niewiele wspólnego z kodem GNU. Obecnie BSD wykorzystuje część oprogramowania GNU, tak samo jak system GNU i jego odmiany korzystają z oprogramowania BSD — jednak zasadniczo są to dwa odmienne systemy, które rozwijały się osobno. Nie było tak, że programiści BSD napisali jądro i dodali je do systemu GNU, więc nazwa w rodzaju GNU/BSD nie odpowiadałaby faktycznej sytuacji.

(Jeśli chcecie dowiedzieć się o tym więcej, zapraszamy do przeczytania także naszej strony GNU/Linux FAQ)

Przypisy

[1] Te nieciekawe, lecz ważne komponenty to między innymi: GNU assembler (GAS) oraz GNU konsolidator (GLD), będące obecnie częściami pakietu GNU binutils, GNU tar i inne.

[2] Na przykład, Bourne Again SHell (BASH), interpreter PostScriptu Ghostscript czy biblioteka GNU C nie są narzędziami programistycznymi. Ani GNUCash, GNOME czy GNU Chess.

[3] Na przykład biblioteki GNU C.


Więcej na temat Projektu GNU


Tłumaczenia tej strony:
[ Català | 简体中文 | 繁體中文 | Česky | Deutsch | English | Español | فارسی | Français | עבריח | Italiano | 日本語 | 한국어 | Polski | Português | Română | Русский | Srpsko-Hrvatski | Slovensko | Српски | Tagalog ]