Ideologia wolnego oprogramowania i projekt GNU: stan obecny i najbliższe zadania. Co to jest GNU i GPL

Każdy użytkownik, który zaczął rozumieć świat systemów operacyjnych typu UNIX i wolnego oprogramowania, prawdopodobnie zetknie się ze skrótami w tytule.

GNU oznacza „GNU to nie UNIX” i odnosi się do projektu na dużą skalę, w ramach którego opracowywane są różne biblioteki systemowe i aplikacje. Wszystko stworzone w ramach tego projektu jest open source. Oznacza to, że każdy posiadający odpowiednią wiedzę programistyczną może wykorzystać ten kod jako podstawę do własnych opracowań, mając pełne prawo do jego zmieniania i rozpowszechniania.

Opracowane w ramach projektu oprogramowanie, uzupełnione jądrem systemu GNU Hard, stanowiło podstawę pełnoprawnego system operacyjny, który był również określany jako GNU. Jednak jego tworzenie, rozpoczęte w 1990 roku, nie zostało do dziś zakończone. Ale w 1991 roku pojawił się pomysł Linusa Torvaldsa - jądro Linuksa. To tutaj Projekt GNU odegrał ogromną rolę w rozwoju Linuksa jako systemu operacyjnego. W końcu system to nie tylko jądro, ale integralny zestaw oprogramowania systemowego, w tym biblioteki, narzędzia, sterowniki i wiele więcej. I to właśnie rozwój uczestników GNU, który był używany w połączeniu z jądrem Linuksa, ujawnił światu ten sam produkt, który teraz skutecznie konkuruje z Windowsem i MacOS. Nazywa się to „GNU/Linux” i najczęściej odrzuca się pierwszą część, co w ogólnym przypadku jest błędne.

Oprócz oprogramowania w ramach Projektu GNU stworzono Powszechną Licencję Publiczną (GNU GPL), która stała się główną licencją w świecie open source i była szeroko stosowana. Reguluje dystrybucję wolnego oprogramowania i jest niezwykle demokratyczny. Stanowi ona, że ​​każdy użytkownik ma prawo do modyfikowania, rozpowszechniania i wykorzystywania w swoich projektach kodu źródłowego aplikacji objętych niniejszą licencją. Jednocześnie wszystkie programy zależne również będą podlegać licencji GPL. Oznacza to, że programista korzystający z oprogramowania typu open source tworzy również oprogramowanie typu open source i w ten sposób dziedziczona jest sama licencja. Jest to zasada obowiązkowa, jednak istnieją sposoby na obejście GPL i zamknięcie własnych kodów w oparciu o używane otwarte.

GNU i stworzona przez nią GPL wywarły ogromny wpływ na przemysł technologiczny. Wolne oprogramowanie przyciągnęło do swojej branży ogromną liczbę utalentowanych programistów, tworzących największą społeczność. Produkty stworzone na licencji GPL znalazły nie tylko szerokie zastosowanie praktyczne, ale także dzięki wysokiej jakości i przystępnemu kodowi stały się doskonałym poligonem szkoleniowym dla milionów początkujących programistów. Powstała koncepcja takiej wymiany informacji i najgłośniejsza alternatywa dla tradycyjnych praw autorskich, choć nieoczywista możliwy rozwój oprogramowania i obecnie nabiera tempa.

Pierwotnie opublikowane w książce Otwarte źródła. Richard Stallman był, ale napisał ten artykuł, aby idee ruchu wolnego oprogramowania nie zostały całkowicie nieobecne w tej książce.

Pierwsza społeczność dzieląca się oprogramowaniem

Kiedy w 1971 roku zacząłem pracować w laboratorium sztucznej inteligencji MIT, stałem się częścią istniejącej od wielu lat społeczności dzielącej się oprogramowaniem. Udostępnianie oprogramowania nie ograniczało się do naszej konkretnej społeczności; jest tak stara jak komputery, tak jak dzielenie się przepisami jest tak stare jak gotowanie. Ale zrobiliśmy to częściej niż większość.

Laboratorium AI korzystało z systemu operacyjnego z podziałem czasu o nazwie ITS (niezgodny system podziału czasu), który hakerzy z personelu laboratorium (1) zaprojektowali i napisali w języku asemblera dla Digital PDP -10, jednego z dużych komputerów tamtej epoki Jako członek tej społeczności, haker pracujący w AI Lab, moim zadaniem było udoskonalenie tego systemu.

Nie nazywaliśmy naszego oprogramowania „wolnym oprogramowaniem”, ponieważ taki termin jeszcze nie istniał; ale tak właśnie było. Kiedykolwiek ludzie z innej uczelni lub firmy chcieli przenieść i używać programu, chętnie im na to pozwalaliśmy. Jeśli zobaczysz, że ktoś używa nieznanego i interesującego programu, zawsze możesz poprosić o pokazanie kodu źródłowego, aby móc go przeczytać, zmienić lub kanibalizować jego części w celu stworzenia nowego programu.

(1) Użycie słowa „haker” w znaczeniu „łamacza zabezpieczeń” powoduje zamieszanie ze strony środków masowego przekazu. My, hakerzy, nie chcemy rozpoznać tego znaczenia i nadal używamy tego słowa do określenia kogoś, kto uwielbia programować, kogoś, kto lubi żartobliwy spryt lub kombinację tych dwóch. Zobacz mój artykuł O hakowaniu.

Upadek wspólnoty

Sytuacja zmieniła się drastycznie na początku lat 80., kiedy firma Digital zaprzestała produkcji serii PDP-10. Jego architektura, elegancka i potężna w latach 60., nie mogła w naturalny sposób rozszerzyć się na większe przestrzenie adresowe, które stały się możliwe w latach 80. Oznaczało to, że prawie wszystkie programy tworzące ITS były przestarzałe.

Społeczność hakerów AI Lab już niedługo wcześniej upadła. W 1981 roku wydzielona firma Symbolics zatrudniła prawie wszystkich hakerów z AI Lab, a wyludniona społeczność nie była w stanie się utrzymać. (Książka Hackers autorstwa Steve'a Levy'ego opisuje te wydarzenia, a także daje jasny obraz tej społeczności w czasach jej świetności.) Kiedy AI Lab kupiło nowy PDP-10 w 1982 r., jego administratorzy zdecydowali się na użycie technologii cyfrowej. niewolny system podziału czasu zamiast ITS.

Nowoczesne komputery tamtej epoki, takie jak VAX czy 68020, miały własne systemy operacyjne, ale żaden z nich nie był wolnym oprogramowaniem: nawet aby otrzymać kopię wykonywalną, trzeba było podpisać umowę o zachowaniu poufności.

Oznaczało to, że pierwszym krokiem w korzystaniu z komputera była obietnica, że ​​nie będziesz pomagać bliźniemu. Zakazano wspólnoty współpracującej. Zasada wyznawana przez właścicieli prawnie zastrzeżonego oprogramowania brzmiała: „Jeśli udostępniasz coś swojemu sąsiadowi, jesteś piratem. Jeśli chcesz jakichś zmian, błagaj nas, abyśmy je dokonali.”

Pogląd, że system społecznościowy oprogramowania zastrzeżonego — system, który mówi, że nie wolno udostępniać ani zmieniać oprogramowania — jest aspołeczny, nieetyczny lub po prostu niewłaściwy, może być dla niektórych czytelników zaskoczeniem. Ale co jeszcze można powiedzieć o systemie opartym na dzieleniu społeczeństwa i utrzymywaniu użytkowników w bezradności? Czytelnicy, którzy uznają ten pomysł za zaskakujący, mogli przyjąć system społecznościowy oprogramowania zastrzeżonego jako coś oczywistego lub ocenić go na warunkach sugerowanych przez producentów oprogramowania zastrzeżonego. Wydawcy oprogramowania długo i ciężko pracowali, aby przekonać ludzi, że istnieje tylko jeden sposób spojrzenia na ten problem.

Kiedy wydawcy oprogramowania mówią o „egzekwowaniu” swoich „praw” lub „powstrzymaniu piractwa”, co tak naprawdę mają na myśli mowić jest drugorzędne. Prawdziwe przesłanie tych stwierdzeń kryje się w niewypowiedzianych założeniach, które przyjmują za oczywiste i które społeczeństwo powinno zaakceptować bez sprawdzania. Przeanalizujmy je zatem.

Jedno z założeń jest takie, że producenci oprogramowania mają niekwestionowane, naturalne prawo do posiadania oprogramowania, a tym samym mają władzę nad wszystkimi jego użytkownikami. (Gdyby było to prawo naturalne, to bez względu na to, jak wiele szkód wyrządza społeczeństwu, nie moglibyśmy się sprzeciwić.) Co ciekawe, konstytucja Stanów Zjednoczonych i tradycja prawna odrzucają ten pogląd; prawa autorskie nie są prawem naturalnym, lecz sztucznym monopolem narzuconym przez rząd, który ogranicza naturalne prawo użytkowników do kopiowania.

Innym niesprecyzowanym założeniem jest to, że jedyną ważną rzeczą w oprogramowaniu jest to, jakie zadania pozwala wykonywać – że my, użytkownicy komputerów, nie powinniśmy przejmować się, jakie społeczeństwo możemy mieć.

Trzecie założenie jest takie, że nie mielibyśmy żadnego użytecznego oprogramowania (lub nigdy nie mielibyśmy programu do wykonania tego czy innego zadania), gdybyśmy nie zaoferowali firmie władzy nad użytkownikami programu. To założenie mogło wydawać się prawdopodobne, zanim ruch wolnego oprogramowania pokazał, że możemy stworzyć mnóstwo przydatnego oprogramowania bez nakładania na nie łańcuchów.

Jeśli odrzucimy te założenia i ocenimy te kwestie w oparciu o zwykłą zdroworozsądkową moralność, stawiając użytkowników na pierwszym miejscu, dochodzimy do zupełnie odmiennych wniosków. Użytkownicy komputerów powinni mieć swobodę modyfikowania programów zgodnie ze swoimi potrzebami i swobodę dzielenia się oprogramowaniem, ponieważ pomaganie innym ludziom jest podstawą społeczeństwa.

Surowy wybór moralny

Po odejściu mojej społeczności kontynuowanie działalności tak jak wcześniej było niemożliwe. Zamiast tego stanąłem przed trudnym wyborem moralnym.

