GNU
Logo programu | |
Producent | |
---|---|
Aktualna wersja |
6.2.2 |
Jądro | |
Licencja |
GPL i inne licencje wolnego oprogramowania |
Wersja Live |
dostępna |
Strona internetowa |
GNU (rekurencyjny akronim od ang. GNU’s not Unix, ⓘGNU, wymowa /gnu/) – uniksopodobny system operacyjny złożony wyłącznie z wolnego oprogramowania. GNU zapoczątkowany został przez Richarda Stallmana i był pierwszym projektem Free Software Foundation (FSF)[1][2].
Projekt mający na celu stworzenie GNU to Projekt GNU, a programy przez niego wydawane nazywane bywają pakietami GNU lub programami GNU. Podstawowe składniki systemu to zestaw kompilatorów GNU Compiler Collection (GCC), narzędzia programistyczne GNU Binary Utilities (binutils), powłoka bash, biblioteka standardowych funkcji języka C GNU C Library (glibc) i narzędzia GNU Coreutils (coreutils).
Oficjalne jądro GNU, Hurd, jest niekompletne i nie wszystkie elementy mogą z nim współpracować. Z tego powodu większość użytkowników systemu GNU używa jądra Linux, które, jako Linux-libre, jest również częścią tego systemu[3]. GNU oficjalnie zawiera zewnętrzne oprogramowanie, jak np. implementację X.Org dla X Window System czy system profesjonalnego składu drukarskiego TeX. Wiele programów GNU zostało dodatkowo przeniesionych na inne systemy operacyjne, jak np. Microsoft Windows, Solaris, Mac OS czy różnorakie warianty systemu BSD[4].
Specjalnie na użytek Projektu GNU napisano licencje GNU General Public License (GPL), GNU Lesser General Public License (LGPL) i GNU Free Documentation License (GFDL), obecnie używane także przez wiele projektów z nim niezwiązanych[5].
Historia
Projekt systemu GNU został publicznie ogłoszony 27 września 1983 roku przez Richarda Stallmana na grupach dyskusyjnych net.unix-wizards i net.usoft[6]. Rozwój oprogramowania zaczął się 5 stycznia 1984 roku, gdy Stallman zakończył pracę na Massachusetts Institute of Technology; miało to uniemożliwić uczelni wtrącanie się w udostępnianie GNU na zasadach wolnego oprogramowania oraz roszczenie sobie do niego praw autorskich. Według Stallmana nazwa systemu zainspirowana została przez różnorodne gry słowne, w tym m.in. piosenkę The GNU.
Zamierzeniem Stallmana było stworzenie w pełni wolnego systemu operacyjnego. Chciał on zapewnić użytkownikom komputerów swobodę – taką jaką mieli oni w latach 60. i 70. XX wieku: możliwość analizowania kodu źródłowego oprogramowania, którego używają, swobodę dzielenia się oprogramowaniem z innymi osobami, możliwość zmiany zachowania oprogramowania oraz swobodę publikowania zmodyfikowanych wersji oprogramowania. Filozofia ta została opublikowana w marcu 1985 roku jako Manifest GNU i posłużyła w późniejszym czasie do stworzenia Definicji Wolnego Oprogramowania. Duża część potrzebnego oprogramowania musiała być stworzona od podstaw; do tego celu używano już istniejących wolnych składników systemu, jak np. TeX-a czy X Window System. W październiku 1985 roku Stallman założył Fundację Wolnego Oprogramowania. W późnych latach 80. i 90. opłacała ona programistów piszących oprogramowanie dla GNU.
Większość GNU napisana została przez wolontariuszy w ich wolnym czasie; niektórzy z nich opłacani byli przez różnorodne przedsiębiorstwa, instytucje i organizacje non-profit.
Doświadczenia Richarda Stallmana z Incompatible Timesharing System (ITS), wczesnym systemem operacyjnym napisanym w asemblerze, który stał się przestarzały z powodu braku kontynuacji prac nad komputerami PDP-10, doprowadziły do decyzji, że system GNU musiał być przenośny[7]. Zdecydowano także, że ma być jak najbardziej zgodny z Uniksem.
Z biegiem czasu w rozwój GNU zaczęły angażować się prywatne przedsiębiorstwa, sprzedające oprogramowanie GNU i zapewniające dla niego komercyjne wsparcie techniczne. Najbardziej znaną taką firmą było Cygnus Solutions, obecnie część Red Hata.
Budowa i realizacja
W roku 1990 system GNU posiadał już edytor tekstu (Emacs), kompilator (GCC) oraz większość podstawowych bibliotek i narzędzi standardowej dystrybucji Uniksa. Jako że głównym założeniem było stworzenie w pełni wolnego systemu operacyjnego, a nie napisanie go zupełnie od nowa, starano się używać wolnego oprogramowania wszędzie, gdzie było to możliwe. W latach 80. nie było go zbyt wiele; skorzystano więc z okienkowego systemu graficznego X Window System, systemu profesjonalnego składu drukarskiego TeX i mikrojądra Mach i włączono je do GNU.
Najważniejszym brakującym składnikiem GNU było jądro. W Manifeście GNU Stallman wspominał, że „istnieje znajdujące się w początkowym stadium rozwoju jądro, ale jeszcze brakuje mu wiele, aby emulować Uniksa”. Odnosił się on do jądra systemu TRIX, którego autorzy zdecydowali udostępnić je na zasadach wolnego oprogramowania i które było zgodne z 7. wersją Uniksa. Prace nad modyfikacją tego jądra rozpoczęły się w grudniu 1986 roku. Ostatecznie zdecydowano się jednak porzucić je ze względu na małą użyteczność i fakt działania wyłącznie na „rzadkiej, drogiej 68000”, co w przyszłości wymusiłoby dodatkowe prace nad przeniesieniem go na inne architektury, zanim mogłoby być uruchomione.
Początkowym planem Projektu GNU była adaptacja jądra systemu BSD 4.4-Lite. Ze względu na brak współpracy ze strony programistów z Berkeley, Richard Stallman od roku 1988 rozważał użycie jądra Mach zamiast jądra BSD 4.4-Lite, jednak na jego udostępnienie na zasadach wolnego oprogramowania trzeba było poczekać aż do roku 1990; w tym czasie programiści nad nim pracujący starali się usunąć z niego kod objęty prawami autorskimi AT&T. Budowa jądra miała być największą różnicą pomiędzy GNU a „tradycyjnym” Uniksem. Jądro GNU miało być wielowątkowym mikrojądrem i miało składać się z zestawu programów nazywanych serwerami, które miały oferować taką samą funkcjonalność jak tradycyjne jądro Uniksa.
Ponieważ Mach zapewniał jedynie niskopoziomową funkcjonalność jądra, Projekt GNU zmuszony był do stworzenia wysokopoziomowych części jądra jako zbioru programów użytkownika. Początkowo zbiór ten miał nazwany być Alix na cześć ówczesnej partnerki Richarda Stallmana, ale Thomas Bushnell, główny twórca jądra GNU, preferował nazwę Hurd. Nazwą Alix nazwana została część jądra przechwytująca, obsługująca i wysyłająca komunikaty systemowe do serwerów Hurda, ostatecznie – po tym, jak biblioteka C mogła wysyłać komunikaty bezpośrednio do serwerów – porzucona[8]. Od początku lat 90. rozwój Hurda został gwałtownie zahamowany przez pojawiające się problemy techniczne. Richard Stallman wspominał o tym 9 marca 2006 roku w Zagrzebiu[9]:
Uruchomienie jądra zajęło nam wiele, wiele lat, a mimo tego ciągle nie działa ono dobrze. Wygląda na to, że możemy mieć zasadnicze problemy z jego budową, z czego nikt nie zdawał sobie sprawy w roku 1990.
Pomimo optymistycznego ogłoszenia Stallmana w roku 2002[10] poprzedzającego wydanie GNU/Hurda, potrzebny jest dalszy rozwój i budowa jądra. Jądro jest odpowiednie dla niekrytycznych aplikacji. Od roku 2005 rozwój Hurda uległ spowolnieniu, jednak stał się on oficjalnym jądrem systemu GNU. W ramach Projektu GNU istnieje także projekt mający na celu przeniesienie systemu GNU na jądra FreeBSD, NetBSD i OpenSolarisa. W marcu 2020 roku jądro GNU/Hurd nie miało wersji stabilnej[11], ostatnią wersją była 0.9 opublikowana pod koniec roku 2016[12].
W 2019 roku, po 29 latach od powstania jądra, dodano translator dla interfejsu ACPI, który m.in. pozwala bezpiecznie wyłączyć komputer[13].
Od czasu wprowadzenia jądra Linux do szerszego obiegu stało się ono najczęściej używanym jądrem dla oprogramowania GNU. Projekt GNU ukuł dla tego typu systemów określenie GNU/Linux.
Prawa autorskie, licencje i zarządzanie
Projekt GNU sugeruje, aby autorzy pakietów GNU podpisali deklarację przeniesienia praw autorskich na Free Software Foundation[14], aczkolwiek nie jest to wymagane: wyjątki uczyniono m.in. dla MULE[15] i dużej części GNOME. Większość pakietów GNU objęta jest licencją GNU GPL, część udostępniona jest na zasadach GNU LGPL, a część używa innych licencji wolnego oprogramowania.
Posiadanie praw autorskich do oprogramowania umożliwia FSF sprawniejsze egzekwowanie wymagań licencji oraz – w razie potrzeby – jej zmianę[16].
Zasadą w prawie autorskim jest, iż z utworu może korzystać lub nim rozporządzać tylko osoba uprawniona: najczęściej sam twórca, osoba, która nabyła określone prawa majątkowe lub osoba, na rzecz której ustanowiona została licencja. Aby to zmienić, Free Software Foundation napisała licencję dla oprogramowania GNU, która zezwalała użytkownikom na jego kopiowanie i dystrybucję. Przez większość lat 80. XX wieku każdy pakiet GNU miał swoją własną licencję, jak np. Powszechna Licencja Publiczna Emacsa (ang. Emacs General Public License), Powszechna Licencja Publiczna GCC (ang. GCC General Public License) itp. W roku 1989 FSF opublikowała licencję, którą objęte mogło zostać całe ich oprogramowanie oraz której używać mogły niezwiązane z GNU projekty: GNU General Public License (Powszechną Licencję Publiczną GNU).
Licencja ta jest obecnie najczęściej używaną licencją wolnego oprogramowania; objętych nią jest większość programów GNU, a także spora ilość programów niebędących jego częścią. Zezwala ona wszystkim użytkownikom oprogramowania nią objętego uruchamiać, kopiować, modyfikować i rozprowadzać je, zabraniając jednocześnie nakładania na rozprowadzane kopie (lub zmodyfikowane wersje) dodatkowych obostrzeń. System taki nazywany jest copyleft (po ang. lewo autorskie).
W roku 1991 światło dzienne ujrzała licencja GNU Lesser General Public License (LGPL), napisana dla niektórych bibliotek wchodzących w skład GNU. W tym samym roku ukazała się 2 wersja GNU GPL. GNU Free Documentation License (FDL), licencja wolnej dokumentacji, opublikowana została w roku 2000. 29 czerwca 2007 ukazały się 3. wersje licencji GNU GPL i LGPL, lepiej dopasowujące licencje do warunków międzynarodowych i zapewniające ochronę użytkownikom, których sprzęt komputerowy ogranicza możliwość zmiany oprogramowania, co łamie wolność nr 1 Definicji Wolnego Oprogramowania.
Oprogramowanie
Wiele programów GNU zostało przeniesionych na inne systemy operacyjne, w tym różne zamknięte platformy, jak np. Microsoft Windows czy Mac OS X. Bywają one instalowane w zamkniętych wariantach Uniksa jako zamienniki dla oryginalnych narzędzi producenta. W przypadku testów bywają uznawane za bardziej niezawodne niż ich zamknięte Uniksowe odpowiedniki[17].
Niektóre przykłady oprogramowania powstałego w ramach projektu GNU (uszeregowane alfabetycznie):
- bash – powłoka
- GNU Debugger – debugger dla języków C, C++, Fortran, Ada i FreeBASIC
- GNU Emacs – rozbudowany edytor tekstu
- GIMP – program do obróbki grafiki rastrowej
- Gnash – odtwarzacz i plugin dla formatu SWF
- GNOME – graficzne środowisko użytkownika dla X Window System
- GNU Classpath – zestaw bibliotek dla języka Java
- GNU Compiler Collection – zestaw kompilatorów
- GNU gettext – infrastruktura do tworzenia „wielojęzycznych” programów
- GNU GRUB – program rozruchowy
- GNU Hurd – zestaw serwerów mikrojądra pełniący tę samą funkcję, co tradycyjne jądro Uniksa
- GNU libc – biblioteka standardowych funkcji języka C, stanowiąca pomost między systemem operacyjnym a aplikacjami
- GNUnet – niezależna i zdecentralizowana infrastruktura dla bezpiecznych sieci typu P2P
- GNU Octave – środowisko obliczeń oraz język programowania przeznaczony dla prowadzania obliczeń numerycznych
- GNU Scientific Library – zaawansowana biblioteka funkcji obliczeniowych i naukowych
- GNU Screen – menedżer ekranów
- gzip – biblioteka i program przeznaczony do bezstratnej kompresji danych
- wget – program służący do pobierania plików z Internetu
Na dzień 20 sierpnia 2007 na oficjalnej stronie rozwojowej GNU znajdowało się 328 pakietów GNU[18].
Dystrybucje GNU
System GNU (używający Hurda jako jądra) może być wypróbowany przy użyciu LiveCD. Do dystrybucji GNU należą m.in.:
Warianty systemu GNU nie używające Hurda
- GNU/Linux – najbardziej popularny wariant systemu GNU
- GNU/kFreeBSD
- GNU/NetBSD
- Nexenta OS – GNU z jądrem OpenSolarisa
Logo
Logo GNU jest stylizowana antropomorficzna głowa antylopy gnu. Oryginalny projekt stworzony został przez Etienne Suvasę. Jest on używany w oprogramowaniu GNU, drukowanych i elektronicznych wersjach dokumentacji Projektu GNU oraz w materiałach Free Software Foundation[19].
Przypisy
- ↑ Richard Stallman: The GNU Manifesto. [dostęp 2011-01-26]. (ang.).
- ↑ Richard Stallman: Overview of the GNU System. [dostęp 2011-01-26]. (ang.).
- ↑ All GNU packages. [dostęp 2013-05-06]. (ang.).
- ↑ Richar Stallman: Linux and the GNU Project. [dostęp 2011-01-26]. (ang.).
- ↑ Richard Stallman: The GNU Project. [dostęp 2011-01-26]. (ang.).
- ↑ Richard Stallman, net.unix-wizards, „New UNIX implementation” („Nowa implementacja Uniksa”), 27 września 1983 (ang.) (polskojęzyczne tłumaczenie).
- ↑ Transcript of Richard Stallman on the Free Software movement, Zagreb; 2006-03-09 (ang.).
- ↑ „O projekcie GNU”.
- ↑ FSFEurope, Transcript of Richard Stallman on the Free Software movement, Zagreb; 2006-03-09 (ang.).
- ↑ John Ribeiro: Free Software Sees Gnu Loose of Linux. PC World, 11 marca 2002. [dostęp 2007-08-20]. [zarchiwizowane z tego adresu (27 sierpnia 2011)]. (ang.).
- ↑ GNU Hurd/ hurd [online], gnu.org [dostęp 2020-04-11] .
- ↑ GNU Hurd/ news/ 2016-12-18-releases [online], gnu.org [dostęp 2020-04-11] .
- ↑ Adam Golański: Debian GNU/Hurd 2019 – po 29 latach można już bezpiecznie wyłączyć system. TeamQuest, 08 lipca 2019. [dostęp 2021-08-15]. [zarchiwizowane z tego adresu (15 sierpnia 2021)]. (pol.).
- ↑ „Copyright Papers – Information for Maintainers of GNU Software” (ang.).
- ↑ Post Richarda Stallmana na listę dyskusyjną bug-gnu-emacs (ang.).
- ↑ Dlaczego FSF uzyskuje od współpracowników deklaracje przeniesienia praw autorskich.
- ↑ Fuzz Revisited: A Re-examination of the Reliability of UNIX Utilities and Services (ang.).
- ↑ Savannah Statistics (ang.).
- ↑ Strona Projektu GNU opisująca logo.
Bibliografia
- Sam Williams: W obronie wolności: Krucjata hakera na rzecz wolnego oprogramowania. Gliwice: Helion, 2003. ISBN 83-7361-247-5.
- Richard M. Stallman: Free Software, Free Society: Selected Essays of Richard M. Stallman. Filadelfia: Free Software Foundation, 2002. ISBN 1-882114-98-1. (ang.).