Łatwym wyborem było dołączenie do świata prawnie zastrzeżonego oprogramowania, podpisanie umów o zachowaniu poufności i przyrzeczenie, że nie będę pomagać mojemu koledze hakerowi. Najprawdopodobniej zajmowałbym się także oprogramowaniem wydawanym na mocy umów o zachowaniu poufności, zwiększając w ten sposób presję na innych ludzi, aby również zdradzali swoich towarzyszy.

Mógłbym w ten sposób zarabiać pieniądze i być może bawić się pisaniem kodu. Wiedziałem jednak, że pod koniec mojej kariery spojrzę wstecz na lata wznoszenia murów, aby podzielić ludzi, i poczuję, że spędziłem życie, czyniąc świat gorszym miejscem.

Doświadczyłem już, że byłem stroną umowy o zachowaniu poufności, gdy ktoś odmówił mi i laboratorium MIT AI Lab kodu źródłowego programu sterującego naszą drukarką. (Brak pewnych funkcji w tym programie, które powodują korzystanie z drukarki, jest niezwykle frustrujący.) Nie mogłem więc sobie wmawiać, że umowy o zachowaniu poufności są niewinne. Byłem bardzo zły, gdy nie chciał się z nami podzielić; Nie mogłem się odwrócić i zrobić tego samego wszystkim innym.

Innym wyborem, prostym, ale nieprzyjemnym, było opuszczenie pola komputerowego. W ten sposób moje umiejętności nie zostaną wykorzystane w niewłaściwy sposób, ale nadal zostaną zmarnowane. Nie byłbym winny dzielenia i ograniczania użytkowników komputerów, ale mimo wszystko tak by się stało.

Szukałem więc sposobu, w jaki programista mógłby zrobić coś dobrego. Zadałem sobie pytanie, czy istnieje program lub programy, które mógłbym napisać, aby społeczność ponownie mogła być możliwa?

Odpowiedź była jasna: najpierw potrzebny był system operacyjny. Jest to oprogramowanie niezbędne do rozpoczęcia korzystania z komputera. Dzięki systemowi operacyjnemu możesz zrobić wiele rzeczy; bez niego nie można w ogóle uruchomić komputera. Dzięki darmowemu systemowi operacyjnemu moglibyśmy ponownie stworzyć społeczność współpracujących hakerów i zaprosić każdego, aby do niej dołączył. I każdy byłby w stanie korzystać z komputera, nie zaczynając od spiskowania mającego na celu pozbawienie swoich przyjaciół.

Jako programista systemów operacyjnych miałem odpowiednie umiejętności do tej pracy. Chociaż więc nie mogłem uważać sukcesu za coś oczywistego, zdałem sobie sprawę, że zostałem wybrany do wykonania tej pracy. Zdecydowałem się uczynić system kompatybilnym z Uniksem, aby był przenośny i aby użytkownicy Uniksa mogli łatwo się na niego przełączyć. Nazwę GNU wybrano zgodnie z hakerską tradycją jako rekurencyjny akronim od „GNU to nie Unix”. Wymawia się je jako jedną sylabę z twardym g.

System operacyjny to nie tylko jądro, które ledwo wystarcza do uruchomienia innych programów. W latach 70. każdy system operacyjny godny tej nazwy zawierał procesory poleceń, asemblery, kompilatory, interpretery, debugery, edytory tekstu, programy pocztowe i wiele innych. Miał je ITS, miał je Multic, miał je VMS i miał je Unix. System operacyjny GNU również by je zawierał.

Później usłyszałem te słowa, przypisywane Hillelowi (1):

Jeśli nie jestem dla siebie, kto będzie dla mnie?
Jeśli jestem tylko dla siebie, to czym jestem?
Jeśli nie teraz to kiedy?

Decyzja o rozpoczęciu Projektu GNU opierała się na podobnym duchu.

(1) Jako ateista nie podążam za żadnymi przywódcami religijnymi, ale czasami podziwiam coś, co powiedział jeden z nich.

Wolny jak na wolności

Termin „wolne oprogramowanie” jest czasami błędnie rozumiany – nie ma on nic wspólnego z ceną. Chodzi o wolność. Oto zatem definicja wolnego oprogramowania.

Program jest oprogramowaniem wolnym dla Ciebie, konkretnego użytkownika, jeśli:

  • Masz swobodę uruchamiania programu według własnego uznania i w dowolnym celu.
  • Masz swobodę modyfikowania programu pod swoje potrzeby. (Aby ta swoboda była skuteczna w praktyce, trzeba mieć dostęp do kodu źródłowego, gdyż wprowadzanie zmian w programie bez posiadania kodu źródłowego jest niezwykle trudne.)
  • Masz swobodę rozpowszechniania kopii, bezpłatnie lub za opłatą.
  • Masz swobodę rozpowszechniania zmodyfikowanych wersji programu, aby społeczność mogła skorzystać z Twoich ulepszeń.

Ponieważ „bezpłatny” odnosi się do wolności, a nie ceny, nie ma sprzeczności pomiędzy sprzedażą kopii a wolnym oprogramowaniem. Tak naprawdę swoboda sprzedaży kopii jest kluczowa: zbiory wolnego oprogramowania sprzedawane na CD-ROM-ach są ważne dla społeczności, a ich sprzedaż jest ważnym sposobem gromadzenia funduszy na rozwój wolnego oprogramowania. Dlatego też program, którego ludzie nie mogą dowolnie włączać do tych kolekcji, nie jest wolnym oprogramowaniem.

Ze względu na dwuznaczność słowa „bezpłatny” ludzie od dawna szukali alternatyw, ale nikt nie znalazł lepszego określenia. Język angielski ma więcej słów i niuansów niż jakikolwiek inny, ale brakuje mu prostego, jednoznacznego słowa, które oznaczałoby „wolny”, jak wolność – „nieskrępowany” to słowo, które ma najbliższe znaczenie. Takie alternatywy jak „wyzwolony”, „wolność” i „otwarty” mają albo błędne znaczenie, albo jakąś inną wadę.

Oprogramowanie GNU i system GNU

Opracowanie całego systemu to bardzo duży projekt. Aby to osiągnąć, zdecydowałem się zaadaptować i wykorzystać istniejące fragmenty wolnego oprogramowania, gdziekolwiek było to możliwe. Na przykład zdecydowałem się na samym początku użyć TeX-a jako głównego formatera tekstu; kilka lat później zdecydowałem się używać systemu X Window, zamiast pisać kolejny system okienkowy dla GNU.

Z powodu tych i podobnych decyzji system GNU nie jest tym samym, co zbiór całego oprogramowania GNU. System GNU obejmuje programy, które nie są oprogramowaniem GNU, programy, które zostały opracowane przez inne osoby i projekty dla ich własnych celów, ale których możemy używać, ponieważ są wolnym oprogramowaniem.

Komunikowanie projektu

W styczniu 1984 rzuciłem pracę w MIT i zacząłem pisać oprogramowanie GNU. Opuszczenie MIT było konieczne, aby MIT nie mógł ingerować w dystrybucję GNU jako wolnego oprogramowania. Gdybym pozostał w tym zespole, MIT mógłby rościć sobie prawo do własności tego dzieła i narzucić własne warunki dystrybucji, a nawet przekształcić je w zastrzeżony pakiet oprogramowania. Nie miałem zamiaru wykonywać dużej ilości pracy tylko po to, by przekonać się, że stanie się ona bezużyteczna zgodnie z jej przeznaczeniem: utworzeniem nowej społeczności dzielącej się oprogramowaniem.

Jednakże profesor Winston, ówczesny szef laboratorium AI MIT, uprzejmie zaprosił mnie do dalszego korzystania z udogodnień laboratorium.

Pierwsze kroki

Krótko przed rozpoczęciem Projektu GNU usłyszałem o zestawie Free University Compiler Kit, znanym również jako VUCK. (Holenderskie słowo oznaczające „bezpłatny” pisane jest przez a w.) Był to kompilator zaprojektowany do obsługi wielu języków, w tym C i Pascal, oraz do obsługi wielu maszyn docelowych. Napisałem do autora z pytaniem, czy GNU mogłoby z niego skorzystać.

Odpowiedział szyderczo, stwierdzając, że uniwersytet jest bezpłatny, ale kompilator nie. Dlatego zdecydowałem, że moim pierwszym programem dla Projektu GNU będzie wielojęzyczny, wieloplatformowy kompilator.

Mając nadzieję uniknąć konieczności samodzielnego pisania całego kompilatora, zdobyłem kod źródłowy kompilatora Pastel, który był kompilatorem wieloplatformowym rozwijanym w Lawrence Livermore Lab. Jest obsługiwany i został napisany w rozszerzonej wersji Pascala, zaprojektowanej jako język programowania systemowego. Dodałem interfejs C i zacząłem go przenosić na komputer Motorola 68000. Musiałem jednak z tego zrezygnować, gdy odkryłem, że kompilator potrzebuje wielu megabajtów miejsca na stosie, a dostępny system Unix 68000 pozwala tylko na 64 KB.

Następnie zdałem sobie sprawę, że kompilator Pastela działał poprzez analizowanie całego pliku wejściowego w drzewo składni, konwertowanie całego drzewa składni na łańcuch „instrukcji”, a następnie generowanie całego pliku wyjściowego, nigdy nie zwalniając żadnej pamięci. W tym momencie doszedłem do wniosku, że będę musiał napisać nowy kompilator od zera. Ten nowy kompilator jest teraz znany jako GCC; nie jest w nim używany żaden kompilator Pastela, ale udało mi się zaadaptować i wykorzystać napisany przeze mnie interfejs C. Ale to było kilka lat później; najpierw pracowałem na GNU Emacs.

GNU Emacsa

Zacząłem pracę nad GNU Emacsem we wrześniu 1984 roku i na początku 1985 roku zaczął on być użyteczny. To umożliwiło mi rozpoczęcie używania systemów Unix do edycji; Ponieważ nie byłem zainteresowany nauką korzystania z vi lub ed, do tego czasu edytowałem na innych maszynach.

W tym momencie ludzie zaczęli chcieć używać GNU Emacsa, co rodziło pytanie, jak go rozpowszechniać. Oczywiście umieściłem go na anonimowym serwerze FTP na komputerze MIT, z którego korzystałem. (W ten sposób komputer ten, prep.ai.mit.edu, stał się głównym miejscem dystrybucji GNU FTP; kiedy został wycofany z użytku kilka lat później, przenieśliśmy nazwę na nasz nowy serwer FTP.) Jednak w tamtym czasie wielu zainteresowanych ludzie nie byli w Internecie i nie mogli uzyskać kopii przez FTP. Pytanie brzmiało: co im powiedzieć?

Mógłbym powiedzieć: „Znajdź znajomego, który jest w sieci i który zrobi dla ciebie kopię”. Albo mógłbym zrobić to samo, co zrobiłem z oryginalnym Emacsem PDP-10: powiedzieć im: „Wyślij mi taśmę i SASE, a ja odeślę to z Emacsem”. Ale nie miałem pracy i szukałem sposobów na zarabianie pieniędzy na wolnym oprogramowaniu. Ogłosiłem więc, że wyślę taśmę każdemu, kto będzie chciał, za opłatą 150 dolarów. W ten sposób rozpocząłem działalność w zakresie dystrybucji wolnego oprogramowania, prekursora firm, które dziś dystrybuują całe dystrybucje systemu GNU/Linux.

Czy program jest bezpłatny dla każdego użytkownika?

Jeśli program jest wolnym oprogramowaniem w chwili, gdy opuszcza ręce autora, nie musi to koniecznie oznaczać, że będzie wolnym oprogramowaniem dla każdego, kto posiada jego kopię. Na przykład oprogramowanie należące do domeny publicznej (oprogramowanie niechronione prawem autorskim) jest oprogramowaniem wolnym; ale każdy może stworzyć jego zastrzeżoną, zmodyfikowaną wersję. Podobnie wiele bezpłatnych programów jest chronionych prawem autorskim, ale jest rozpowszechnianych na podstawie prostych licencji zezwalających, które dopuszczają zastrzeżone, zmodyfikowane wersje.

Paradygmatycznym przykładem tego problemu jest system X Window. Opracowany w MIT i wydany jako wolne oprogramowanie z liberalną licencją, wkrótce został przyjęty przez różne firmy komputerowe. Dodali X do swoich zastrzeżonych systemów Unix, wyłącznie w formie binarnej i objęci tą samą umową o zachowaniu poufności. Te kopie X nie były bardziej wolnym oprogramowaniem niż Unix.

Twórcy systemu X Window nie uważali tego za problem — spodziewali się tego i zamierzali, aby tak się stało. Ich celem nie była wolność, tylko „sukces”, definiowany jako „posiadanie wielu użytkowników”. Nie obchodziło ich, czy ci użytkownicy mają swobodę, tylko, żeby było ich wielu.

Doprowadziło to do paradoksalnej sytuacji, w której dwa różne sposoby liczenia ilości wolności dawały różne odpowiedzi na pytanie: „Czy ten program jest darmowy?” Gdybyś oceniał na podstawie wolności zapewnianej przez warunki dystrybucji wydania MIT, powiedziałbyś, że X jest wolnym oprogramowaniem. Ale jeśli zmierzyć swobodę przeciętnego użytkownika X, trzeba by powiedzieć, że jest to oprogramowanie zastrzeżone. Większość użytkowników X korzystała z zastrzeżonych wersji dostarczonych z systemami Unix, a nie z wersji darmowej.

Copyleft i GNU GPL

Celem GNU było zapewnienie użytkownikom wolności, a nie tylko bycie popularnym. Musieliśmy więc zastosować warunki dystrybucji, które uniemożliwiałyby przekształcenie oprogramowania GNU w oprogramowanie prawnie zastrzeżone. Stosowana przez nas metoda nazywa się „copyleft”.(1)

Copyleft korzysta z prawa autorskiego, ale odwraca je tak, aby służyło ono odwrotnemu celowi: zamiast być środkiem ograniczającym program, staje się środkiem zapewniającym wolność programu.

Główną ideą copyleft jest to, że dajemy każdemu pozwolenie na uruchamianie programu, kopiowanie programu, modyfikowanie programu i rozpowszechnianie zmodyfikowanych wersji – ale nie pozwolenie na dodawanie własnych ograniczeń. Zatem kluczowe wolności definiujące „wolne oprogramowanie” są gwarantowane każdemu, kto posiada kopię; stają się prawami niezbywalnymi.

Aby copyleft był skuteczny, zmodyfikowane wersje muszą być również bezpłatne. Dzięki temu praca oparta na naszej pracy stanie się dostępna dla naszej społeczności, jeśli zostanie opublikowana. Kiedy programiści pracujący jako programiści zgłaszają się na ochotnika do ulepszania oprogramowania GNU, copyleft uniemożliwia ich pracodawcom stwierdzenie: „Nie możesz dzielić się tymi zmianami, ponieważ użyjemy ich do stworzenia naszej zastrzeżonej wersji programu”.

Wymóg, że zmiany muszą być bezpłatne, jest niezbędny, jeśli chcemy zapewnić swobodę każdemu użytkownikowi programu. Firmy, które prywatyzowały X Window System, zwykle wprowadzały pewne zmiany, aby przenieść go na swoje systemy i sprzęt. Zmiany te były niewielkie w porównaniu z dużym zakresem X, ale nie były trywialne. Gdyby wprowadzanie zmian było pretekstem do odmowy użytkownikom wolności, każdy z łatwością mógłby z tej wymówki skorzystać.

Powiązany problem dotyczy łączenia wolnego programu z niewolnym kodem. Taka kombinacja nieuchronnie byłaby niewolna; jakichkolwiek swobód brakuje w niewolnej części, brakowałoby także całości. Zezwolenie na takie kombinacje spowodowałoby otwarcie dziury wystarczająco dużej, aby zatopić statek. Dlatego też kluczowym wymogiem copyleft jest załatanie tej luki: wszystko, co jest dodawane do programu objętego copyleft lub z nim połączone, musi być takie, aby większa, połączona wersja była również bezpłatna i objęta copyleft.

Konkretną implementacją copyleft, której używamy w przypadku większości oprogramowania GNU, jest Powszechna Licencja Publiczna GNU, w skrócie GNU GPL. Mamy inne rodzaje copyleftu, które są używane w określonych okolicznościach. Podręczniki GNU również są objęte copyleftem, ale używają znacznie prostszego rodzaju copyleft, ponieważ złożoność GNU GPL nie jest konieczna w przypadku podręczników.(2)

(1) W 1984 lub 1985 roku Don Hopkins (człowiek o dużej wyobraźni) wysłał do mnie list. Na kopercie napisał kilka zabawnych powiedzeń, w tym to: „Copyleft – wszystkie prawa odwrócone”. Użyłem słowa „copyleft”, aby nazwać koncepcję dystrybucji, którą wówczas opracowywałem.

Pracownicy Free Software Foundation napisali i utrzymywali wiele pakietów oprogramowania GNU. Dwie godne uwagi to biblioteka C i powłoka. Biblioteka GNU C jest tym, czego używa każdy program działający w systemie GNU/Linux do komunikacji z Linuksem. Został opracowany przez członka personelu Free Software Foundation, Rolanda McGratha. Powłoką używaną w większości systemów GNU/Linux jest BASH, Bourne Again Shell(1), która została opracowana przez pracownika FSF Briana Foxa.

Finansowaliśmy rozwój tych programów, ponieważ Projekt GNU nie dotyczył tylko narzędzi i środowiska programistycznego. Naszym celem był kompletny system operacyjny i do tego potrzebne były te programy.

(1) „Bourne Again Shell” jest grą nazwy „Bourne Shell”, która była zwykłą powłoką w systemie Unix.

Bezpłatne wsparcie oprogramowania

Filozofia wolnego oprogramowania odrzuca konkretną, szeroko rozpowszechnioną praktykę biznesową, ale nie jest sprzeczna z biznesem. Jeśli firmy szanują wolność użytkowników, życzymy im sukcesów.

Sprzedaż kopii Emacsa jest przykładem jednego rodzaju biznesu związanego z wolnym oprogramowaniem. Kiedy FSF przejęło tę firmę, potrzebowałem innego sposobu na zarabianie na życie. Znalazłem to w sprzedaży usług związanych z wolnym oprogramowaniem, które stworzyłem. Obejmowało to nauczanie takich przedmiotów, jak programowanie GNU Emacs i dostosowywanie GCC oraz tworzenie oprogramowania, głównie przenoszenie GCC na nowe platformy.

Obecnie każdy z tych rodzajów działalności związanej z wolnym oprogramowaniem jest praktykowany przez wiele korporacji. Niektórzy rozpowszechniają kolekcje wolnego oprogramowania na CD-ROM-ach; inni sprzedają wsparcie na różnych poziomach, od odpowiadania na pytania użytkowników, przez naprawianie błędów, po dodawanie nowych, ważnych funkcji. Zaczynamy nawet widzieć firmy zajmujące się wolnym oprogramowaniem, które opierają się na wprowadzaniu na rynek nowych produktów wolnego oprogramowania.

Uważaj jednak – wiele firm kojarzących się z terminem „open source” w rzeczywistości opiera swoją działalność na niewolnym oprogramowaniu, które współpracuje z wolnym oprogramowaniem. To nie są firmy zajmujące się wolnym oprogramowaniem, to firmy zajmujące się oprogramowaniem własnościowym, których produkty kuszą użytkowników od wolności. Nazywają te programy „pakietami wartości dodanej”, co pokazuje wartości, jakie chcieliby, abyśmy przyjęli: wygoda ponad wolność. Jeśli bardziej cenimy wolność, powinniśmy nazwać je pakietami „odejmowanymi od wolności”.

Cele techniczne

Głównym celem GNU jest bycie wolnym oprogramowaniem. Nawet gdyby GNU nie miało przewagi technicznej nad Uniksem, miałoby przewagę społeczną, pozwalając użytkownikom na współpracę, oraz przewagę etyczną, szanując wolność użytkownika.

Naturalnym było jednak zastosowanie w pracy znanych standardów dobrych praktyk — na przykład dynamicznego przydzielania struktur danych w celu uniknięcia arbitralnych stałych limitów rozmiaru i obsługi wszystkich możliwych kodów 8-bitowych, jeśli miało to sens.

Ponadto odrzuciliśmy skupienie się Uniksa na małym rozmiarze pamięci, decydując się nie wspierać maszyn 16-bitowych (było jasne, że maszyny 32-bitowe będą normą, zanim system GNU został ukończony) i nie podejmować żadnych wysiłków aby zmniejszyć zużycie pamięci, chyba że przekroczy megabajt. W programach, dla których obsługa bardzo dużych plików nie była kluczowa, zachęcaliśmy programistów do wczytywania całego pliku wejściowego do rdzenia, a następnie skanowania jego zawartości bez martwienia się o operacje we/wy.

Decyzje te umożliwiły wielu programom GNU prześcignięcie swoich uniksowych odpowiedników pod względem niezawodności i szybkości.

Podarowane komputery

W miarę jak rosła reputacja Projektu GNU, ludzie zaczęli oferować darowizny maszyn z systemem Unix na rzecz projektu. Były one bardzo przydatne, ponieważ najłatwiejszym sposobem opracowania komponentów GNU było zrobienie tego w systemie Unix i zastąpienie komponentów tego systemu o jeden, ale poruszyli kwestię etyczną: czy w ogóle słuszne było posiadanie kopii Uniksa.

Unix był (i jest) oprogramowaniem zastrzeżonym, a filozofia Projektu GNU głosiła, że ​​nie powinniśmy używać oprogramowania zastrzeżonego. Jednak stosując to samo rozumowanie, które prowadzi do wniosku, że przemoc w samoobronie jest uzasadniona, doszedłem do wniosku, że używanie zastrzeżony pakiet, gdy było to kluczowe dla opracowania bezpłatnego zamiennika, który pomógłby innym zaprzestać korzystania z zastrzeżonego pakietu.

Ale nawet jeśli było to zło usprawiedliwione, nadal było złem. Dziś nie mamy już żadnych kopii Uniksa, ponieważ zastąpiliśmy je darmowymi systemami operacyjnymi. Jeśli nie mogliśmy zastąpić systemu operacyjnego maszyny darmowym, zamiast tego wymienialiśmy maszynę.

Lista zadań GNU

W miarę postępów Projektu GNU i odnajdywania lub opracowywania coraz większej liczby komponentów systemu, w końcu przydatne stało się sporządzenie listy pozostałych luk. Wykorzystaliśmy go do rekrutacji programistów do napisania brakujących elementów. Lista ta stała się znana jako Lista Zadań GNU. Oprócz brakujących komponentów Uniksa wymieniliśmy różne inne przydatne projekty oprogramowania i dokumentacji, które naszym zdaniem powinien zawierać naprawdę kompletny system.

Obecnie (1) na Liście Zadań GNU nie ma prawie żadnych komponentów uniksowych — te zadania zostały wykonane, poza kilkoma nieistotnymi. Ale lista jest pełna projektów, które niektórzy mogą nazwać „aplikacjami”. Dodanie do systemu operacyjnego dowolnego programu, który przemawia do więcej niż wąskiej klasy użytkowników, byłoby przydatne.

Nawet gry znajdują się na liście zadań — i były tak od samego początku. Unix zawierał gry, więc naturalnie GNU też powinno. Ale kompatybilność nie była problemem w przypadku gier, więc nie śledziliśmy listy gier dostępnych w Unixie. Zamiast tego wymieniliśmy spektrum różnych rodzajów gier, które mogą spodobać się użytkownikom.

(1) Napisano to w 1998 r. W 2009 r. nie prowadzimy już długiej listy zadań. Społeczność tworzy wolne oprogramowanie tak szybko, że nie jesteśmy w stanie nawet tego wszystkiego śledzić. Zamiast tego mamy listę projektów o wysokim priorytecie, znacznie krótszą listę projektów, do których pisania naprawdę chcemy zachęcić ludzi.

Biblioteka GNU GPL

Biblioteka GNU C korzysta ze specjalnego rodzaju prawa autorskiego zwanego Powszechną Licencją Publiczną Bibliotek GNU(1), które pozwala na łączenie prawnie zastrzeżonego oprogramowania z biblioteką. Dlaczego zrobić ten wyjątek?

To nie jest kwestia zasad; nie ma żadnej zasady mówiącej, że oprogramowanie zastrzeżone może zawierać nasz kod. (Po co brać udział w projekcie polegającym na odmowie dzielenia się z nami?) Korzystanie z LGPL w bibliotece C lub jakiejkolwiek innej bibliotece jest kwestią strategii.

Biblioteka C wykonuje zadanie ogólne; każdy zastrzeżony system lub kompilator zawiera bibliotekę C. Dlatego też udostępnienie naszej biblioteki C wyłącznie wolnemu oprogramowaniu nie dałoby wolnemu oprogramowaniu żadnej korzyści – zniechęciłoby jedynie do korzystania z naszej biblioteki.

Jeden system stanowi wyjątek: w systemie GNU (w tym GNU/Linux) biblioteka GNU C jest jedyną biblioteką C. Zatem warunki dystrybucji biblioteki GNU C określają, czy możliwe jest skompilowanie prawnie zastrzeżonego programu dla systemu GNU. Nie ma etycznego powodu, aby zezwalać na aplikacje zastrzeżone w systemie GNU, ale ze strategicznego punktu widzenia wydaje się, że ich zabronienie bardziej zniechęciłoby do korzystania z systemu GNU niż zachęciłoby do tworzenia wolnych aplikacji. Dlatego też korzystanie z Biblioteki GPL jest dobrą strategią dla biblioteki C.

W przypadku innych bibliotek decyzję strategiczną należy rozpatrywać indywidualnie dla każdego przypadku. Kiedy biblioteka wykonuje specjalną pracę, która może pomóc w pisaniu określonego rodzaju programów, wówczas udostępnienie jej na licencji GPL, ograniczając ją wyłącznie do programów wolnych, jest sposobem na pomoc innym twórcom wolnego oprogramowania, dając im przewagę nad oprogramowaniem zastrzeżonym.

Weźmy pod uwagę GNU Readline, bibliotekę opracowaną w celu umożliwienia edycji z wiersza poleceń dla BASH. Readline jest wydawany na zwykłej licencji GNU GPL, a nie Bibliotecznej GPL. Prawdopodobnie zmniejsza to ilość używanego Readline, ale nie jest to dla nas żadna strata. Tymczasem przynajmniej jedna przydatna aplikacja był stworzyło wolne oprogramowanie specjalnie po to, by móc korzystać z Readline, i to jest prawdziwy zysk dla społeczności.

Twórcy oprogramowania własnościowego mają korzyści, jakie zapewniają pieniądze; twórcy wolnego oprogramowania muszą zapewnić sobie nawzajem korzyści. Mam nadzieję, że pewnego dnia będziemy mieli dużą kolekcję bibliotek objętych licencją GPL, które nie mają odpowiednika w stosunku do prawnie zastrzeżonego oprogramowania, dostarczając przydatnych modułów, które będą służyć jako elementy składowe nowego wolnego oprogramowania i co stanowić będzie ogromną zaletę w dalszym rozwoju wolnego oprogramowania.

(1) Licencja ta nazywa się obecnie Mniejszą Powszechną Licencją Publiczną GNU, aby uniknąć sugerowania, że ​​wszystkie biblioteki powinny z niej korzystać. Aby uzyskać więcej informacji, zobacz Dlaczego nie powinieneś używać pomniejszej licencji GPL w swojej następnej bibliotece.

Drapanie ze swędzeniem?

Eric Raymond mówi, że „każda dobra praca nad oprogramowaniem zaczyna się od podrapania osobistej drażliwości programisty”. Być może czasami tak się dzieje, ale wiele istotnych elementów oprogramowania GNU zostało opracowanych w celu uzyskania kompletnego, wolnego systemu operacyjnego.Pochodzą one z wizji i planu, a nie z impulsu.

Na przykład opracowaliśmy bibliotekę GNU C, ponieważ system uniksowy potrzebuje biblioteki C, BASH, ponieważ system uniksowy potrzebuje powłoki, a GNU tar, ponieważ system uniksowy potrzebuje programu tar. To samo dotyczy moich własnych programów – kompilatora GNU C, GNU Emacsa, GDB i GNU Make.

Niektóre programy GNU zostały opracowane, aby stawić czoła konkretnym zagrożeniom dla naszej wolności. Dlatego opracowaliśmy gzip, aby zastąpić program Compress, który został utracony dla społeczności z powodu patentów LZW. Znaleźliśmy ludzi do rozwijania LessTif, a ostatnio uruchomiliśmy GNOME i Harmony, aby rozwiązać problemy powodowane przez niektóre zastrzeżone biblioteki (patrz poniżej). Rozwijamy GNU Privacy Guard, aby zastąpić popularne, niewolne oprogramowanie szyfrujące, ponieważ użytkownicy nie powinni być zmuszeni wybierać pomiędzy prywatnością a wolnością.

Oczywiście ludzie piszący te programy zainteresowali się dziełem i wiele funkcji zostało dodanych do nich przez różnych ludzi w trosce o własne potrzeby i zainteresowania. Ale nie po to istnieją te programy.

Nieoczekiwany rozwój sytuacji

Na początku Projektu GNU wyobrażałem sobie, że opracujemy cały system GNU, a następnie wypuścimy go w całości. To nie tak się stało.

Ponieważ każdy komponent systemu GNU został zaimplementowany w systemie Unix, każdy komponent mógł działać w systemach Unix na długo przed powstaniem kompletnego systemu GNU. Niektóre z tych programów stały się popularne, a użytkownicy zaczęli je rozszerzać i przenosić — na różne niekompatybilne wersje Uniksa, a czasem także na inne systemy.

Proces ten uczynił te programy znacznie potężniejszymi i przyciągnął zarówno fundusze, jak i współpracowników do Projektu GNU. Ale prawdopodobnie opóźniło to także ukończenie minimalnie działającego systemu o kilka lat, ponieważ programiści GNU poświęcili czas na utrzymanie tych portów i dodanie funkcji do istniejących komponentów, zamiast pisać jeden brakujący komponent po drugim.

Hurda GNU

Do roku 1990 system GNU był prawie ukończony; jedynym głównym brakującym elementem było jądro. Zdecydowaliśmy się zaimplementować nasze jądro jako zbiór procesów serwerowych działających na Machu. Mach to mikrojądro opracowane na Uniwersytecie Carnegie Mellon, a następnie na Uniwersytecie Utah; GNU Hurd to zbiór serwerów (tj. stado GNU), które działają na platformie Mach i wykonują różne zadania jądra Uniksa. Rozpoczęcie rozwoju zostało opóźnione, ponieważ zgodnie z obietnicami oczekiwaliśmy, aż Mach zostanie wydany jako wolne oprogramowanie.

Jednym z powodów wyboru tego projektu była chęć uniknięcia najtrudniejszej części pracy: debugowania programu jądra bez debugera na poziomie źródła. Ta część pracy została już wykonana w Machu i spodziewaliśmy się debugowania serwerów Hurd jako programów użytkownika za pomocą GDB. Jednak umożliwienie tego zajęło dużo czasu, a wielowątkowe serwery wysyłające między sobą wiadomości okazały się bardzo trudne do debugowania. Solidne działanie Hurda trwało wiele lat.

Alix

Jądro GNU pierwotnie nie miało nazywać się Hurd. Jego pierwotna nazwa brzmiała Alix – na cześć kobiety, która była wówczas moją ukochaną. Ona, administratorka systemu Unix, wskazała, jak jej imię pasuje do powszechnego wzorca nazewnictwa dla wersji systemu Unix; w ramach żartu powiedziała swoim przyjaciołom: „Ktoś powinien nazwać jądro moim imieniem”. Nic nie powiedziałem, ale postanowiłem zaskoczyć ją jądrem o nazwie Alix.

Tak nie pozostało. Michael (obecnie Thomas) Bushnell, główny twórca jądra, wolał nazwę Hurd i na nowo zdefiniował Alix, tak aby odnosił się do pewnej części jądra — tej części, która przechwytuje wywołania systemowe i obsługuje je poprzez wysyłanie komunikatów do serwerów Hurd.

Później zerwaliśmy z Alix, a ona zmieniła nazwisko; niezależnie projekt Hurda został zmieniony tak, aby biblioteka C wysyłała wiadomości bezpośrednio do serwerów, co spowodowało zniknięcie komponentu Alix z projektu.

Ale zanim to wszystko się wydarzyło, jej przyjaciółka natknęła się na nazwę Alix w kodzie źródłowym Hurda i wspomniała jej o tym. Miała więc szansę znaleźć jądro nazwane jej imieniem.

Linux i GNU/Linux

GNU Hurd nie nadaje się do użytku produkcyjnego i nie wiemy, czy kiedykolwiek będzie. Projekt oparty na możliwościach ma problemy, które wynikają bezpośrednio z elastyczności projektu i nie jest jasne, czy istnieją rozwiązania.

Na szczęście dostępne jest inne jądro. W 1991 roku Linus Torvalds opracował jądro kompatybilne z Uniksem i nazwał je Linux. Początkowo było to oprogramowanie zastrzeżone, ale w 1992 roku uczyniło je wolnym oprogramowaniem; połączenie Linuksa z niezupełnie kompletnym systemem GNU zaowocowało kompletnym, darmowym systemem operacyjnym. (Oczywiście ich połączenie było samo w sobie poważnym zadaniem.) To dzięki Linuksowi możemy dzisiaj uruchomić wersję systemu GNU.

Wyzwania naszej przyszłości

Udowodniliśmy, że jesteśmy w stanie stworzyć szerokie spektrum wolnego oprogramowania. Nie oznacza to jednak, że jesteśmy niepokonani i nie do zatrzymania. Kilka wyzwań sprawia, że ​​przyszłość wolnego oprogramowania jest niepewna; sprostanie im będzie wymagało nieustannego wysiłku i wytrwałości, czasem trwającej latami. Będzie to wymagało determinacji, jaką wykazują ludzie, gdy cenią swoją wolność i nie pozwolą nikomu jej odebrać.

W poniższych czterech sekcjach omówiono te wyzwania.

Tajny sprzęt

Producenci sprzętu coraz częściej utrzymują w tajemnicy specyfikacje sprzętu. Utrudnia to pisanie darmowych sterowników, aby Linux i XFree86 mogły obsługiwać nowy sprzęt. Dziś mamy całkowicie darmowe systemy, ale nie będziemy ich mieć jutro, jeśli nie będziemy w stanie obsługiwać komputerów jutra.

Istnieją dwa sposoby poradzenia sobie z tym problemem. Programiści mogą przeprowadzić inżynierię wsteczną, aby dowiedzieć się, jak obsługiwać sprzęt. Reszta z nas może wybrać sprzęt obsługiwany przez wolne oprogramowanie; w miarę wzrostu naszej liczby, tajemnica specyfikacji stanie się polityką autodestrukcyjną.

Inżynieria odwrotna to duże zadanie; czy będziemy mieli programistów z wystarczającą determinacją, aby się tego podjąć? Tak – jeśli wyrobimy sobie silne przekonanie, że wolne oprogramowanie to kwestia zasad, a niewolne sterowniki są nie do tolerowania. I czy wielu z nas wyda dodatkowe pieniądze lub nawet trochę dodatkowego czasu, aby móc korzystać z bezpłatnych sterowników? Tak, jeśli determinacja w dążeniu do wolności będzie powszechna.

(Uwaga z 2008 r.: ten problem dotyczy także BIOS-u. Dostępny jest darmowy BIOS, LibreBoot (dystrybucja coreboot); problemem jest uzyskanie specyfikacji maszyn, aby LibreBoot mógł je obsługiwać bez niewolnych „blobów”.)

Biblioteki niewolne

Niewolna biblioteka działająca na wolnych systemach operacyjnych działa jak pułapka na twórców wolnego oprogramowania. Atrakcyjne funkcje biblioteki są przynętą; jeśli korzystasz z biblioteki, wpadasz w pułapkę, ponieważ twój program nie może z pożytkiem być częścią wolnego systemu operacyjnego. (Ściśle mówiąc, moglibyśmy uwzględnić twój program, ale to nie będzie uruchomić z brakującą biblioteką.) Co gorsza, jeśli program korzystający z zastrzeżonej biblioteki stanie się popularny, może zwabić w pułapkę innych niczego niepodejrzewających programistów.

Pierwszym przykładem tego problemu był zestaw narzędzi Motif już w latach 80-tych. Chociaż nie było jeszcze wolnych systemów operacyjnych, było jasne, jakie problemy sprawi im później Motif. Projekt GNU zareagował na dwa sposoby: prosząc poszczególne projekty wolnego oprogramowania o obsługę darmowych widżetów X Toolkit oraz Motif, oraz prosząc kogoś o napisanie darmowego zamiennika Motif. Ta praca trwała wiele lat; LessTif, opracowany przez Hungry Programmers, stał się wystarczająco potężny, aby obsługiwać większość aplikacji Motif dopiero w 1997 roku.

W latach 1996-1998 inna niewolna biblioteka zestawu narzędzi GUI, zwana Qt, była używana w znacznej kolekcji wolnego oprogramowania, komputerowym KDE.

W wolnych systemach GNU/Linux nie można było używać KDE, ponieważ nie mogliśmy korzystać z biblioteki. Jednakże niektórzy komercyjni dystrybutorzy systemów GNU/Linux, którzy nie byli rygorystyczni w trzymaniu się wolnego oprogramowania, dodali KDE do swoich systemów, tworząc system z większymi możliwościami, ale mniejszą swobodą. Grupa KDE aktywnie zachęcała więcej programistów do używania Qt, a miliony nowych „użytkowników Linuksa” nigdy nie zetknęło się z myślą, że jest w tym problem. Sytuacja wydawała się ponura.

Społeczność wolnego oprogramowania odpowiedziała na problem na dwa sposoby: GNOME i Harmony.

GNOME, środowisko sieciowego modelu obiektów sieciowych GNU, jest projektem GNU na komputery stacjonarne. Rozpoczęty w 1997 roku przez Miguela de Icaza i rozwijany przy wsparciu oprogramowania Red Hat Software, środowisko GNOME miało na celu zapewnienie podobnych funkcji dla komputerów stacjonarnych, ale wykorzystując wyłącznie wolne oprogramowanie. ma również zalety techniczne, takie jak obsługa różnych języków, nie tylko C++, ale jego głównym celem była swoboda: nie wymaganie używania żadnego niewolnego oprogramowania.

Harmony jest kompatybilną biblioteką zastępczą, zaprojektowaną, aby umożliwić uruchamianie oprogramowania KDE bez użycia Qt.

W listopadzie 1998 twórcy Qt ogłosili zmianę licencji, która po przeprowadzeniu powinna uczynić Qt wolnym oprogramowaniem. Nie ma pewności, ale myślę, że było to częściowo spowodowane zdecydowaną reakcją społeczności na problem, jaki stwarzał Qt, gdy nie był wolny. (Nowa licencja jest niewygodna i niesprawiedliwa, dlatego pożądane jest unikanie używania Qt.)

Jak zareagujemy na kolejną kuszącą, niewolną bibliotekę? Czy cała społeczność zrozumie potrzebę trzymania się z dala od pułapki? A może wielu z nas zrezygnuje z wolności dla wygody i stworzy poważny problem? Nasza przyszłość zależy od naszej filozofii.

Patenty na oprogramowanie

Najgorszym zagrożeniem, przed jakim stoimy, są patenty na oprogramowanie, które mogą uniemożliwić korzystanie z algorytmów i funkcji wolnego oprogramowania nawet na dwadzieścia lat. O patenty na algorytm kompresji LZW złożono wniosek w 1983 roku, a mimo to nadal nie możemy wypuścić darmowego oprogramowania umożliwiającego tworzenie odpowiednio skompresowanych plików GIF. W 1998 r. bezpłatny program do tworzenia skompresowanego dźwięku MP3 został wycofany z dystrybucji pod groźbą pozwu patentowego.

Istnieją sposoby radzenia sobie z patentami: możemy szukać dowodów na nieważność patentu i możemy szukać alternatywnych sposobów wykonania pracy. Ale każda z tych metod działa tylko czasami; gdy oba zawiodą, patent może sprawić, że całe wolne oprogramowanie będzie pozbawione jakiejś funkcji, której oczekują użytkownicy. Po długim oczekiwaniu patenty wygasają (patenty na MP3 mają wygasnąć do 2018 r.), ale co zrobimy do tego czasu?

Ci z nas, którzy cenią wolne oprogramowanie dla samej wolności, i tak pozostaną przy wolnym oprogramowaniu. Damy sobie radę bez opatentowanych funkcji. Ale ci z nas, którzy cenią wolne oprogramowanie, ponieważ oczekują, że będzie ono lepsze pod względem technicznym, prawdopodobnie nazwą to porażką, gdy patent ją powstrzymuje. Zatem choć warto mówić o praktycznej efektywności „bazarowego” modelu rozwoju oraz niezawodności i mocy niektórych wolnych programów, nie możemy na tym poprzestać. Musimy porozmawiać o wolność i zasady.

Bezpłatna dokumentacja

Największą wadą naszych wolnych systemów operacyjnych nie jest oprogramowanie — jest to brak dobrych, bezpłatnych podręczników, które moglibyśmy włączyć do naszych systemów. Dokumentacja jest istotną częścią każdego pakietu oprogramowania; gdy do ważnego pakietu wolnego oprogramowania nie jest dołączona dobra, bezpłatna instrukcja, jest to poważna luka. Dziś mamy wiele takich luk.

Wolna dokumentacja, podobnie jak wolne oprogramowanie, jest kwestią wolności, a nie ceny. Kryterium wolnego podręcznika jest prawie takie samo jak w przypadku wolnego oprogramowania: chodzi o zapewnienie wszystkim użytkownikom pewnych swobód. Redystrybucja (w tym sprzedaż komercyjna) musi być dozwolona, ​​zarówno w Internecie, jak i na papierze, tak aby podręcznik mógł towarzyszyć każdej kopii programu.

Zezwolenie na modyfikację jest również istotne. Co do zasady nie uważam, że posiadanie pozwolenia na modyfikowanie wszelkiego rodzaju artykułów i książek jest niezbędne. Na przykład nie uważam, że ani Ty, ani ja jesteśmy zobowiązani do udzielania pozwolenia na modyfikowanie artykułów takich jak ten , które opisują nasze działania i nasze poglądy.

Istnieje jednak szczególny powód, dla którego swoboda modyfikacji jest kluczowa dla dokumentacji wolnego oprogramowania. Kiedy ludzie korzystają ze swojego prawa do modyfikowania oprogramowania oraz dodawania lub zmiany jego funkcji, jeśli będą sumienni, zmienią także instrukcję, aby móc zapewnić dokładną i użyteczną dokumentację zmodyfikowanego programu. Niewolny podręcznik, który nie pozwala programistom zachować sumienności i dokończyć pracy, nie zaspokaja potrzeb naszej społeczności.

Pewne ograniczenia dotyczące sposobu dokonywania modyfikacji nie stanowią problemu. Na przykład wymagania dotyczące zachowania informacji o prawach autorskich oryginalnego autora, warunków rozpowszechniania lub listy autorów są w porządku. Nie jest również problemem wymaganie, aby zmodyfikowane wersje zawierały informację o ich modyfikacji, nawet aby całe sekcje zawierały nie można usuwać ani zmieniać, o ile te sekcje dotyczą tematów nietechnicznych. Tego rodzaju ograniczenia nie stanowią problemu, ponieważ nie powstrzymują sumiennego programisty od dostosowania podręcznika do zmodyfikowanego programu. Innymi słowy, nie uniemożliwiają społeczności wolnego oprogramowania pełnego korzystania z podręcznika.

Jednakże musi istnieć możliwość modyfikacji wszystkich plików techniczny treść podręcznika, a następnie rozpowszechnij wynik we wszystkich zwykłych mediach, wszystkimi zwykłymi kanałami; w przeciwnym razie ograniczenia rzeczywiście utrudniają społeczność, podręcznik nie jest bezpłatny i potrzebujemy kolejnego podręcznika.

Czy twórcy wolnego oprogramowania będą mieli świadomość i determinację, aby stworzyć pełne spektrum bezpłatnych podręczników? Po raz kolejny nasza przyszłość zależy od filozofii.

Musimy rozmawiać o wolności

Dzisiejsze szacunki są takie tam są dziesięciu milionów użytkowników systemów GNU/Linux, takich jak Debian GNU/Linux i Red Hat „Linux”. Wolne oprogramowanie rozwinęło tak praktyczne zalety, że użytkownicy uciekają się do niego z powodów czysto praktycznych.

Dobre konsekwencje tego są oczywiste: większe zainteresowanie rozwojem wolnego oprogramowania, więcej klientów dla firm zajmujących się wolnym oprogramowaniem i większa zdolność zachęcania firm do rozwijania komercyjnego wolnego oprogramowania zamiast prawnie zastrzeżonego oprogramowania.

Jednak zainteresowanie oprogramowaniem rośnie szybciej niż świadomość filozofii, na jakiej jest ono oparte, a to prowadzi do kłopotów. Nasza zdolność do sprostania opisanym powyżej wyzwaniom i zagrożeniom zależy od woli niezachwianego opowiadania się za wolnością. Aby mieć pewność, że nasza społeczność będzie miała taką wolę, musimy rozpowszechniać tę ideę wśród nowych użytkowników, gdy tylko dołączą do społeczności.

Jednak nam się to nie udaje: wysiłki mające na celu przyciągnięcie nowych użytkowników do naszej społeczności znacznie przewyższają wysiłki mające na celu nauczenie ich obywatelstwa naszej społeczności. Musimy zrobić jedno i drugie i zachować równowagę między tymi dwoma wysiłkami.

"Otwarte źródło"

Nauczanie nowych użytkowników o wolności stało się trudniejsze w 1998 r., kiedy część społeczności zdecydowała się zaprzestać używania terminu „wolne oprogramowanie” i zamiast tego powiedzieć „oprogramowanie open source”.

Niektórzy, którzy opowiadali się za tym terminem, chcieli uniknąć pomylenia słowa „bezpłatny” z „darmowym” – co było celem słusznym. Inni jednak mieli na celu odłożenie na bok ducha zasad, który motywował ruch wolnego oprogramowania i Projekt GNU, i zamiast tego zwrócenie się do kadry kierowniczej i użytkowników biznesowych, z których wielu wyznaje ideologię, która stawia zysk ponad wolność, ponad społeczność, ponad zasada Zatem retoryka „otwartego oprogramowania” koncentruje się na potencjale tworzenia wysokiej jakości, potężnego oprogramowania, ale odrzuca idee wolności, wspólnoty i zasad.

Magazyny „Linux” są tego wyraźnym przykładem – są wypełnione reklamami prawnie zastrzeżonego oprogramowania współpracującego z GNU/Linuksem. Czy kiedy pojawi się kolejny Motif lub Qt, te magazyny będą ostrzegać programistów, aby trzymali się od nich z daleka, czy też będą wyświetlać reklamy?

Wsparcie biznesu może przyczynić się do rozwoju społeczności na wiele sposobów; wszystko inne jest równe, jest to przydatne. Jednak zdobycie ich poparcia poprzez mówienie jeszcze mniej o wolności i zasadach może mieć katastrofalne skutki; pogłębia to dotychczasową nierównowagę pomiędzy działaniami informacyjnymi a edukacją obywatelską.

„Wolne oprogramowanie” i „otwarte oprogramowanie” opisują mniej więcej tę samą kategorię oprogramowania, ale mówią co innego o oprogramowaniu i wartościach. Projekt GNU w dalszym ciągu używa terminu „wolne oprogramowanie”, aby wyrazić ideę, że wolność, a nie tylko technologia, jest ważna.

Próbować!

Aforyzm Yody („Nie ma żadnego «próbowania»”) brzmi nieźle, ale w moim przypadku nie działa. Większość swojej pracy wykonywałem, niepewny, czy sobie poradzę, i niepewny, czy wystarczy, aby osiągnąć cel, jeśli mi się to uda. Ale i tak próbowałem, bo między wrogiem a moim miastem nie było nikogo oprócz mnie. Sama jestem zaskoczona, że ​​czasem mi się to udaje.

Czasami ponosiłem porażkę; niektóre z moich miast upadły. Potem znalazłem inne zagrożone miasto i przygotowałem się na kolejną bitwę. Z biegiem czasu nauczyłem się szukać zagrożeń i stawać między nimi a moim miastem, wzywając innych hakerów, aby przyszli i dołączyli do mnie.

Obecnie często nie jestem jedyny. Z ulgą i radością widzę pułk hakerów okopujących się, by utrzymać linię, i zdaję sobie sprawę, że to miasto może przetrwać – na razie. Ale niebezpieczeństwa są większe za każdym razem roku, a teraz Microsoft wyraźnie obrał za cel naszą społeczność. Nie możemy przyjmować przyszłości wolności za oczywistość. Nie traktuj tego jako coś oczywistego! Jeśli chcesz zachować wolność, musisz być przygotowany na jej obronę.

TH.arial (rodzina czcionek: Arial, Serif;) P.topic (rodzina czcionek: bezszeryfowa;) A.plain (dekoracja tekstu: brak;) A.topic01 ( kolor: #006890; rodzina czcionek: bezszeryfowa; dekoracja tekstu: brak;) A.topic02 ( kolor: #099771; rodzina czcionek: bezszeryfowa; dekoracja tekstu: brak;) A.topic03 ( kolor: #719709; rodzina czcionek: sans- serif; dekoracja tekstu: brak;) A.topic04 ( kolor: #98650A; rodzina czcionek: bezszeryfowa; dekoracja tekstu: brak;) A.topic05 ( kolor: #98340A; rodzina czcionek: bezszeryfowa; dekoracja tekstu: brak;) A.topic06 ( kolor: #099607; rodzina czcionek: bezszeryfowa; dekoracja tekstu: brak;) A.topic07 ( kolor: #9E1215; rodzina czcionek: bezszeryfowa; tekst- dekoracja: brak;) A.topic08 ( kolor: #970941; rodzina czcionek: bezszeryfowa; dekoracja tekstu: brak;) A.topic09 ( kolor: #950995; rodzina czcionek: bezszeryfowa; dekoracja tekstu: brak;) A.topic010 ( kolor: #390A98; rodzina czcionek: bezszeryfowa; dekoracja tekstu: brak;) H1 ( rodzina czcionek: bezszeryfowa;) H2 ( rodzina czcionek: bezszeryfowa;) H3 ( rodzina czcionek: bezszeryfowa;) H4 ( rodzina czcionek: bezszeryfowa;) H5 ( rodzina czcionek: bezszeryfowa;) H6 ( rodzina czcionek: bezszeryfowa;)

Ideologia wolnego oprogramowania i projekt GNU: stan obecny i najbliższe zadania

S.D.Kuzniecow

Fundacja Wolnego Oprogramowania (FSF) to bardzo ciekawe i pod wieloma względami wyjątkowe zjawisko we współczesnym świecie programowania. Wielu krajowych programistów miało do czynienia z programami FSF (szczególnie znany jest system programowania GCC), jednak brak publikacji w języku rosyjskim utrudnia zrozumienie ideologii i celów FSF, a także uniemożliwia ocenę istniejące podłoże. Celem tego krótkiego artykułu jest choć częściowe wypełnienie tej luki. Cały artykuł oparty jest na materiale FSF i dlatego, zgodnie z ogólnymi zasadami tej organizacji, może być swobodnie przedrukowywany, kopiowany lub w inny sposób rozpowszechniany (z zastrzeżeniem niniejszego powiadomienia).

1. Ideologia FSF i ogólne cele Projektu GNU

FSF to organizacja zajmująca się oprogramowaniem założona i prowadzona przez Richarda Stallmana. W najbardziej ogólnym ujęciu celem FSF jest wyeliminowanie ograniczeń w kopiowaniu, rozpowszechnianiu, badaniu i modyfikowaniu programów komputerowych. Aby osiągnąć ten ogólny cel, FSF zachęca do tworzenia i używania wolnego oprogramowania przeznaczonego dla szerokiej klasy aplikacji.

W swoim Manifeście GNU, napisanym w 1985 roku, R. Stallman przedstawia swój sprzeciw wobec własności oprogramowania jako głównej idei, która doprowadziła do powstania FSF i Projektu GNU. Specyfika relacji w społeczności programistów często stawia ludzi przed wyborem podążania za naturalnym uczuciem przyjaźni i wzajemnej pomocy lub poddania się prawom własności, które to uniemożliwiają. Dzięki wolnemu oprogramowaniu znika potrzeba dokonywania tak uciążliwych wyborów.

Stworzenie zintegrowanego systemu wolnego oprogramowania pozwala uniknąć powielania pracy programistów (co jest często wymagane tylko dlatego, że oprogramowanie jest zastrzeżone). Bezpłatna dystrybucja kodów źródłowych programów ułatwia ich utrzymanie i dostosowywanie do potrzeb konkretnego użytkownika (nie ma konieczności korzystania z usług wyłącznie firm posiadających licencje na kod źródłowy). Istnieje dodatkowa i bardzo ważna możliwość wykorzystania dobrego oprogramowania do celów edukacyjnych.

Zdaniem R. Stallmana, w okresie przejścia na wolne oprogramowanie programiści nie umrą z głodu (choć pozornie będą zarabiać nieco mniej). Ograniczanie kopiowania oprogramowania to nie jedyny sposób na zarabianie pieniędzy. Główną ideą Stallmana jest to, że to nie oprogramowanie trzeba sprzedać, ale pracę programisty. W szczególności źródłem dochodu może być utrzymanie systemów oprogramowania lub ich konfiguracja do użytku na nowych komputerach i/lub w nowych warunkach, nauczanie itp.

„Manifest” Stallmana jest napisany bardzo emocjonalnie i miejscami jest zbyt utopijny. Niemniej jednak wydaje się, że idee wolnego oprogramowania są historycznie bliskie tradycyjnym (z wyjątkiem bardzo ostatnich lat) stosunkom pomiędzy sowieckimi programistami. Być może linia FSF jest najbardziej naturalną drogą do głębokiej integracji krajowych i światowych środowisk programistycznych.

Mówiąc dokładniej, FSF opracowuje programy w ramach projektu GNU (skrót GNU jest rozwijany rekurencyjnie - GNU „s Not Unix). Celem projektu GNU jest stworzenie kompletnego zintegrowanego systemu oprogramowania, którego narzędzia są kompatybilne z możliwości środowiska systemu operacyjnego Unix (z reguły możliwości programów GNU są szerszymi możliwościami analogów środowiska Unix).

Oprogramowanie FSF jest „wolne” w dwóch znaczeniach. Po pierwsze, każdy program można dowolnie kopiować i przekazywać komukolwiek. Po drugie, dostępność kodów źródłowych programów daje możliwość swobodnego studiowania programów, ulepszania ich i rozpowszechniania zmodyfikowanych wersji.

Tak jak prawa zwykłych producentów oprogramowania są chronione przez symbol praw autorskich, „wolność” systemów oprogramowania FSF jest chroniona przez „copyleft” – połączenie praw autorskich i dokumentu znajdującego się we wszystkich tekstach FSF zatytułowanego „GNU General Public License”. Dokument ten stwierdza prawa, jakie przysługują każdemu aktualnemu właścicielowi niniejszego tekstu oraz niemożność pozbawienia tych praw jakiegokolwiek innego podmiotu.

Główną działalnością FSF jest rozwój nowych komponentów wolnego oprogramowania w ramach Projektu GNU. W przeważającej części Projekt GNU rozwija się w sposób zaplanowany (patrz w szczególności Sekcja 3 tego artykułu), ale FSF akceptuje także programy bezpłatnej dystrybucji opracowane przez firmy i osoby prywatne z własnej inicjatywy. Ponadto FSF produkuje i sprzedaje taśmy z wolnym oprogramowaniem, przygotowuje, publikuje i dystrybuuje podręczniki do różnych komponentów oprogramowania GNU oraz utrzymuje i rozpowszechnia Katalog Usług, listę firm i osób, które świadczą płatne usługi użytkownikom programów GNU i systemy. .

Podstawą finansową FSF jest sprzedaż taśm i dokumentacji, a także sponsorowanie firm komercyjnych i osób prywatnych.

2. Dostępne oprogramowanie GNU

Obecnie nie wszystkie komponenty oprogramowania Projektu GNU są gotowe. Jednakże FSF dystrybuuje wiele programów, z których część jest napisana bezpośrednio przez programistów FSF, a część jest przekazywana FSF w celu bezpłatnej dystrybucji przez inne organizacje i osoby prywatne. Wymieńmy pokrótce oprogramowanie aktualnie dystrybuowane przez FSF.

Emacs to rozszerzalny edytor, który można dostosować do różnych typów terminali i potrzeb użytkowników. Rozszerzalność edytora opiera się na wykorzystaniu wbudowanego w edytorze interpretera języka Lisp (dialekt Common Lisp). Wraz z kodem źródłowym edytora dystrybuowane są podręczniki obsługi Emacsa oraz poradnik dotyczący programowania w języku Lisp w środowisku Emacs.

Bison jest zamiennikiem standardowego generatora parsera Yacc z pewnymi rozszerzeniami. Podręcznik jest również dystrybuowany.

Dwie implementacje uproszczonego dialektu języka Lisp - Scheme: jedna z MIT (napisana w C), druga z Yale University (napisana w Scheme).

Narzędzie texi2roff służy do konwersji plików tekstowych w formacie TeX na pliki tekstowe w standardzie formatu roff dla systemu operacyjnego Unix (dokumentacja rozpowszechniana przez FSF na nośnikach maszynowych jest w formacie TeX).

Narzędzia do pakowania/rozpakowywania plików tekstowych.

Program szachowy GNU.

GNU CC to przenośny kompilator optymalizujący dla języka C. W pełni obsługuje standard ANSI C. Zawiera narzędzia do półautomatycznej budowy generatorów kodu dla nowych komputerów. Dystrybuowane z instrukcją.

Jednoprzebiegowy, przenośny asembler GAS, który jest prawie dwa razy szybszy niż standardowy asembler systemu operacyjnego Unix.

Darmowe wersje narzędzi do pracy z plikami obiektowymi: ar, ld, nm, size, gprof, strip i ranlib. Dystrybuowane jest także nowe narzędzie do dynamicznego ładowania, dld.

GNU make zawiera prawie wszystkie funkcje narzędzi BSD, System V i POSIX make, a także zawiera wiele rozszerzeń. Dystrybuowane z instrukcją.

Debuger GDB może być używany do debugowania programów napisanych w językach C, C++ i Fortran. Dystrybuowane z instrukcją.

BASH (Bourne Again SHell) — powłoka GNU jest kompatybilna ze standardowym poleceniem sh uniksowym i zawiera szereg rozszerzeń zaczerpniętych z innych wariantów powłoki.

GAWK jest wersją GNU standardowego narzędzia AWK dla systemu operacyjnego Unix.

flex jest zamiennikiem GNU standardowego generatora analizatorów leksykalnych lex. flex pozwala uzyskać skanery, które są bardziej wydajne niż Lex.

GNU tar jest rozszerzoną wersją standardowego narzędzia archiwizującego tar.

Niektóre pliki z BSD 4.3-tahoe, które nie zawierają kodu źródłowego AT&T i zostały udostępnione do bezpłatnej dystrybucji przez Uniwersytet w Berkeley. Pliki te zawierają w szczególności pełne teksty źródłowe niektórych narzędzi, gier, procedur bibliotecznych itp.

Systemy wspierające pracę z wersjami programów w dużych projektach oprogramowania, RCS (Revision Control System) i CVS (Concurrent Version System).

Darmowe wersje narzędzi grep i diff są szybsze niż standardowe.

Ghostscript jest językiem graficznym niemal w pełni kompatybilnym z Postscriptem.

Interaktywny program do rysowania wyrażeń matematycznych i gnuplotu danych.

Zestaw narzędzi pozwalających przekształcić kompilator GCC w kompilator języka C++, zawierający zaawansowane biblioteki klas.

Ogromna liczba programów X11, implementacja X-Windows w MIT (wersja 11, wydanie 4). Objętość artykułu nie pozwala na szersze omówienie tego zagadnienia.

Zasadniczo wszystkie programy dystrybuowane przez FSF są przeznaczone do pracy w środowisku Unix i są już używane z różnymi wariantami tego systemu, ale istnieją wersje niektórych programów do pracy z VMS, a nawet MS-DOS.

3. Zadania bezpośrednie dla projektu GNU

Lista prac planowanych do wykonania w ramach Projektu GNU jest dość obszerna. Przedstawmy tylko krótki przegląd głównych kierunków.

3.1. Dokumentacja

Wymagane jest przygotowanie szeregu podręczników dla programów, które zostały już ukończone lub są bliskie ukończenia: podręcznik referencyjny dla języka C, opis GCC zawierający podręcznik do wyznaczania maszyn docelowych, podręcznik programowania systemów aplikacyjnych w języku C Środowisko X-Windows itp.

3.2. Projekty związane z rozwojem darmowego jądra Uniksa

FSF pracuje nad stworzeniem jądra Uniksa opartego na wolnym mikrojądrze Macha. Do natychmiastowych zadań należy wdrożenie protokołów sieciowych TCP/IP i nowego systemu plików (jest nadzieja na wykorzystanie gotowych programów, które mają zostać uznane za darmowe). Istnieją inne zadania, w tym opracowanie zdalnego debugera jądra systemu operacyjnego.

3.3. Rozwój darmowego środowiska uniksowego

Wymagana jest implementacja niektórych narzędzi (sdiff, mailx, Join itp.). Niezbędny jest rozwój szeregu bibliotek. Wśród zadań znajduje się rozwój przyjaznych dla użytkownika narzędzi interfejsu terminala.

3.4. Rozszerzenia istniejącego oprogramowania GNU

Zasadniczo Emacs, GCC i GDB wymagają ulepszeń.

W odniesieniu do Emacsa wymagane są dwa obszary ulepszeń: rozbudowa narzędzi Emacsa, aby umożliwić używanie tego edytora jako systemu wydawniczego i pełna internacjonalizacja Emacsa, umożliwiająca użycie dowolnego alfabetu narodowego.

Należy zaktualizować GCC, aby zająć się zaległościami w zakresie komentarzy i wdrożyć istniejące propozycje (lista komentarzy i sugestii jest przekazywana GCC).

GDB wymaga ulepszeń w zakresie wprowadzenia interpretera języka C do debugera; Pewnych usprawnień wymaga także możliwość wykorzystania GDB podczas debugowania programów napisanych w językach innych niż C.

3.5. Nowe kompilatory

Wymagana jest implementacja kompilatorów dla szeregu języków programowania (Algol, Algol-68, PL/1, Ada, itp.) z dostępem do generatora kodu GCC. (Takie prace już trwają w przypadku języków Fortran, Pascal i Modula-2.)

3.5. Wiele innych projektów

Na aktualnej liście nadchodzących zadań Projektu GNU znajduje się wiele innych różnorodnych prac. Wspomnijmy o chęci posiadania darmowych analogów systemów Page Maker, Ventura Pablisher, dbase2 czy dbase3 itp. Wymaga wielu programów dla X-Windows. Itp. i tak dalej.

4. Jak zdobyć więcej informacji i/lub programów GNU

We współczesnych warunkach domowych do komunikacji z FSF najlepiej używać poczty elektronicznej. Oficerem łącznikowym FSF ds. osób zainteresowanych dołączeniem do Projektu GNU jest Walter Poxon. Jego adres e-mail: Można od niego także uzyskać informację o zasadach odbioru taśm z oprogramowaniem od FSF postanowienia GNU. Niestety ta naturalna ścieżka nie za bardzo przystaje do obecnej sowieckiej rzeczywistości (opłata za taśmy, choć symboliczna, nadal uiszczana jest w twardej walucie).

Nasz kraj faktycznie ma wszystkie te taśmy. Każdy posiadacz, zgodnie z regulaminem gry FSF, zobowiązany jest do promowania ich dalszej dystrybucji. Niestety jest to sporo pracy technicznej. Radzieckie Stowarzyszenie Użytkowników UNIX OS (SUUG) planuje podjąć się, gdy tylko pozwolą na to warunki techniczne, bezpłatnej dystrybucji wolnego oprogramowania dla swoich członków i płatnego kopiowania taśm dla wszystkich (jest to kwestia najbliższych kilku miesięcy). Wszyscy członkowie SUUG otrzymają odpowiednie informacje, aktualne certyfikaty można uzyskać pocztą elektroniczną lub pod zwykłym adresem SUUG: 125502, Moskwa, ul. Ławoczkina, 19.

Literatura.

  1. Richarda M. Stallmana. Manifest GNU.
  2. Powszechna Licencja Publiczna GNU // Fundacja Wolnego Oprogramowania, 1989.
  3. Biuletyn GNU // Fundacja Wolnego Oprogramowania, 1991.
  4. Lista Zadań GNU (plik okresowo aktualizowany, dostępny pocztą elektroniczną; bazowaliśmy na wersji z 24 lipca 1991)
Opłaty Dochód

Błąd Lua w Module:Wikidata w linii 170: próba indeksowania pola „wikibase” (wartość zerowa).

Darowizny

Błąd Lua w Module:Wikidata w linii 170: próba indeksowania pola „wikibase” (wartość zerowa).

Liczba wolontariuszy

Błąd Lua w Module:Wikidata w linii 170: próba indeksowania pola „wikibase” (wartość zerowa).

Liczba pracowników

Błąd Lua w Module:Wikidata w linii 170: próba indeksowania pola „wikibase” (wartość zerowa).

Liczba członków

Błąd Lua w Module:Wikidata w linii 170: próba indeksowania pola „wikibase” (wartość zerowa).

Spółki zależne

Błąd Lua w Module:Wikidata w linii 170: próba indeksowania pola „wikibase” (wartość zerowa).

Własny

Błąd Lua w Module:Wikidata w linii 170: próba indeksowania pola „wikibase” (wartość zerowa).

Hasło

Błąd Lua w Module:Wikidata w linii 170: próba indeksowania pola „wikibase” (wartość zerowa).

Strona internetowa

Błąd Lua w Module:Wikidata w linii 170: próba indeksowania pola „wikibase” (wartość zerowa).

Data likwidacji

Błąd Lua w Module:Wikidata w linii 170: próba indeksowania pola „wikibase” (wartość zerowa).

Bieżąca praca Projektu GNU obejmuje tworzenie oprogramowania, podnoszenie świadomości, prowadzenie kampanii politycznych i dystrybucję nowych materiałów.

Geneza projektu

Kiedy projekt się rozpoczął,...

  • Nazwa asteroidy pochodzi od projektu GNU - (9965) GNU.

Zobacz też

Napisz recenzję artykułu „Projekt GNU”

Notatki

Spinki do mankietów

  • (Angielski) - oficjalna strona projektu GNU

Fragment opisujący Projekt GNU

– Kłamstwa, morderstwa, zdrady… Nie masz takich słów?..
– To było dawno temu… nikt już nie pamięta. Tylko ja. Ale wiemy, co to było. Jest to osadzone w naszej „starożytnej pamięci”, abyśmy nigdy nie zapomnieli. Czy przybyłeś skąd żyje zło?
Ze smutkiem pokiwałem głową. Bardzo było mi smutno z powodu mojej rodzimej Ziemi i tego, że życie na niej było tak szalenie niedoskonałe, że zmusiło mnie to do zadawania takich pytań... Ale jednocześnie bardzo chciałam, żeby Zło opuściło nasz Dom na zawsze, bo że całym sercem kochałam ten dom i bardzo często marzyłam, że kiedyś nadejdzie taki wspaniały dzień, kiedy:
człowiek będzie się uśmiechał z radością, wiedząc, że ludzie mogą mu przynieść tylko dobro...
kiedy samotna dziewczyna nie będzie bała się przejść wieczorem najciemniejszą ulicą, bez obawy, że ktoś ją obrazi...
kiedy możesz z radością otworzyć swoje serce bez obawy, że Twój najlepszy przyjaciel Cię zdradzi...
kiedy możesz zostawić na ulicy coś bardzo drogiego, bez obawy, że jak się odwrócisz, to od razu Ci to ukradną...
A ja szczerze, całym sercem wierzyłam, że gdzieś naprawdę jest taki cudowny świat, w którym nie ma zła i strachu, jest za to prosta radość życia i piękna... Dlatego podążając za moim naiwnym marzeniem, Skorzystałem z najmniejszej okazji, aby chociaż dowiedzieć się czegoś o tym, jak można zniszczyć to samo, tak wytrwałe i tak niezniszczalne, nasze ziemskie Zło... A także - żebym nigdy nie wstydził się komuś gdzieś powiedzieć, że jestem mężczyzna. ..
Oczywiście były to naiwne marzenia z dzieciństwa... Ale wtedy byłem jeszcze dzieckiem.
– Nazywam się Atis, Man-Svetlana. Mieszkam tu od samego początku, widziałem Zło... Dużo zła...
- Jak się go pozbyłeś, mądry Atisie?! Czy ktoś Ci pomógł?.. – zapytałem z nadzieją. – Czy możesz nam pomóc?.. Daj mi chociaż jakąś radę?
- Znaleźliśmy przyczynę... i zabiliśmy ją. Ale twoje zło jest poza naszą kontrolą. Jest inaczej... Podobnie jak inni i Ty. A dobro innych nie zawsze będzie dobre dla ciebie. Musisz znaleźć swój własny powód. I zniszcz to” – delikatnie położył mi rękę na głowie i zalał mnie cudowny spokój… „Żegnaj, Man-Svetlana… Znajdziesz odpowiedź na swoje pytanie”. Niech odpocznie...
Stałem pogrążony w myślach i nie zwracałem uwagi na to, że otaczająca mnie rzeczywistość już dawno się zmieniła i zamiast dziwnego, przezroczystego miasta, teraz „płynęliśmy” przez gęstą, fioletową „wodę” po jakiejś niezwykłej, płaskiej i przezroczyste urządzenie, w którym nie było żadnych uchwytów, żadnych wioseł – zupełnie nic, jakbyśmy stali na dużym, cienkim, ruchomym przezroczystym szkle. Chociaż w ogóle nie było czuć ruchu ani kołysania. Sunął po powierzchni zaskakująco gładko i spokojnie, sprawiając, że zapomniałeś, że w ogóle się poruszał...
-Co to jest?..Gdzie idziemy? – zapytałem zdziwiony.
„Aby odebrać twojego małego przyjaciela” – odpowiedziała spokojnie Veya.
- Ale jak?!. Nie może tego zrobić, prawda?..
- Będzie w stanie. „Ona ma taki sam kryształ jak ty” – brzmiała odpowiedź. „Spotkamy się z nią na „moście” i bez dalszych wyjaśnień wkrótce zatrzymała naszą dziwną „łódkę”.
Teraz byliśmy już u stóp jakiejś błyszczącej „wypolerowanej” ściany, czarnej jak noc, która ostro różniła się od wszystkiego, co wokół było jasne i błyszczące, a wydawała się sztucznie stworzona i obca. Nagle ściana „rozstąpiła się”, jakby w tym miejscu składała się z gęstej mgły, i w złotym „kokonie” pojawiła się… Stella. Świeża i zdrowa, jakby właśnie wyszła na przyjemny spacer... I oczywiście szalenie szczęśliwa z tego co się działo... Na mój widok jej słodka buzia rozpromieniła się radośnie i z przyzwyczajenia od razu zaczęła bełkotać :
– Ty też tu jesteś?!... Och, jak dobrze!!! A ja się tak martwiłam!.. Tak się martwiłam!.. Myślałam, że na pewno coś Ci się stało. Jak się tu dostałeś?.. – dziewczynka wpatrywała się we mnie oszołomiona.