Krótka informacja o projekcie gnu. Co to jest GNU i GPL? UNIX-y dostarczane przez producentów komputerów

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 nam wolno.

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żeli:

  • 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. W międzyczasie co najmniej jedna przydatna aplikacja stała się darmowym oprogramowaniem, specjalnie po to, aby mogła korzystać z Readline, co stanowi prawdziwą korzyść 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, i 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ę bezpłatnych 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

Szacuje się, że obecnie jest dziesięć 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ę.

PODSTAWOWE STANDARDY

UNIX-y dostarczane przez producentów komputerów

Samochód system operacyjny "Oryginalny"
Niedziela 1,2,10,... SunOS 4.1.2 BSD 4.3
Niedziela 10,20,1000 SunOS 5.5 SVR4.0
IBMRS/6000 AIX SV 3.2
HP Apollo 900 HP/UX10 BSD 4.2 i SV 3.2
Kolejny Dynix SV 4.0
Motoroli 922 SVR4/88 SVR4.0
Besta-88 Bestix SV 3.1
GRUDZIEŃ Ultrix BSD 4.2
GRUDZIEŃ Alpha AXP OSF/1 BSD 4.3
Grafika silikonowa SGCS IRIX 6.0

Wybierając platformę, automatycznie otrzymujemy z nią „własnego” UNIX-a. Być może z punktu widzenia wygody i integralności środowiska użytkownika i administratora najprzyjemniejszym z nich jest AIX. A najczęstszym jest Solaris 2.5 (oczywiście).

To pojawienie się komercyjnych wdrożeń Uniksa doprowadziło do tak zwanych wojen uniksowych. Każda z firm, chcąc osiągnąć przewagę na rynku, wprowadzała do swojego systemu pewne funkcje, własne modyfikacje i ulepszenia, czasami nawet mając na celu bezpośrednie wyróżnienie swojego systemu na tle innych na rynku. Firmy deweloperskie, chcąc zyskać przewagę nad konkurencją, wprowadzały zmiany nawet w Interfejs aplikacji do programowania(API- Interfejs programisty aplikacji) - specyfikacja zestawu funkcji, które muszą spełnić twórcy oprogramowania, aby ich programy były kompatybilne z systemem operacyjnym. To jeszcze bardziej zwiększyło niekompatybilność różnych wersji Uniksa i doprowadziło do niekompatybilności oprogramowania opracowane przez różnych (w tym niezależnych) dostawców.

Ale znacznie gorszą konsekwencją wojen między różnymi wersjami Uniksa było to, że zakończyła się swobodna wymiana kodu źródłowego, która ułatwiła szybkie ulepszanie Uniksa we wczesnych stadiach jego rozwoju. Nie mając innego modelu czerpania zysków z oprogramowania niż utrzymywanie go w tajemnicy i pełna kontrola nad rozwojem produktu komercyjnego, AT&T surowo zakazała dystrybucji kodu źródłowego. Groźba podjęcia kroków prawnych za nielegalną dystrybucję taśm uniksowych nie wzbudziła większego zainteresowania. Dopływ nowych pomysłów z uniwersytetów ustał.

Aby przezwyciężyć ten problem, podjęto kilka prób standaryzacji Uniksa.

Pierwsza poważna próba standaryzacji wersji API (interfejsu programistycznego) opracowanego dla Systemu V i Berkeley została podjęta w 1983 roku przez grupę inicjatywną o nazwie /usr/group. Jednak wraz ze wzrostem liczby wersji systemu operacyjnego skuteczność standardu malała i rok później, w 1985 roku, powstał standard POSIX (Portable Operating System Interface for Computing Environment).



W 1988 roku opracowano standard POSIX 1003.1-1988, który zdefiniował interfejs programowania aplikacji. Ten standard jest szeroko stosowany w wielu systemach operacyjnych, w tym w architekturach innych niż UNIX. Dwa lata później standard został przyjęty jako IEEE (Instytut Inżynierów Elektryków i Elektroników, nadal istniejący) standard IEEE 1003.1-1990. Standard definiuje jedynie interfejs, a nie konkretną organizację, dlatego nie rozróżnia wywołań systemowych od funkcji bibliotecznych, nazywając wszystkie elementy interfejsu programowania po prostu funkcjami.

Wszystkie późniejsze standardy Uniksa obejmują POSIX i wszystkie kolejne wersje Uniksa są zgodne z tym standardem. Jedynym większym dodatkiem, który pojawił się później w jądrze Uniksa, były gniazda, które pochodziły z BSD.

Organizacja non-profit, konsorcjum X/Open (później Open Group), utworzona w 1984 roku przez kilka europejskich firm, podjęła się zadania opracowania wspólnego zestawu interfejsów systemów operacyjnych, uzgodnionego pomiędzy różnymi producentami, oraz stworzenia prawdziwie otwarte systemy, dla których koszt przenośności aplikacji byłby minimalny.

W 1992 roku ukazał się dokument znany jako X/OpenPortability Guide wersja 3 (XPG3), który obejmował POSIX 1003.1-1988 i standard systemu graficznego X Windows System opracowany w Massachusetts Institute of Technology (USA). W 1994 r. - XPG4.2.

W 1996 roku fuzja X/Open i OSF doprowadziła do powstania konsorcjum The Open Group, które kontynuowało rozwój w dziedzinie systemów otwartych, m.in. dalszy rozwój interfejsu użytkownika Common Desktop Environment, interfejsów do przetwarzania rozproszonego środowisko Rozproszone środowisko obliczeniowe – DCE itp.

(Amerykański Narodowy Instytut Normalizacyjny)

W 1989 roku Amerykański Narodowy Instytut Standardów zatwierdził standard X3.159-1989 dla języka programowania C. Standard definiuje składnię, semantykę i zawartość biblioteki standardowej.

GNU jest stowarzyszeniem programistów, którzy tworzą darmowe programy szerokiej gamy typów.

GNU to projekt, który w ramach swojej strategii open source stworzył wiele darmowych programów.

Co więcej, programy te potrafią wszystko - od pracy z plikami po przetwarzanie tekstów, a kompilator gcc (GNU C) jest jednym z najbardziej niezawodnych i wydajnych kompilatorów dla systemu UNIX. Dzięki temu możliwe jest wyposażenie niemal każdego systemu operacyjnego typu UNIX w darmowe oprogramowanie.

Co to jest GNU/Linux?

Ponieważ Linux to tylko jądro, taki sprzęt jest koniecznością. Jądro odpowiada za pracę z pamięcią, dyskami i urządzeniami wewnętrznymi, ale nie posiada np. edytora tekstu. Ale może uruchamiać inne programy. Dlatego uzupełnienie darmowego jądra o zestaw darmowych programów wygląda bardzo naturalnie. Rezultatem jest tandem GNU/Linux.

„Skrót GNU oznacza „GNU is not UNIX” (GNU - Not UNIX). Główną ideą stojącą za rozwojem systemu GNU jest jego całkowita różnica w stosunku do UNIX. UNIX zawsze był i pozostaje oprogramowaniem zastrzeżonym, to znaczy pozbawia jego użytkownikom swobodę współpracy i kontroli nad naszymi komputerami. Aby stać się wolną społecznością komputerową, potrzebowaliśmy wolnego systemu operacyjnego. Nie mieliśmy dość pieniędzy, aby wykupić i uczynić którykolwiek z istniejących systemów darmowym, ale „ Mieliśmy wystarczającą wiedzę i umiejętności, aby stworzyć nową. Stworzenie GNU było monumentalnym dziełem. Zrobiliśmy to w imię naszej i waszej wolności.

W 1985 roku R. Stallman napisał swój słynny Manifest GNU (opublikowano go w marcowym wydaniu Dr. Dobb's Journal z marca 1985) i założył Free Software Foundation (FSF), charytatywną fundację zajmującą się rozwojem wolnego oprogramowania. później zaczął dostarczać inne wolne oprogramowanie (tworzone zarówno w ramach Projektu GNU, jak i poza nim) oraz sprzedawać do nich podręczniki, co zapewniło fundusze na rozwój Projektu GNU. FSF przyjmowało datki, ale większość przychodów zawsze pochodziła ze sprzedaży kopii wolnego oprogramowania i powiązanych usług.

Rozwój wolnego oprogramowania był bardzo ważnym krokiem, ale jeszcze ważniejsze jest utworzenie Powszechnej Licencji Publicznej GNU (GPL). Nazwa ta jest tłumaczona na język rosyjski przez różnych autorów na różne sposoby - Powszechna Licencja Publiczna, Ogólna Licencja Publiczna itp. Ale wierzy się, że Tylko angielska wersja tej licencji jest prawnie wiążąca. Podstawową ideą GPL jest to, że użytkownik musi mieć następujące cztery prawa (lub cztery wolności):

· Prawo do uruchomienia programu w dowolnym celu (wolność 0)

· Prawo do studiowania struktury programu i dostosowywania go do swoich potrzeb (wolność 1), co oznacza dostęp do kodu źródłowego programu.

· Prawo do rozpowszechniania programu, możliwość pomagania innym (wolność 2).

· Prawo do ulepszania programu i publikowania ulepszeń na rzecz całej społeczności (wolność 3), co oznacza także dostęp do kodu źródłowego programu.

Oprogramowanie rozpowszechniane na mocy tej licencji może być używane, kopiowane, modyfikowane, modyfikowane, przenoszone lub sprzedawane innym w jakikolwiek sposób w zmodyfikowanej (lub niezmodyfikowanej) wersji, pod warunkiem, że wynik takiego przetwarzania będzie również rozpowszechniany na podstawie licencji GPL. Ostatni warunek jest najważniejszy i decydujący w tej licencji. Zapewnia, że ​​wyniki wysiłków twórców wolnego oprogramowania pozostaną otwarte i nie staną się częścią żadnego konwencjonalnie licencjonowanego produktu. Odróżnia także wolne oprogramowanie od oprogramowania rozpowszechnianego za darmo. Jednym z wymagań tej licencji jest to, że sprzedając oprogramowanie objęte licencją GPL, musisz udostępnić kod źródłowy tego oprogramowania każdemu, kto chce do niego uzyskać dostęp. Według słów twórców FSF, licencja GPL „czyni oprogramowanie wolnym i gwarantuje, że pozostanie ono wolne”.

Głównym celem GPL jest ochrona wolnego oprogramowania przed „prywatyzacją”. Należy jednak zauważyć, że jest on zaprojektowany w taki sposób, aby umożliwiał wszelkie „uczciwe” sposoby zarabiania pieniędzy na wolnym oprogramowaniu. Jest to bardzo istotny punkt, na który należy zwrócić szczególną uwagę. Kiedy po raz pierwszy zapoznasz się z licencją GPL, możesz mieć błędne przekonanie, że licencja ta zasadniczo zabrania jakichkolwiek sposobów zarabiania pieniędzy na oprogramowaniu lub jego rozwoju. Tak naprawdę szczególnie GPL i ogólnie FSF bezpośrednio zachęcają do prowadzenia działalności gospodarczej związanej ze świadczeniem powiązanych usług – szkoleń, konsultingu i komercyjnej replikacji oprogramowania. Dzięki temu możemy przyciągać do współpracy zarówno korporacje, jak i osoby, dla których ważniejsze są interesy materialne niż bodźce moralne.

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, stworzyło podstawę pełnoprawnego systemu operacyjnego, który również został oznaczony terminem 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. Koncepcja takiej wymiany informacji i najgłośniejsza alternatywa dla tradycyjnych praw autorskich, choć nieoczywista, umożliwiła rozwój oprogramowania i obecnie nabiera tempa.

GNU 3DLDF obsługuje rysunki 3D z wyjściem do formatu MetaPost za pośrednictwem języka podobnego do Metafont. Jego głównym zadaniem jest zapewnienie możliwości tworzenia treści 3D dla dokumentów TeX-owych, ale może także tworzyć animacje zawierające tekst złożony przez TeX-a. (dokument)

8synchronizacja

8sync (wymawiane: osiem-sync) to asynchroniczna biblioteka programistyczna dla GNU Guile. Wykorzystuje rozdzielone kontynuacje, aby uniknąć bałaganu wywołań zwrotnych, co skutkuje czystym, łatwym do odczytania i nieblokującym kodem. (dokument)

a2ps

GNU a2ps konwertuje prawie wszystko do pliku PostScript, gotowego do druku. Osiąga to poprzez możliwość delegowania plików do zewnętrznych programów obsługi, takich jak Groff i Gzip. Obsługuje tyle kroków, ile jest niezbędnych do stworzenia ładnie wydrukowanego pliku. Zawiera także kilka dodatkowych możliwości dla specjalnych przypadków, takich jak ładne drukowanie --help. (dokument)

Akt

GNU acct zapewnia administratorom systemów możliwość określenia wzorców użytkowania systemu. Dostarcza informacji m.in. o połączeniach, wykonywanych programach i wykorzystywanych zasobach systemowych. (dokument)

Dop

GNU ACM to symulator lotu, w którym gracze mogą rywalizować w walkach powietrznych z różnych komputerów, pilotując dobrze wyposażony samolot odrzutowy podobny do F-16C Falcon czy MiG-29 Fulcrum. (dokument)

Reklamy

GNU adns to biblioteka C, która zapewnia łatwą w użyciu funkcję rozpoznawania DNS. Biblioteka jest asynchroniczna, co pozwala na kilka jednoczesnych wywołań. Pakiet zawiera także kilka narzędzi wiersza poleceń do wykorzystania w skryptach. (dokument)

Żywy

GNU Alive wysyła okresowe pingi do serwera, zazwyczaj w celu utrzymania połączenia. (dokument)

Anubis

Anubis to demon znajdujący się pomiędzy agentem użytkownika poczty (MUA) a agentem przesyłania poczty (MTA). Gdy użytkownik w MUA wysyła wiadomość e-mail, jest ona najpierw przekazywana do Anubis, która wykonuje dodatkowe przetwarzanie wiadomości przed przekazaniem jej do dostarczenia przez MTA. Anubis może na przykład modyfikować nagłówki lub treść wiadomości albo szyfrować lub podpisywać wiadomość. (dokument)

APL

GNU APL to darmowy interpreter języka programowania APL. Jest to implementacja normy ISO 13751. (doc)

Archimedes

Archimedes to darmowy pakiet do symulacji urządzeń półprzewodnikowych. Ma pomóc inżynierom w projektowaniu i symulowaniu submikronowych i mezoskopowych urządzeń półprzewodnikowych w oparciu o metodę Ensemble Monte Carlo. Jest w stanie obsłużyć szeroką gamę materiałów i struktur, które są opisane za pomocą prostych skryptów. (dokument)

Aris

Aris to program do przeprowadzania dowodów logicznych. Obsługuje logikę zdań i predykatów, a także algebrę Boole'a i logikę arytmetyczną. Oprócz predefiniowanych reguł wnioskowania i równoważności, Aris obsługuje także odniesienia do starszych dowodów. Zastosowanie standardowych symboli logicznych i naturalny interfejs dedukcji sprawiają, że jest łatwy w użyciu dla początkujących. (dokument)

Artanisa

GNU Artanis to framework aplikacji internetowych napisany w Guile Scheme. Framework aplikacji internetowych (WAF) to framework oprogramowania zaprojektowany do wspierania tworzenia dynamicznych stron internetowych, aplikacji internetowych, usług internetowych i zasobów internetowych. Ramy mają na celu złagodzenie kosztów ogólnych związanych z typowymi czynnościami wykonywanymi podczas tworzenia stron internetowych. Artanis zapewnia kilka narzędzi do tworzenia stron internetowych: dostęp do baz danych, struktury szablonów, zarządzanie sesjami, ponowne mapowanie adresów URL dla RESTful, buforowanie stron i wiele innych. (dokument)

Zaklęcie

Aspell to narzędzie do sprawdzania pisowni, którego można używać jako biblioteki lub jako samodzielnego programu. Godne uwagi cechy Aspell obejmują pełną obsługę dokumentów napisanych w kodowaniu UTF-8 oraz możliwość korzystania z wielu słowników, w tym osobistych. (dokument)

AUCTeX

AUCTeX to zintegrowane środowisko do tworzenia dokumentów TeX w Emacsie. Umożliwia wstawianie wielu różnych standardowych makr TeX-owych za pomocą prostych naciśnięć klawiszy lub wyboru menu. Oferuje interfejs do programów zewnętrznych, umożliwiając kompilowanie lub przeglądanie dokumentów z poziomu Emacsa. AUCTeX posiada również możliwość umieszczania podglądów wbudowanych złożonych instrukcji TeX-owych, takich jak formuły matematyczne. (dokument)

Autokonf

Autoconf oferuje programiście solidny zestaw makr M4, które rozszerzają się do kodu powłoki w celu testowania funkcji systemów typu Unix i automatycznego dostosowywania pakietu oprogramowania do tych systemów. Powstałe skrypty powłoki są samodzielne i przenośne, uwalniając użytkownika od konieczności posiadania jakiejkolwiek wiedzy na temat Autoconfa lub M4. (dokument)

Archiwum autoconf

Autoconf Archive to zbiór ponad 450 nowych makr dla Autoconf, znacznie poszerzających zakres jego funkcjonalności. Te makra zostały udostępnione przez społeczność jako darmowe oprogramowanie. (dokument)

Autogen

AutoGen to program ułatwiający obsługę programów zawierających dużą ilość powtarzalnego tekstu. Automatyzuje konstrukcję tych sekcji kodu, upraszczając zadanie synchronizacji tekstu. Zawiera także pakiet dodatkowy o nazwie AutoOpts, który specjalizuje się w utrzymaniu i dokumentowaniu opcji programu. (dokument)

Automatyczna

Automatycznie utwórz część systemu kompilacji GNU do tworzenia plików Makefile zgodnych ze standardami. Wymagania dotyczące kompilacji są wprowadzane w intuicyjnym formacie, a następnie Automake współpracuje z Autoconf, aby stworzyć solidny plik Makefile, upraszczając cały proces dla programisty. (dokument)

Avl

libavl zapewnia duży zbiór procedur drzew wyszukiwania binarnego i drzew zrównoważonych dla języka C. Drzewa te oferują wydajność co najmniej O(log n) dla zwykle kosztownych operacji, takich jak wyszukiwanie, wstawianie lub usuwanie elementów ze struktury danych. (dokument)

Piłka i wiosło

Ball and Paddle to klasyczna gra zręcznościowa, w której za pomocą wiosła znajdującego się na dole ekranu odbijasz piłkę od cegieł w górnej części, eliminując w ten sposób trafione cegły. Jako nowość, zdarzenia i atrybuty wszystkich obiektów (cegieł, piłek itp.) mogą być skryptowane przy użyciu GNU Guile. (dokument)

kod kreskowy

Kody kreskowe GNU to elastyczne narzędzie do tworzenia drukowanych kodów kreskowych z ciągów tekstowych. Obsługuje różne standardy kodowania i pomiary rozmiaru. Kody kreskowe mogą być drukowane w formatach PostScript lub Encapsulated PostScript. (dokument)

Grzmotnąć

Bash jest powłoką, czyli interpreterem wiersza poleceń systemu GNU. Jest kompatybilny z powłoką Bourne Shell, ale integruje także przydatne funkcje Korn Shell i C Shell oraz własne nowe ulepszenia. Umożliwia edycję z wiersza poleceń, nieograniczoną historię poleceń, funkcje powłoki i aliasy oraz kontrolę zadań, jednocześnie umożliwiając uruchamianie większości skryptów sh bez modyfikacji. (dokument)

Bayonna

Bayonne jest serwerem telefonicznym projektu GNU Telephony. Oferuje skalowalne środowisko do rozwoju i wdrażania rozwiązań telefonicznych, ze szczególnym uwzględnieniem protokołu SIP. (dokument)

Bazar

GNU Bazaar to system kontroli wersji, który umożliwia rejestrowanie zmian w plikach projektu w czasie. Obsługuje zarówno rozproszony przepływ pracy, jak i klasyczny scentralizowany przepływ pracy. (dokument)

bc to język przetwarzania numerycznego o dowolnej precyzji. Zawiera interaktywne środowisko do oceny stwierdzeń matematycznych. Jego składnia jest podobna do składni C, więc podstawowe użycie jest znajome. Zawiera także dc, kalkulator z odwróconą polszczyzną. (dokument)

B.F.D.

Binutils

GNU Binutils to zbiór narzędzi do pracy z plikami binarnymi. Być może najbardziej godne uwagi są ld , linker i as , asembler. Inne narzędzia obejmują programy wyświetlające informacje o profilowaniu binarnym, wyświetlające listę ciągów znaków w pliku binarnym oraz narzędzia do pracy z archiwami. Dołączona jest także biblioteka bfd do pracy z formatami wykonywalnymi i obiektowymi. (dokument)

Bizon

GNU Bison to generator parsera ogólnego przeznaczenia. Może zbudować deterministyczny lub uogólniony parser LR na podstawie gramatyki bezkontekstowej z adnotacjami. Jest na tyle wszechstronny, że może mieć wiele zastosowań, od parserów po proste narzędzia, po złożone języki programowania. (dokument)

Bool

GNU Bool to narzędzie do wyszukiwania tekstu w plikach przy użyciu wyrażeń logicznych. Na przykład wyszukiwanie hello AND world zwróci plik zawierający frazę Hello, world! . Obsługuje instrukcje AND i OR, a także instrukcję NEAR do wyszukiwania występowania słów blisko siebie. Z wdziękiem radzi sobie z kontekstem, uwzględniając nowe linie i zmiany akapitów. Posiada również solidną obsługę analizowania plików HTML. (dokument)

BPEL2oWFN

GNU BPEL2oWFN tłumaczy usługę internetową wyrażoną w języku Web Service Business Process Execution Language (WS-BPEL) na otwartą sieć przepływu pracy (oWFN). Może dodatkowo konwertować choreografię BPEL4Chor do modelu Petri Net. Właściwości sieci Petriego można skutecznie analizować dzięki zastosowaniu analizy statycznej w celu uzyskania zwartości modeli. Dostępne są analizy kontroli i przepływu danych, a także podstawowe kontrole zakleszczeń i innych tego typu właściwości. (dokument)

Wykres C

GNU C-Graph to narzędzie do demonstracji teorii splotu. Może zatem stanowić doskonałą pomoc dla studentów teorii sygnałów i systemów w wizualizacji procesu splotu. Zamiast zmuszać ucznia do pisania kodu, program oferuje intuicyjny interfejs z interaktywnymi oknami dialogowymi, które go prowadzą. (dokument)

ccAudio

GNU ccAudio2 to przenośna klasa C++ do pracy z danymi audio z dysku. Klasy uwzględniają zarówno endian, jak i treść; Zamiast traktować dźwięk jako dane binarne, ta biblioteka traktuje go jako sekwencję próbek. Może także obsługiwać informacje o metadanych. ccAudio2 obsługuje dźwięk Sun, surowe próbki i dane audio zakodowane w formacie RIFF. (dokument)

CCd2cue

GNU ccd2cue to preprocesor oprogramowania do nagrywania płyt CD, który umożliwia konwersję zastrzeżonego formatu CCD do formatu CUE, który jest dobrze obsługiwany przez wolne oprogramowanie. Pliki te są powszechnie rozpowszechniane z obrazami płyt CD i służą do opisu układu ścieżek na obrazie. (dokument)

Cyde

GNU Ccide to generator kodu tabeli decyzyjnej dla języka C. Pomaga to uniknąć niemożliwych do zarządzania i podatnych na błędy łańcuchów zagnieżdżonych instrukcji if-else. Zamiast tego tabele decyzyjne są wprowadzane w intuicyjnym i łatwym do odczytania formacie, który następnie jest rozwijany do przenośnego kodu C. (dokument)

ccRTP

GNU ccRTP jest implementacją RTP, protokołu transportowego czasu rzeczywistego opracowanego przez IETF. Nadaje się zarówno do serwerów o dużej pojemności, jak i osobistych aplikacji klienckich. Jest elastyczna w swojej konstrukcji, dzięki czemu może działać jako struktura dla frameworka, a nie tylko jako biblioteka do manipulacji pakietami. (dokument)

CCScript

GNU ccScript3 to biblioteka umożliwiająca dodanie systemu wykonawczego maszyny wirtualnej do użytku z/jako językiem skryptowym lub asemblerem dla systemów działających w czasie rzeczywistym i sterowanych zmianą stanu. (dokument)

Przepływ

GNU cflow analizuje pliki źródłowe C i tworzy wykres przedstawiający przepływ sterowania programem. Może wyświetlać wykresy w kilku stylach oraz w formacie POSIX lub rozszerzonym formacie GNU. cflow zawiera także główny tryb dla Emacsa do sprawdzania tworzonych schematów blokowych. (dokument)

Cgicc

GNU cgicc to zgodna z ANSI biblioteka C++ do pisania aplikacji CGI, obsługująca FastCGI. Biblioteka obsługuje kilka funkcji, w tym obsługę danych GET i POST, obsługę różnych typów danych formularzy i generowanie kodu HTML w locie. (dokument)

Szachy

GNU Chess to silnik szachowy. Umożliwia rywalizację z komputerem w grze w szachy za pośrednictwem domyślnego interfejsu terminala lub zewnętrznego interfejsu wizualnego, takiego jak GNU XBoard. (dokument)

Cim

Cim jest kompilatorem GNU dla Simula, pierwszego obiektowego języka programowania. (dokument)

Ścieżka zajęć

GNU Classpath zapewnia niezbędne biblioteki dla wirtualnych maszyn i kompilatorów Java. Jest kompatybilny z dużym procentem specyfikacji API języka i zapewnia szeroki wachlarz funkcjonalności. (dokument)

CLISP

GNU CLISP jest implementacją ANSI Common Lisp. Common Lisp to zorientowany obiektowo, funkcjonalny język programowania wysokiego poziomu. CLISP zawiera interpreter, kompilator, debuger i wiele więcej. (dokument)

Łączyć

GNU Combine działa w celu łączenia plików w oparciu o wspólny klucz w tabeli skrótów. Można go postrzegać jako podobne, choć znacznie potężniejsze, niż standardowe narzędzie do łączenia. W przeciwieństwie do Join, dowolna liczba plików może zostać scalona w oparciu o znalezione dopasowania. Combine ma także inne zaawansowane funkcje, takie jak analizowanie dat i przeglądanie katalogów. (dokument)

[u]Wspólny C++

GNU Common C++ to przenośny, zoptymalizowany framework klasowy dla aplikacji wielowątkowych, obsługujący współbieżną synchronizację, komunikację między procesami za pośrednictwem gniazd i różne metody obsługi danych, takie jak serializacja i parsowanie XML. Zawiera bibliotekę uCommon C++, mniejszą reimplementację. (dokument)

Złożoność

Złożoność GNU zapewnia narzędzia do wyszukiwania procedur, które są zawiłe, zbyt długie lub w inny sposób trudne do zrozumienia. Może to pomóc w nauce lub przeglądaniu nieznanego kodu lub być może podkreśleniu własnego kodu, który wydawał się zrozumiały w momencie jego pisania. (dokument)

Konfig

Skrypt config.guess próbuje odgadnąć trójkę systemu kanonicznego, a config.sub sprawdza poprawność i kanonizację. Są one używane jako część konfiguracji prawie wszystkich pakietów GNU (i wielu innych). (dokument)

Coreutils

GNU Coreutils zawiera wszystkie podstawowe narzędzia wiersza poleceń, jakich oczekuje się od systemu POSIX. Zapewniają one podstawowe funkcje manipulacji plikami, powłoką i tekstem systemu GNU. Większość tych narzędzi oferuje rozszerzoną funkcjonalność wykraczającą poza tę opisaną w standardzie POSIX. (dokument)

Cpio

GNU cpio kopiuje pliki do lub z archiwów cpio lub tar. Rzeczywiście obsługiwanych jest wiele formatów, w tym starsze formaty. Format jest ustalany automatycznie przez program i odpowiednio obsługiwany. Ponadto lokalizacja archiwum nie jest istotna. Może to być inny plik na dysku, taśma lub dane na potoku. (dokument)

Cppi

GNU Cppi przetwarza pliki kodu źródłowego C, aby odpowiednio wciąć dyrektywy preprocesora, aby odzwierciedlić ich zagnieżdżenie. Dokonuje także innych standaryzacji, np. korygując liczbę spacji pomiędzy dyrektywami i następującym po nich tekstem. (dokument)

CSSC

GNU CSSC stanowi zamiennik starszego systemu kontroli kodu źródłowego Uniksa SCCS. Umożliwia to dostęp do starego kodu znajdującego się nadal w tym systemie i migrację do nowoczesnych systemów. (dokument)

Cursynth

GNU cursynth to polifoniczny syntezator uruchamiany graficznie w terminalu. Jest zbudowany na w pełni funkcjonalnym silniku syntezy subtraktywnej. Nuty i zmiany parametrów można wprowadzać za pomocą MIDI lub klawiatury komputera. (doc)

Dap

GNU Dap to pakiet statystyczny i graficzny. Potrafi czytać programy napisane dla autorskiego systemu statystycznego SAS. Jego składnia jest podobna do C, ale prostsza niż C, dzięki czemu wykonywanie większości zadań jest stosunkowo łatwe, a jednocześnie zapewnia zaawansowane możliwości graficzne. (dokument)

Datamash

Wykonuj podstawowe operacje numeryczne, tekstowe i statystyczne na plikach tekstowych. Zaprojektowany do pracy w standardowych potokach bez dodatkowego kodu. (dokument)

DDD

GNU DDD, debuger wyświetlania danych, to graficzny interfejs dla debugerów wiersza poleceń. Obsługiwanych jest wiele debugerów zaplecza, w szczególności debuger GNU, GDB. Oprócz zwykłych funkcji debugowania, takich jak przeglądanie plików źródłowych, DDD posiada dodatkowe graficzne, interaktywne funkcje pomagające w debugowaniu. (dokument)

ddrescue

GNU ddrescue to w pełni zautomatyzowane narzędzie do odzyskiwania danych. Kopiuje dane z jednego pliku do drugiego, pracując nad ratowaniem danych w przypadku błędów odczytu. Program zawiera także narzędzie do manipulacji plikami dziennika, które służą do efektywniejszego odzyskiwania danych poprzez jedynie odczytywanie niezbędnych bloków. (dokument)

DejaGnu

DejaGnu to framework do testowania oprogramowania. W efekcie służy jako front-end dla wszystkich testów napisanych dla programu. Zatem każdy program może mieć wiele zestawów testów, którymi następnie zarządza się za pomocą jednej wiązki przewodów. (dokument)

Denemo

GNU Denemo to edytor notacji muzycznej zapewniający wygodny interfejs do potężnego programu do grawerowania muzyki Lilypond. Muzykę można wpisywać za pomocą klawiatury komputera, odtwarzać za pomocą klawiatury MIDI, a nawet wprowadzać ją za pomocą mikrofonu podłączonego do karty dźwiękowej. Produktem końcowym jest zapis muzyczny o jakości publikacyjnej, który jest stale generowany w tle podczas pracy. (dokument)

Śr

Dico

GNU Dico wdraża elastyczny serwer słownikowy i klienta zgodnie z RFC 2229 (serwer DICT). Dzięki swojej modułowej strukturze ma dostęp do dowolnej dostępnej bazy danych, niezależnie od formatu. Nowe moduły mogą być pisane w C, Guile lub Pythonie. Dico zawiera także klienta wiersza poleceń, którego można używać do wysyłania zapytań do zdalnych baz danych słowników. (dokument)

Dykcja

Pakiet dostarczający dwa klasyczne polecenia uniksowe, styl i dykcję. Dykcja służy do identyfikowania rozwlekłych i często niewłaściwie używanych zwrotów w tekście. Zamiast tego styl analizuje powierzchowne aspekty dzieła pisemnego, takie jak długość zdania i inne miary czytelności. (dokument)

Diffutils

GNU Diffutils to pakiet zawierający narzędzia do wyszukiwania różnic pomiędzy plikami. Polecenie diff służy do pokazania różnic pomiędzy dwoma plikami, natomiast cmp pokazuje przesunięcia i numery linii w miejscach, w których się różnią. diff3 umożliwia porównanie trzech plików. Wreszcie sdiff oferuje interaktywny sposób łączenia dwóch plików. (dokument)

Dionizos

GNU Dionysus to wygodny system szybkiego wyszukiwania wartości stałych matematycznych stosowanych w nauce i inżynierii. Wartości można wyszukiwać za pomocą prostego narzędzia wiersza poleceń, wybierając spośród trzech baz danych: stałych uniwersalnych, liczb atomowych i stałych związanych z półprzewodnikami. (dokument)

Bezpośredni

Demon monitorujący katalogi pod kątem zdarzeń, takich jak tworzenie, usuwanie lub modyfikowanie plików. Może monitorować różne zestawy katalogów pod kątem różnych zdarzeń. Po wykryciu zdarzenia direvent wywołuje określony program zewnętrzny z informacjami o zdarzeniu, takimi jak lokalizacja w systemie plików, w której wystąpiło. Dzięki temu direvent pozwala w łatwy sposób natychmiastowo zareagować, jeśli w danych plikach ulegną zmiany, na przykład w celu śledzenia zmian w ważnych plikach konfiguracyjnych systemu. (dokument)

Panowanie

GNU Dominion to wieloosobowa gra symulacyjna świata. W grze każdy gracz rządzi narodem i musi utrzymać swój naród w obliczu konkurencji ze strony innych graczy. Gracze muszą podejmować decyzje polityczne, ekonomiczne, wojskowe i dyplomatyczne, aby ich narody przetrwały. Ta gra jest przeznaczona dla graczy, którzy mają dostęp do tego samego systemu komputerowego. (dokument)

Łatwość

easy.js to klasyczna zorientowana obiektowo platforma dla JavaScript, której zadaniem jest wyeliminowanie szablonowego kodu i ułatwienie przejścia na JavaScript z innych języków obiektowych. (dokument)

Ed jest edytorem tekstu zorientowanym liniowo: zamiast oferować przegląd dokumentu, ed edytuje jedną linię na raz. Można go wykonać zarówno interaktywnie, jak i za pomocą skryptów powłoki. Zastosowana w nim metoda wprowadzania poleceń umożliwia wykonywanie złożonych zadań w sposób zautomatyzowany. GNU ed oferuje kilka rozszerzeń w stosunku do standardowego narzędzia. (dokument)

EDMA

GNU EDMA to środowisko programistyczne, które łączy pomysły zarówno z programowania obiektowego, jak i systemów opartych na komponentach. Służy do budowania modułowych, rozwijających się aplikacji, a także komponentów wielokrotnego użytku. EDMA zapewnia wygodny sposób budowania programów obiektowych w C bez konieczności używania C++. Ma także unikalny system komponentów, w przeciwieństwie do innych systemów opartych na komponentach wolnego oprogramowania, które imitują konstrukcję zastrzeżonych odpowiedników. Zawiera kreator graficzny gidfwizard, narzędzie do budowania plików definicji interfejsu GNU EDMA i tworzenia plików szkieletowych niezbędnych do budowania klas EDMA oraz graficzną przeglądarkę klas gecb. (dokument)

Elektryczny

GNU Electric to program CAD do projektowania obwodów elektrycznych, obsługi niestandardowego układu układów scalonych, rysunków schematycznych i specyfikacji języka opisu sprzętu. Obsługiwanych jest kilka operacji CAD, takich jak sprawdzanie reguł i symulacja. Można tworzyć wiele różnych typów projektów i wprowadzać je lub wyprowadzać w szerokiej gamie formatów. (dokument)

Emacs

GNU Emacs to rozszerzalny i wysoce konfigurowalny edytor tekstu. Opiera się na interpreterze Emacs Lisp z rozszerzeniami do edycji tekstu. Emacs został rozszerzony zasadniczo na wszystkie obszary informatyki, dając początek szerokiej gamie pakietów obsługujących np. pocztę e-mail, przesyłanie wiadomości IRC i XMPP, arkusze kalkulacyjne, zdalną edycję serwera i wiele więcej. Emacs zawiera obszerną dokumentację dotyczącą wszystkich aspektów systemu, od podstawowej edycji po pisanie dużych programów w Lisp. Posiada pełną obsługę Unicode dla prawie wszystkich języków ludzkich. (dokument)

Muza Emacsa

Muse to środowisko do tworzenia i publikowania dla GNU Emacs. Obsługuje wprowadzanie tekstu w wygodnym i łatwym do nauczenia formacie. Później Twoje dokumenty mogą zostać opublikowane w różnych formatach, takich jak HTML, LaTeX lub PDF. Muse obsługuje projekty składające się z kilku dokumentów, które są odpowiednio scalane zgodnie z formatem wyjściowym. (dokument)

EMMS

EMMS to system multimedialny Emacs. Jest to niewielki front-end, za pomocą którego można sterować jednym z obsługiwanych zewnętrznych odtwarzaczy. Dlatego obsługuje wszystkie formaty obsługiwane przez Twój odtwarzacz muzyki. Obsługuje także tagowanie i zarządzanie listami odtwarzania, a wszystko to za przejrzystym i lekkim interfejsem użytkownika. (dokument)

Enkrypt

GNU Enscript to program do konwersji plików tekstowych ASCII na formaty PostScript, HTML lub RTF, które mają być przechowywane w plikach lub natychmiast wysyłane do drukarki. Zawiera także możliwość podświetlania składni dla kilku różnych języków programowania. (dokument)

Fdisk

GNU fdisk udostępnia wersję GNU popularnego narzędzia do partycjonowania dysku fdisk. fdisk służy do tworzenia i manipulowania tablicami partycji dysku i obsługuje wiele różnych formatów. (dokument)

Fretka

GNU Ferret to graficzny modeler danych dla paradygmatu Jednostka/Relacja. Może automatycznie tworzyć schematy relacyjne z modeli danych i może być używany do generowania instrukcji SQL w różnych dialektach. (dokument)

Findutils

Findutils dostarcza podstawowe narzędzia do przeszukiwania katalogów plików systemu GNU. Składa się z dwóch podstawowych narzędzi wyszukiwania: find rekurencyjnie wyszukuje pliki w katalogu według zadanych kryteriów i lokalizuje listę plików w bazie danych pasujących do zapytania. Dołączone są dwa narzędzia pomocnicze: updateb aktualizuje bazę danych nazw plików, a xargs może być używane do stosowania poleceń z dowolnie długimi argumentami. (dokument)

FisicaLab

GNU FisicaLab to aplikacja edukacyjna służąca do rozwiązywania problemów fizycznych. Jego głównym celem jest umożliwienie użytkownikowi skupienia się na pojęciach fizycznych, pomijając szczegóły matematyczne. (dokument)

Folia

GNU Foliot to aplikacja służąca do śledzenia czasu spędzonego na pracy nad projektami. (dokument)

Czcionka

Fontopia to łatwy w użyciu, tekstowy konsolowy edytor czcionek. Służy do edycji czcionek używanych przez GNU/Linux do wyświetlania tekstu na terminalach tekstowych. Fontopia działa zarówno na czcionkach PSF 1 i 2, BDF, Code Paged (CP), jak i plikach czcionek Raw. Zapewnia użytkownikowi- przyjazny, łatwy w użyciu edytor glifów, który może z łatwością zmieniać parametry czcionki (np. długość, szerokość i wysokość) oraz konwertować pomiędzy różnymi formatami czcionek. (doc)

Czcionki

GNU Fontutils to zbiór programów do obsługi czcionek. Mapy bitowe można wyodrębniać ze zeskanowanych obrazów znaków, edytować i konwertować na czcionki konturowe. Ogólnie rzecz biorąc, Fontutils obsługuje formaty czcionek obsługiwane przez środowisko składu TeX, w tym czcionki PostScript Type 1. (dokument)

BezpłatnyDink

GNU FreeDink to darmowa i przenośna reimplementacja silnika gry RPG Dink Smallwood. Obsługuje nie tylko oryginalne pliki danych gier, ale także modyfikacje gier stworzone przez użytkowników lub D-Mody. W tym zakresie zawiera także interfejs do zarządzania wszystkimi D-Modami. (dokument)

Darmowe czcionki konturowe UCS

GNU FreeFont to zbiór skalowalnych czcionek konturowych, które nadają się do ogólnego użytku komputerowego i do DTP. Dołączone są czcionki szeryfowe, bezszeryfowe i o stałej szerokości, wszystkie dostępne w formatach TrueType i OpenType. Czcionki obsługują szeroką gamę znaków dla wielu różnych systemów pisma i doskonale pokrywają notację matematyczną. (dokument)

BezpłatnyIPMI

GNU FreeIPMI to zbiór oprogramowania IPMI wewnątrz i poza pasmem, zgodnego ze specyfikacją IPMI v1.5/2.0. Programy te udostępniają zestaw interfejsów do zarządzania platformą. Wspólna funkcjonalność obejmuje monitorowanie czujników, monitorowanie zdarzeń systemowych, sterowanie mocą i połączenie szeregowe przez sieć LAN. (dokument)

Wolna rozmowa

GNU Freetalk to klient czatu Jabber/XMPP uruchamiany z wiersza poleceń. W szczególności wykorzystuje bibliotekę Readline do obsługi danych wejściowych, dzięki czemu umożliwia wygodną nawigację po tekście, a także uzupełnianie nazw znajomych, poleceń i angielskich słów za pomocą tabulacji. Można go także skryptować i rozszerzać za pomocą Guile. Pakiet szuka opiekuna. (dokument)

PiątekBiDi

GNU FriBidi jest implementacją algorytmu dwukierunkowego Unicode. Algorytm ten służy do prawidłowego wyświetlania tekstu w kolejności od lewej do prawej lub od prawej do lewej, jeśli to konieczne. (dokument)

G-Golf

G-Golf (Gnome: (Guile Object Library for)) to biblioteka do tworzenia nowoczesnych aplikacji w Guile Scheme. Zawiera bezpośrednie powiązanie z API GObject Introspection i funkcjonalność wyższego poziomu do importowania bibliotek Gnome i udostępniania klas (i metod) GObject w zorientowanym obiektowo systemie programowania Guile, GOOPS. (doc)

Gama

GNU Gama to program do dostosowywania sieci geodezyjnych. Jest to przydatne w przypadku pomiarów, gdzie nie jest dostępny globalny system pozycjonowania (GPS), np. pod ziemią. Posiada możliwość dostosowania w lokalnych współrzędnych kartezjańskich, a także częściową obsługę korekt w globalnych układach współrzędnych. (dokument)

Bezpłatny demon ARP

GNU garpd rozsyła bezpłatne żądania/odpowiedzi ARP (Address Solution Protocol) dotyczące listy adresów MAC<->Mapowanie adresów IP na określonych interfejsach w regularnych odstępach czasu. Pakiety bezpłatnych żądań ARP to takie, w których zarówno źródłowy, jak i docelowy adres IP są adresem IP maszyny wysyłającej żądanie. Nieodpłatne odpowiedzi ARP to odpowiedzi udzielone bez odpowiedniego żądania. (dokument)

Gapić się

Gawk jest implementacją GNU Awk, specjalistycznego języka programowania służącego do łatwej manipulacji sformatowanym tekstem, takim jak tabele danych. Gawk zawiera wiele rozszerzeń wykraczających poza tradycyjną implementację, w tym dostęp do sieci, sortowanie i duże biblioteki. (dokument)

Gbehistun

GNU Behistun składa się z oprogramowania i narzędzi do modelowania geologicznego i geofizycznego oraz mapowania struktur wewnętrznych i dynamiki. Podobnie jak wielojęzyczny napis Behistun, oprogramowanie narzędziowe Behistun zapewnia wiedzę i funkcjonalność niezbędną do pracy na układach planetarnych i swobodnego badania ich wnętrza. (dokument)

Gcal

Gcal to program do obliczania i drukowania kalendarzy z wiersza poleceń. Kalendarze można drukować w widokach 1-miesięcznych, 3-miesięcznych lub całorocznych. Ponadto dla wielu krajów można generować listy wiecznych świąt, które można uzupełniać utworzonymi przez użytkowników listami z ustalonymi datami, aby stworzyć plan. Gcal może również obliczać dane astronomiczne, takie jak fazy księżyca, i obsługuje alternatywne formaty kalendarza: juliański, gregoriański, islamski, chiński i inne. (dokument)

GCC

GCC to zbiór kompilatorów GNU. Zapewnia nakładki kompilatora dla kilku języków, w tym C, C++, Objective-C, Fortran, Java, Ada i Go. Zawiera także biblioteki obsługi środowiska uruchomieniowego dla tych języków. (dokument)

Gcide

GCIDE to darmowy słownik oparty na kombinacji źródeł. Można z niego korzystać poprzez program GNU Dico lub uzyskać dostęp do niego online pod adresem http://gcide.site.ua/ (doc)

Wspólny Lisp GNU

GCL jest implementacją języka Common Lisp. Posiada możliwość kompilacji do natywnego kodu obiektowego i ładowania modułów natywnego kodu obiektowego bezpośrednio do rdzenia Lisp. Zawiera także strategię warstwowego zbierania śmieci, debuger na poziomie źródła i wbudowany interfejs do systemu widżetów Tk. (dokument)

GCompris

GCompris to pakiet oprogramowania edukacyjnego dla dzieci. Oferuje różnorodne zajęcia odpowiednie dla dzieci w wieku od 2 do 10 lat. Pakiet obejmuje zajęcia wprowadzające i rozwijające umiejętności obsługi komputera, algebry, nauk ścisłych, czytania i nie tylko. Zawiera także kilka gier, takich jak szachy i sudoku. (dokument)

G.D.B.

GDB to debuger GNU. Dzięki niemu możesz monitorować, co robi program podczas jego działania lub co robił tuż przed awarią. Pozwala określić warunki działania, zdefiniować punkty przerwania i zmienić sposób działania programu, aby spróbować naprawić błędy. Można go używać do debugowania programów napisanych w C, C++, Ada, Objective-C, Pascal i innych. (dokument)

Gdbm

GDBM to biblioteka do manipulowania mieszanymi bazami danych. Służy do przechowywania par klucz/wartość w pliku w sposób podobny do uniksowej biblioteki dbm i zapewnia interfejsy do tradycyjnego formatu plików. (dokument)

Gengen

GNU Gengen to program do generowania generatorów tekstu, tj. funkcji tworzących tekst ze zmiennymi sekcjami. Tekst jest najpierw określany przez użytkownika w pliku szablonu zawierającym parametry, a następnie przetwarzany przez gengen w celu utworzenia generatora tekstu. W czasie wykonywania zmienna tekstowa jest definiowana przez resztę programu i przekazywana do generatora tekstu, który następnie podstawia go do parametrów szablonu i zwraca wynik. Gengen może być używany do generowania kodu C i C++. (dokument)

Gengetopt

GNU Gengetopt to program generujący funkcję C/C++ do analizowania opcji wiersza poleceń przy użyciu funkcji getopt_long znajdującej się w GNU libc, co eliminuje część nudy związanej z tym zadaniem w przypadku dużych programów, które akceptują wiele opcji. Opcje analizowane przez wygenerowaną funkcję mogą mieć format krótki (np. -h) i długi (--help), zgodnie ze standardami kodowania GNU. Dodatkowo, wynik standardowych opcji --help i --version jest generowany automatycznie. (dokument)

Pobierztekst

GNU Gettext to pakiet zapewniający platformę do tłumaczenia tekstu wyjściowego programów na wiele języków. Zapewnia tłumaczom możliwość tworzenia katalogów wiadomości, a także tryb Emacsa do pracy z nimi oraz bibliotekę wykonawczą do ładowania przetłumaczonych wiadomości z katalogów. Prawie wszystkie pakiety GNU używają Gettext. (dokument)

Gforth

Gforth to szybka i przenośna implementacja języka ANSI Forth. Zawiera tryb edycji dla Emacsa i interpreter z zakończeniem i historią. Uwzględniono także ogólne środowisko maszyny wirtualnej vmgen. (dokument)

Dziennik ocen

GNU Gradebook to aplikacja dla nauczycieli służąca do śledzenia ocen uczniów. Obsługuje kilka stylów oceniania, w tym amerykańskie (A, B, C, D, F) i europejskie skale numeryczne. (dokument)

GNU Ghostscript

Ghostscript to interpreter języka PostScript i formatu pliku PDF. Zawiera także bibliotekę C, która implementuje możliwości graficzne języka PostScript. Obsługuje szeroką gamę formatów plików wyjściowych i drukarek. (dokument)

PREZENT

Narzędzie GNU Image-Finding Tool (GIFT) to system wyszukiwania obrazów oparty na zawartości. Wykorzystuje zawartość obrazów do wykonywania zapytań dotyczących kolekcji, umożliwiając wysyłanie zapytań na przykładach. Dołączone jest także narzędzie do indeksowania całych drzew katalogów. (dokument)

KORDONEK

GIMP to aplikacja do zadań związanych z manipulacją obrazami, takich jak retusz zdjęć, kompozycja i tworzenie. Obsługuje wszystkie popularne formaty obrazów, a także specjalistyczne. Posiada wysoce konfigurowalny interfejs, który można rozszerzyć za pomocą systemu wtyczek. (dokument)

Zbierać

GNU Glean to modułowy system do samodzielnej nauki, znacznie bardziej skomplikowany niż standardowa metoda fiszek. Jest bardzo konfigurowalny, umożliwiając użytkownikowi zdefiniowanie tematów zainteresowań i działań w celu ich studiowania. Na razie ma interfejs tekstowy wewnątrz Guile REPL i eksperymentalny interfejs sieciowy. (dokument)

Gleem

GNU gleem to biblioteka dla języka Java i C++ oferująca zestaw widżetów 3D, które obsługują bezpośrednią interakcję użytkownika ze sceną 3D. Te widżety służą do tłumaczenia wzdłuż linii, tłumaczenia w płaszczyźnie oraz wykonywania trójwymiarowego tłumaczenia i obrotu. Pakiet szuka opiekuna. (dokument)

Bez zająknienia

Światowy

GNU GLOBAL to system znakowania kodu źródłowego, który działa w ten sam sposób w szerokiej gamie środowisk, takich jak różne edytory tekstu, powłoki i przeglądarki internetowe. Powstałe znaczniki są przydatne do szybkiego poruszania się po dużym, głęboko zagnieżdżonym projekcie. (dokument)

GLPK

GLPK to biblioteka C służąca do rozwiązywania wielkoskalowych programowania liniowego (LP), programowania mieszanego na liczbach całkowitych (MIP) i innych powiązanych problemów. Obsługuje język modelowania GNU MathProg, podzbiór języka AMPL i zawiera tłumacza tego języka. Oprócz biblioteki C w pakiecie znajduje się samodzielny moduł LP/MIP. (dokument)

Gmediaserver

GMediaServer to serwer multimediów zgodny z UPnP. Służy do przesyłania plików audio i wideo do podłączonych do sieci odtwarzaczy multimedialnych za pośrednictwem programu wiersza poleceń działającego w tle. (dokument)

GMP

GMP to biblioteka do arytmetyki o dowolnej precyzji, operująca na liczbach całkowitych ze znakiem, liczbach wymiernych i liczbach zmiennoprzecinkowych. Precyzja jest ograniczona jedynie dostępną pamięcią. Biblioteka jest wysoce zoptymalizowana, a projekt skupia się na szybkości wykonania. Ma on zastosowanie na przykład w kryptografii i algebrze obliczeniowej. (dokument)

Zgrzytać

Gnash to darmowy odtwarzacz filmów Flash. Obsługuje wersję SWF v7 oraz niektóre wersje v8 i v9. Możliwe jest skonfigurowanie Gnasha tak, aby korzystał z kilku różnych backendów audio lub wideo, zapewniając dobrą wydajność. (dokument)

KOMAR

GNATY

GNATS to zestaw narzędzi do śledzenia błędów i innych problemów z oprogramowaniem zgłaszanych przez użytkowników. Jest całkowicie otwarty pod względem sposobu przeszukiwania, edytowania i utrzymywania bazy danych, wyposażony w interfejsy od wiersza poleceń po Emacs, chociaż głównym sposobem interakcji jest interfejs sieciowy. Jest również wystarczająco elastyczny, aby obsługiwać narzędzia utworzone przez użytkownika. (dokument)

Gnatsweb

Sieć neuronowa

Gneural Network implementuje programowalną sieć neuronową. Obecnie obsługuje sieci ze sprzężeniem zwrotnym, które mogą uczyć się prostych zadań, takich jak dopasowywanie krzywych. (dokument)

GNOM

GNOME to graficzny pulpit dla GNU. Zawiera szeroką gamę aplikacji do przeglądania Internetu, edycji tekstu i obrazów, tworzenia dokumentów i diagramów, odtwarzania multimediów, skanowania i wielu innych. (dokument)

Podręcznik referencyjny GNU C

To jest podręcznik referencyjny dla języka programowania C, zaimplementowanego przez kompilator GNU C (gcc). Jako odniesienie, nie jest on przeznaczony jako samouczek języka. Raczej opisuje wszystkie konstrukcje języka. Funkcje biblioteczne nie są uwzględnione. (dokument)

GNU-pw-mgr

Program ten ma na celu ułatwienie rekonstrukcji trudnych haseł, gdy są potrzebne, przy jednoczesnym ograniczeniu ryzyka ataku. Użytkownik tego programu wprowadza samodzielnie zdefiniowaną transformację adresu URL witryny internetowej i uzyskuje wskazówkę dotyczącą hasła i nazwy użytkownika dla tej witryny. (dokument)

GNUbatch

GNUbatch to zaawansowany system planowania wsadowego. Wykonuje zadania obliczeniowe w określonych terminach i godzinach lub według współzależności. Zadania mogą być wykonywane na dowolnej liczbie procesorów współdzielonych w sieci. Obsługiwana jest pełna kontrola dostępu do zadań. (dokument)

Backgammon

Aplikacji backgammon GNU można używać do grania, analizowania i nauczania gry. Posiada zaawansowany silnik ewaluacyjny oparty na sztucznych sieciach neuronowych, odpowiedni zarówno dla początkujących, jak i zaawansowanych graczy. Oprócz interfejsu wiersza poleceń oferuje także atrakcyjną trójwymiarową reprezentację planszy do gry. (dokument)

GNUbiff

GNUbiff to program, który sprawdza pocztę i powiadamia Cię o nadejściu nowych wiadomości. Obsługuje wiele skrzynek pocztowych, do których można uzyskać dostęp różnymi metodami, takimi jak POP3, IMAP, MH i pliki pocztowe. Powiadomienia graficzne są dostarczane z GTK i obsługiwana jest pełna integracja z GNOME. (dokument)

GNUbik

GNUbik to gra logiczna, w której musisz manipulować kostką tak, aby każda jej ścianka miała jednolity kolor. Gra jest konfigurowalna, co pozwala ustawić rozmiar kostki (domyślnie jest to 3x3) lub zmienić kolory. Możesz nawet zastosować zdjęcia do twarzy zamiast kolorów. Grę można skryptować za pomocą Guile. (dokument)

GNUcap

GNUcap to pakiet do analizy obwodów. Oferuje symulator obwodów ogólnego przeznaczenia i może wykonywać analizy prądu stałego i stanów przejściowych, analizę Fouriera i analizę prądu przemiennego. Silnik został zaprojektowany do wykonywania prawdziwej symulacji w trybie mieszanym. (dokument)

GnuCash

GnuCash to osobiste i profesjonalne oprogramowanie finansowo-księgowe. Można go używać do śledzenia rachunków bankowych, zapasów, dochodów i wydatków w oparciu o praktykę księgową podwójnego zapisu. Obejmuje obsługę importu QIF/OFX/HBCI i dopasowywania transakcji. Automatyzuje także kilka zadań, takich jak obliczenia finansowe czy zaplanowane transakcje. (dokument)

GnuComm

Podsystem telekomunikacyjny Projektu GNU: projekt parasolowy dla oprogramowania GNU Telephony, obecnie Bayonne, SIP Witch i ich bibliotek pomocniczych (Common C++ / uCommon, ccAudio, ccScript, ccRTP i ZRTP / ZRTP4J). (dokument)

GnuDOS

GnuDOS to zestaw programów zaprojektowanych, aby pomóc nowym użytkownikom systemu GNU w przyzwyczajeniu się do systemu, zwłaszcza użytkownikom, którzy mogą pochodzić z DOS-u. Składa się z menedżera plików, edytora tekstu i projektanta formularzy dla konsoli, a także podstawowej biblioteki do tworzenia podobnych narzędzi. (dokument)

Przedsiębiorstwo GNU

GNU Enterprise wspiera planowanie przedsiębiorstwa. Zawiera serwer aplikacji, wspólną bibliotekę programistyczną, IDE do projektowania formularzy danych, interfejs formularzy, nawigator i system menu oraz system raportowania danych. (dokument)

GNUgo

GNU Go to program grający w grę Go, w której gracze umieszczają kamienie na siatce, tworząc terytorium lub chwytając inne kamienie. Chociaż można w nią grać bezpośrednio z terminala, wyświetlając znaki ASCII, można także grać w GNU Go za pomocą interfejsów graficznych innych firm lub nawet w Emacsie. Obsługuje standardowy format przechowywania gier (SGF, Smart Game Format) i format komunikacji między procesami (GMP, Go Modem Protocol). (dokument)

Narzędzia interaktywne GNU

Narzędzia interaktywne GNU to zestaw lekkich, interaktywnych narzędzi wiersza poleceń. Obejmują one rozszerzalnego, ortodoksyjnego (dwupanelowego) menedżera plików, przeglądarkę plików ASCII/hex oraz przeglądarkę/killer procesów. Pakiet zawiera również powiązane narzędzia i skrypty, takie jak narzędzie do dekompresji dowolnego typu pliku archiwum. Wszystkie narzędzia można ulepszać i rozszerzać za pomocą plików konfiguracyjnych w celu wykonywania nowych poleceń. (dokument)

GNUjump

GNUjump to prosta, ale wciągająca gra, w której musisz skakać z platformy na platformę, aby uniknąć upadku, przy czym platformy spadają szybciej, im wyżej się wspinasz. Gra oferuje tryb wieloosobowy, nieograniczoną liczbę klatek na sekundę, płynne spadanie na podłogę, tematyczną grafikę i dźwięki oraz powtórki. (dokument)

GNUlib

Gnulib jest centralną lokalizacją wspólnej infrastruktury potrzebnej pakietom GNU. Zapewnia szeroką gamę funkcjonalności, np. przenośność między wieloma systemami, pracę z ciągami znaków Unicode, obliczenia kryptograficzne i wiele więcej. Kod ma być udostępniany na poziomie plików źródłowych, a nie stanowić samodzielną bibliotekę, która jest dystrybuowana, budowana i instalowana. Dołączony skrypt gnulib-tool pomaga w używaniu kodu Gnulib w innych pakietach. Dla wygody Gnulib zawiera także kopie plików związanych z licencjami i konserwacją. (dokument)

Mach

GNUmed

GNUmed to oprogramowanie do Elektronicznej Dokumentacji Medycznej, wspierające praktyki medyczne bez dokumentów papierowych. Obsługiwanych jest kilka języków interfejsu. (dokument)

GNUMeryczny

GNUMeric to aplikacja arkusza kalkulacyjnego GNU działająca pod środowiskiem GNOME. Współpracuje z innymi aplikacjami arkuszy kalkulacyjnych. Posiada szeroką gamę funkcji wykraczających poza typową funkcjonalność arkusza kalkulacyjnego, takich jak obsługa solwerów liniowych i nieliniowych, analiza statystyczna i inżynieria telekomunikacyjna. (dokument)

GNUmp3d

GNUMP3d to serwer strumieniowy dla plików audio MP3 i Ogg Vorbis, filmów i innych formatów multimedialnych. Jest mały i samodzielny, ma prosty, tematyczny interfejs HTML. Pliki audio można następnie odtwarzać w dowolnym odtwarzaczu obsługującym przesyłanie strumieniowe przez HTTP. (dokument)

GNNarody Zjednoczone

GNUnited Nations to system kompilacji służący do tłumaczenia strony internetowej www.site. Działa poprzez pliki szablonów, które umożliwiają łączenie zmian w indywidualne tłumaczenia strony, z których generowany jest końcowy kod HTML. W efekcie pomaga to w utrzymaniu aktualności wszystkich tłumaczeń strony. (dokument)

GNUnet

GNUnet to platforma bezpiecznej sieci peer-to-peer. Celem nadrzędnym jest zapewnienie solidnych podstaw wolnego oprogramowania dla globalnej, rozproszonej sieci zapewniającej bezpieczeństwo i prywatność. W tym sensie GNUnet ma na celu zastąpienie obecnego stosu protokołów internetowych. Oprócz aplikacji do bezpiecznej publikacji plików, rozrosła się i obejmuje wszelkiego rodzaju podstawowe aplikacje służące do tworzenia Internetu GNU. (dokument)

GnuPG

GNU Privacy Guard jest kompletną implementacją standardu OpenPGP. Służy do szyfrowania i podpisywania danych oraz komunikacji. Oferuje zaawansowane zarządzanie kluczami i możliwość dostępu do serwerów kluczy publicznych. Zawiera kilka bibliotek: libassuan (IPC pomiędzy komponentami GnuPG), libgpg-error (scentralizowane wartości błędów GnuPG) i libskba (praca z certyfikatami X.509 i danymi CMS). (dokument)

GNUPod

GNUpod to zbiór skryptów do używania iPodów z systemem GNU/Linux i innymi systemami operacyjnymi. Można go używać do przesyłania muzyki i okładek, wyszukiwania plików, usuwania plików, edytowania tagów, tworzenia list odtwarzania i nie tylko. (dokument)

GNUprologjava

GNU Prolog dla Java jest implementacją standardu ISO Prolog w postaci biblioteki Java (gnu.prolog). Dzięki niemu możesz używać Prologu z poziomu programów Java. (dokument)

Radio

GNU Radio to zestaw narzędzi do wdrażania radia programowego. Bloki przetwarzania sygnału można łączyć z niedrogim zewnętrznym sprzętem RF w celu tworzenia radiotelefonów definiowanych programowo. Bez sprzętu można go używać do symulacji. Aplikacje radiowe są pisane głównie w języku Python, z obsługą C++ dla zadań przetwarzania o krytycznym znaczeniu dla wydajności. (dokument)

Roboty

GNU Robots to gra, w której programujesz robota, aby eksplorował świat pełen wrogów, którzy mogą go skrzywdzić, przeszkód i jedzenia do zjedzenia. Celem gry jest utrzymanie się przy życiu i zbieranie nagród. Program robota można wygodnie zapisać w pliku tekstowym w języku programowania Scheme. (dokument)

Szkoła GNU

GNUschool to aplikacja internetowa przeznaczona dla uczniów, nauczycieli i administratorów szkół. Dzięki niemu nauczyciele mogą tworzyć testy, które uczniowie mogą rozwiązywać online, przekazywać opinie i wystawiać oceny. Administratorzy szkół mogą go używać do monitorowania obecności uczniów i edytowania informacji o uczniach. (dokument)

GNUshogi

GNU Shogi to program obsługujący grę Shogi (szachy japońskie). Zawiera także interfejs graficzny gry. Choć podobny do standardowych szachów, ten wariant jest znacznie bardziej skomplikowany. (dokument)

GNUsound

GNUsound to wielościeżkowy edytor dźwięku dla GNOME 1 i 2. Potrafi czytać i zapisywać wiele formatów plików audio, takich jak WAV, MP3 i FLAC. Może współpracować z backendami audio OSS, ALSA lub JACK. Zapewnia wiele różnych wbudowanych modułów przetwarzania dźwięku, takich jak zanikanie/zanikanie, opóźnienie i filtry. Wtyczki GLADSPA można również wykorzystać do dalszego przetwarzania. (dokument)

GNUspool

GNUspool to zaawansowany system buforowania wydruków. Oprócz funkcjonalności standardowego systemu drukowania, zapewnia możliwości przetwarzania końcowego, obsługę typów formularzy, wyrównywanie stron i inne funkcje. Działa przejrzyście w sieci, udostępniając zadania na dowolnym hoście drukarkom na dowolnym innym hoście. Dostępnych jest kilka różnych interfejsów użytkownika. (dokument)

GNUkrok

GNUstep jest w pełni funkcjonalnym, zorientowanym obiektowo środowiskiem programistycznym; uwzględniono także wiele aplikacji użytkownika. Jest ściśle zgodny z interfejsami API Cocoa, ale jest niezależny od platformy. (dokument)

GnuTLS

GnuTLS to bezpieczna biblioteka komunikacyjna implementująca protokoły SSL, TLS i DTLS. Jest dostarczany w postaci biblioteki C do obsługi protokołów, a także do analizowania i zapisywania X.5009, PKCS 12, OpenPGP i innych wymaganych struktur. (dokument)

GNUtrition

GNUtrition to darmowe oprogramowanie do analizy żywienia. Dzięki niemu można śledzić informacje o wartościach odżywczych żywności. Oprogramowanie korzysta z bazy danych Nutrient Database of Standard Reference Departamentu Rolnictwa Stanów Zjednoczonych jako źródła informacji o składnikach odżywczych żywności. (dokument)

GNUzilla

Gooptyczny

Goptical to biblioteka do projektowania i symulacji optyki w C++. Zapewnia klasy modeli dla komponentów optycznych, powierzchni i materiałów. Dzięki niemu można symulować budowę układu optycznego poprzez tworzenie i umieszczanie elementów optycznych w przestrzeni 3D oraz wizualizować światło rozchodzące się przez układ. (dokument)

Gorm

Gpaint

GNU Paint to prosty, łatwy w użyciu program do malowania dla środowiska GNOME. Obsługuje rysowanie odręczne, a także podstawowe kształty i tekst. Zawiera funkcję wycinania i wklejania nieregularnych regionów lub wielokątów. (dokument)

Gperf

gperf to doskonały generator funkcji skrótu. Dla danej listy ciągów tworzy funkcję skrótu i ​​tablicę skrótów w kodzie C lub C++. To, że funkcja skrótu jest doskonała, oznacza, że ​​nie mogą istnieć żadne kolizje i że wyszukiwania można dokonywać poprzez porównania pojedynczych ciągów. (dokument)

Gprolog

GNU Prolog to zgodny ze standardami kompilator Prologu z rozwiązywaniem ograniczeń w skończonych domenach. Akceptuje programy ograniczające Prolog+ i tworzy skompilowany, natywny plik binarny, który może działać samodzielnie. Zawiera także interaktywny tłumacz. (dokument)

phpGrabComics

phpGrabComics to program, który pobiera i zapisuje komiksy z Internetu. Posiada zarówno serwer, który może pobierać paski z różnych źródeł, jak i porty, maleńkie aplikacje, które pobierają listę dostępnych komiksów z serwera. (dokument)

Greg

GNU Greg to framework do testowania programów i bibliotek. Zapewnia pojedynczy front-end dla wszystkich testów pakietu, a także prosty framework do pisania testów. Jest ładowany jako moduł Guile do dowolnego oprogramowania z wbudowanym interpreterem Guile. Zapewnia także skompilowany moduł, który można dynamicznie połączyć z Guile, aby umożliwić testowanie programów zewnętrznych. (dokument)

Grep

grep to narzędzie do wyszukiwania tekstu w plikach. Tekst jest wyszukiwany poprzez dopasowanie do wzorca podanego przez użytkownika w jednym lub wielu plikach. Wzorzec może być dostarczony jako podstawowe lub rozszerzone wyrażenie regularne albo jako stałe ciągi znaków. Domyślnie pasujący tekst jest po prostu drukowany na ekranie, jednakże wynik można w dużym stopniu dostosować, tak aby zawierał na przykład numery linii. GNU grep oferuje wiele rozszerzeń w stosunku do standardowego narzędzia, w tym na przykład rekursywne przeszukiwanie katalogów. (dokument)

Gretl

GNU Gretl to pakiet do wykonywania obliczeń statystycznych dla ekonometrii. Składa się zarówno z klienta wiersza poleceń, jak i klienta graficznego. Zawiera różne estymatory, takie jak metoda najmniejszych kwadratów i maksymalne prawdopodobieństwo; kilka metod szeregów czasowych, takich jak ARIMA i GARCH; ograniczone zmienne zależne, takie jak logit, probit i tobit; i potężny język skryptowy. Może wyprowadzać modele jako pliki LaTeX. Można go także powiązać z GNU R i GNU Octave w celu dalszej analizy danych. (dokument)

Groffa

Groff to pakiet do składu tekstu, który czyta zwykły tekst i generuje sformatowane dane wyjściowe w oparciu o polecenia formatujące zawarte w tekście. Zwykle jest to formater stron dokumentacji man. (dokument)

ŻARCIE

GRUB to program ładujący obsługujący wiele systemów operacyjnych. Służy do wstępnego załadowania jądra systemu operacyjnego, a następnie przekazania mu kontroli. Następnie jądro ładuje resztę systemu operacyjnego. Jako program ładujący multiboot, GRUB radzi sobie z obecnością wielu systemów operacyjnych zainstalowanych na tym samym komputerze; po uruchomieniu komputera użytkownikowi pojawia się menu umożliwiające wybranie jednego z zainstalowanych systemów operacyjnych. (dokument)

Gsasl

GNU SASL jest implementacją struktury prostego uwierzytelniania i warstwy bezpieczeństwa. Na serwerach sieciowych, takich jak serwery IMAP lub SMTP, do obsługi uwierzytelniania klient/serwer używany jest protokół SASL. Pakiet ten zawiera zarówno bibliotekę, jak i narzędzie wiersza poleceń umożliwiające dostęp do biblioteki. (dokument)

Gsegrafix

GSEGrafix to aplikacja, która tworzy wysokiej jakości wykresy graficzne dla nauki i inżynierii. Wykresy są określane za pomocą prostych plików parametrów ASCII i plików danych i są prezentowane w wygładzonym obszarze roboczym GNOME. Program obsługuje prostokątne wykresy dwuwymiarowe, histogramy, wykresy osi biegunowej i wykresy trójwymiarowe. Wykresy można drukować lub zapisywać w formatach obrazu BMP, JPEG lub PNG. (dokument)

Biblioteka naukowa GNU

Biblioteka naukowa GNU to biblioteka do analizy numerycznej w językach C i C++. Zawiera szeroką gamę procedur matematycznych, łącznie ponad 1000 funkcji. Obszary tematyczne objęte biblioteką obejmują: równania różniczkowe, algebra liniowa, szybkie transformaty Fouriera i liczby losowe. (dokument)

Poślizg GNU

GNU Slip jest funkcjonalnym rozszerzeniem możliwości dostępnych w kontenerach list i kolejek standardowej biblioteki szablonów C++ (STL), chociaż SLIP nie zastępuje kontenerów STL. Komórki danych SLIP można między innymi wykorzystać w obliczeniach specyficznych dla aplikacji. (dokument)

GSRC obsługuje instalowanie najnowszych wydań pakietów GNU w istniejącym systemie. Nowe wersje instaluje się w oddzielnym miejscu, aby nie kolidować z wersjami systemu. Celem jest ułatwienie pracy z oryginalnymi źródłami GNU i być może pomoc w rozwoju i testowaniu. (dokument)

Ogólna Służba Bezpieczeństwa

Usługa GNU Generic Security Service zapewnia bezpłatną implementację specyfikacji GSS-API. Zapewnia ogólny interfejs programowania aplikacji umożliwiający programom dostęp do usług bezpieczeństwa. Usługi bezpieczeństwa oferują ogólny interfejs GSS, z którym aplikacja wywołująca wchodzi w interakcję za pośrednictwem tej biblioteki, uwalniając twórcę aplikacji od konieczności posiadania wiedzy na temat podstawowej implementacji zabezpieczeń. (dokument)

GZaznacz

GTick to aplikacja metronomu. Obsługuje różne mierniki, takie jak 2/4, 3/4, 4/4 itp. Obsługuje również szeroki zakres prędkości, od 10 do 1000 BPM. Zapewnia interfejs użytkownika oparty na GTK+ i może wykorzystywać zarówno OSS, jak i ALSA jako zaplecze audio. (dokument)

GTK+

Gtypistka

GNU Typist to uniwersalny nauczyciel pisania. Można go używać do nauki i ćwiczenia pisania bezwzrokowego. Zawiera kilka samouczków; oprócz tutoriali dotyczących standardowego układu QWERTY, dostępne są także tutoriale dotyczące alternatywnych układów Dvoraka i Colemaka, a także klawiatury numerycznej. Poradniki są głównie w języku angielskim, jednak dostępne są także w innych językach. (dokument)

Podstęp

Guile to wszechobecny inteligentny język rozszerzeń GNU, oficjalny język rozszerzenia systemu GNU. Jest to implementacja języka Scheme, którą można łatwo osadzić w innych aplikacjach, aby zapewnić wygodny sposób rozszerzania funkcjonalności aplikacji bez konieczności przepisywania kodu źródłowego. (dokument)

Guile-cv

Guile-CV to funkcjonalna biblioteka programowania Computer Vision dla języka Guile Scheme. Guile-CV opiera się na Vigrze (Wizja z algorytmami ogólnymi). Zawiera bezpośrednie powiązanie z vigra_c (opakowanie C do podzbioru biblioteki Vigra) oraz interfejs API wyższego poziomu napisany w Guile Scheme. (dokument)

Guile-dbi

guile-dbi to biblioteka dla Guile, która zapewnia wygodny interfejs do baz danych SQL. Programowanie baz danych za pomocą guile-dbi jest ogólne w tym sensie, że prezentowany jest ten sam interfejs programistyczny niezależnie od używanego systemu baz danych. Obecnie obsługuje MySQL, Postgres i SQLite3. (dokument)

Guile-gnom

Zawiera guile-clutter, guile-gnome-gstreamer, guile-gnome-platforma (biblioteki dla programistów GNOME) i guile-gtksourceview. (dokument)

Podstępne klątwy

guile-ncurses zapewnia powiązania języka Guile dla biblioteki ncurses. (dokument)

Guile-opengl

Guile-OpenGL to biblioteka dla Guile, która zapewnia powiązania z graficznym API OpenGL. (dokument)

Guile-SDL

Guile-SDL to zestaw powiązań z Simple DirectMedia Layer (SDL). Dzięki nim programiści Guile mogą mieć łatwy dostęp do grafiki, dźwięku i danych wejściowych urządzeń (klawiatury, joysticki, myszy itp.). (dokument)

Guix

GNU Guix to funkcjonalny menedżer pakietów dla systemu GNU, a także jego dystrybucja. Zawiera obraz maszyny wirtualnej. Oprócz zwykłych funkcji zarządzania pakietami obsługuje także aktualizacje transakcyjne i wycofywanie, profile poszczególnych użytkowników i wiele więcej. Opiera się na menedżerze pakietów Nix. (dokument)

Bulgot

GURGLE tworzy zestawienia raportów bazy danych na podstawie informacji o rekordach i polach z pliku. Wykorzystuje raport do tworzenia danych wyjściowych w formacie (La)TeX, zwykłego tekstu ASCII, troff, PostScript, HTML, XML lub dowolnego innego formatu wyjściowego opartego na ASCII. Można go używać do tworzenia dużych zbiorów tekstowych, w których małe fragmenty tekstu są zastępowane informacjami z bazy danych. GURGLE obsługuje bazy danych GNUSQL, PostgreSQL, MySQL i CA-Ingres. (dokument)

GNU GV to graficzny interfejs użytkownika dla interpretera Ghostscript. Dzięki niemu można przeglądać i poruszać się po dokumentach PostScript i PDF w X Windows. (dokument)

GVPE

GNU Virtual Private Ethernet tworzy sieć wirtualną z wieloma węzłami, korzystając z różnych protokołów transportowych. Działa poprzez tworzenie zaszyfrowanych tuneli host-host pomiędzy wieloma punktami końcowymi. (dokument)

G.W.L.

GWL to język przepływu pracy, który rozszerza deklaratywny język Guix do zarządzania pakietami w celu automatyzacji wykonywania programów. Dodatkowo GWL może używać Grid Engine do odciążania wykonywania programu. (doc)

Wiadomość Gx

GNU gxmessage to program, który wyświetla okna dialogowe, które wyświetlają użytkownikowi wiadomość i czekają na jego działanie. Następnie program kończy działanie z kodem zakończenia odpowiadającym odpowiedzi. (dokument)

Gzip

GNU Gzip zapewnia narzędzia do kompresji i dekompresji danych; typowym rozszerzeniem jest .gz. W przeciwieństwie do formatu ZIP kompresuje pojedynczy plik; w rezultacie jest często używany w połączeniu z tar , co daje .tar.gz lub .tgz itp. (dokument)

Halifax

HaliFAX obsługuje wysyłanie i przeglądanie faksów, łącznie z poleceniem lpr. Pakiet szuka opiekuna. (dokument)

Zdrowie

GNU Health to darmowy system oprogramowania medycznego, obejmujący obsługę elektronicznej dokumentacji medycznej (EMR), szpitalny system informacyjny (HIS) i system informacji zdrowotnej. Obsługuje interfejsy hiszpański i angielski. Został on przyjęty przez Uniwersytet Narodów Zjednoczonych do celów wdrażania i szkolenia, a także kilka szpitali i ministerstw zdrowia na całym świecie. (dokument)

Cześć

GNU Hello wyświetla wiadomość Witaj, świecie! a następnie wychodzi. Służy jako przykład standardowych praktyk kodowania GNU. Jako taki obsługuje argumenty wiersza poleceń, wiele języków i tak dalej. (dokument)

Help2man

GNU help2man to program, który automatycznie konwertuje wyjście standardowych argumentów wiersza poleceń --help i --version na stronę podręcznika. (dokument)

Hp2xx

GNU hp2xx konwertuje grafikę wektorową określoną w języku ploterów HP-GL na różne formaty graficzne, zarówno wektorowe, jak i rastrowe, w tym EPS, PCX, IMG i formaty przeznaczone do użycia w dokumentach TeX. (dokument)

httptunel

httptunnel GNU tworzy dwukierunkową ścieżkę danych tunelowaną w żądaniach HTTP. Dzięki temu użytkownicy za zaporami sieciowymi mogą wysyłać i odbierać dane, które w innym przypadku byłyby blokowane, na przykład połączenia telnet lub ssh. (dokument)

Hurd

Hurd jest jądrem systemu GNU, zastępującym i rozszerzającym standardowe jądra Uniksa. Jest to zbiór protokołów interakcji systemów (systemów plików, sieci, uwierzytelniania) i serwerów je wdrażających. Podprojekty obejmują Mach, mikrojądro, na którym oparty jest Hurd, zapewniający podstawowy mechanizm komunikacji między procesami, oraz MIG, generator interfejsu dla Macha. (dokument)

Hiperbola

Hyperbole to programowalny system informacji i hipertekstu dla GNU Emacs. Umożliwia osadzanie hipertekstu w dokumentach, wiadomościach pocztowych i artykułach prasowych. Umożliwia to sterowanie wyświetlanymi informacjami za pomocą myszy. (dokument)

Icecat

IceCat to wersja GNU przeglądarki Firefox. Jest to całkowicie darmowe oprogramowanie, które nie poleca niewolnych wtyczek i dodatków. Posiada również wbudowane funkcje ochrony prywatności. (dokument)

Idutils

Pakiet GNU idutils zawiera narzędzia do tworzenia indeksu tokenów tekstowych używanych na liście nazw plików, a następnie do wysyłania zapytań do tego indeksu. Dzięki temu użytkownik może na przykład znaleźć wszystkie zastosowania danej funkcji w dużym projekcie programistycznym. Oprócz obsługi tokenów tekstowych może także obsługiwać stałe numeryczne i zawartość ciągów znaków. (dokument)

Ignuit

Ignuit to narzędzie pomagające w zapamiętywaniu nowych informacji oparte na systemie fiszek Leitner. W tym systemie nowe karty są badane z coraz mniejszą częstotliwością w miarę ich starzenia się, chyba że napotkasz trudności z ich zapamiętywaniem, po czym będziesz je częściej spotykał. Karty mogą zawierać osadzony dźwięk, obrazy i formuły matematyczne, a kolekcję kart można wyeksportować do kilku formatów. (dokument)

Akapit

Indent to program, który ułatwia czytanie kodu źródłowego poprzez przeformatowanie go w spójny styl. Może zmienić styl na jeden z kilku różnych stylów, takich jak GNU, BSD lub K&R. Ma pewną elastyczność, aby poradzić sobie z niekompletną lub zniekształconą składnią. GNU indent oferuje kilka rozszerzeń w stosunku do standardowego narzędzia. (dokument)

Inetutils

Inetutils to zbiór popularnych programów sieciowych, takich jak klient i serwer FTP, klient i serwer telnet oraz klient i serwer rsh. (dokument)

Czytelnik Inklinga

GNU InklingReader to pakiet obsługujący urządzenie Wacom Inkling, obejmujący konwersję danych do różnych bezpłatnych formatów, podstawowe funkcje edycyjne i wtyczkę Inkscape. (dokument)

Intlczcionki

GNU intlfonts zawiera darmowe czcionki X11 w formatach BDF i TrueType. Obejmują one w szczególności dużą liczbę znaków z różnych systemów pisma: europejskiego, azjatyckiego, chińskiego, japońskiego, koreańskiego, etiopskiego i innych. (dokument)

JACAL

GNU JACAL to interaktywny program do matematyki symbolicznej oparty na schemacie. Manipuluje i upraszcza szereg wyrażeń matematycznych, takich jak równania, skalary, wektory i macierze. (dokument)

Jami

Jami to program do powszechnej komunikacji, który szanuje wolność i prywatność swoich użytkowników. Jami używa rozproszonych tablic skrótów do nawiązania komunikacji. Pozwala to uniknąć prowadzenia scentralizowanych rejestrów użytkowników i przechowywania danych osobowych. (dokument)

Getopt Java

java-getopt udostępnia port Java dla funkcji GNU getopt z glibc. Obsługuje analizowanie zarówno długich, jak i krótkich argumentów wiersza poleceń w elastyczny sposób, który jest całkowicie kompatybilny z wersją C. (dokument)

Jel

GNU JEL to biblioteka, która pozwala programowi akceptować wyrażenia zdefiniowane przez użytkownika, które można wprowadzać i oceniać w czasie wykonywania. W rzeczywistości wyrażenia są kompilowane przez JEL do kodu bajtowego Java, aby uniknąć pogorszenia wydajności w wyniku dodawania zinterpretowanych wyrażeń do już zinterpretowanego języka. (dokument)

Koła szkoleniowe Java

Koła szkoleniowe GNU Java zapewniają mniej stromą krzywą uczenia się programowania w Javie. System jest zasilany przez preprocesor, który dodaje do języka Java funkcje, takie jak makro superfor i system dołączania plików, podobny do preprocesora języka C. (doc)

Jwhois

GNU jwhois jest klientem protokołu WHOIS, który umożliwia wysyłanie zapytań do właściciela nazwy domeny. Program korzysta z rozszerzalnego pliku konfiguracyjnego w celu określenia najodpowiedniejszego serwera do zapytania, a po pomyślnym wysłaniu zapytania wyświetla użytkownikowi wynik. W przeciwnym razie może opcjonalnie przekierować zapytanie na inny serwer. (dokument)

Kawa

GNU Kawa to implementacja języka programowania Scheme zbudowana na platformie Java. Jest zatem wygodnie zintegrowany z Javą i czerpie z tego korzyści dzięki posiadaniu kompilatora, opcjonalnego pisania statycznego i tak dalej. Kawa służy również jako framework do implementacji innych języków programowania na platformie Java. Kawa zawiera qexo, częściową implementację XQuery w Javie. (dokument)

Noga

GNU Leg to zestaw bibliotek do silników gier i tworzenia gier. Oprócz bibliotek zawiera także edytory zasobów zaprojektowane w celu ułatwienia tworzenia gier. Pakiet został zaprojektowany jako ogólny i modułowy, obsługujący wiele różnych stylów gier. (dokument)

Mniej

GNU less to pager, program umożliwiający przeglądanie dużych ilości tekstu w fragmentach wielkości strony. W przeciwieństwie do tradycyjnych pagerów umożliwia poruszanie się po dokumencie zarówno do tyłu, jak i do przodu. Nie musi także czytać całego pliku wejściowego przed uruchomieniem, więc uruchamia się szybciej niż większość edytorów tekstu. (dokument)

Biblioteka GNU C

Biblioteka GNU C jest standardową biblioteką C systemu GNU. Definiuje wywołania systemowe i inne podstawowe funkcjonalności niezbędne do pisania programów w języku C. Obsługuje funkcje niskiego poziomu, które komunikują się z jądrem, takie jak zarządzanie procesami i plikami, a także funkcje wyższego poziomu, takie jak manipulowanie ciągami znaków lub obsługa argumentów wiersza poleceń. (dokument)

Libcdio

Biblioteka wejścia i sterowania płytą kompaktową GNU (libcdio) to biblioteka umożliwiająca dostęp do dysków CD-ROM i plików obrazów płyt CD. Umożliwia programiście dodanie dostępu do płyty CD do aplikacji bez konieczności martwienia się o właściwości CD-ROM zależne od systemu operacyjnego i urządzenia lub szczegółowe informacje dotyczące formatów obrazów płyt CD. Zawiera pycdio, interfejs Pythona do libcdio i libcdio-paranoia, bibliotekę zapewniającą pozbawioną jittera i błędów ekstrakcję dźwięku z płyt CD. (dokument)

Libdbh

Libdbh udostępnia dyskowe tabele mieszające, umożliwiające szybkie wyszukiwanie par klucz-wartość. Chociaż jego zastosowanie jest ogólnie podobne do (G)DBM, ma inną konstrukcję, obsługującą zaawansowane, nietypowe zastosowania. (dokument)

Wolność Eiffela

Projekt Liberty Eiffel to kompilator GNU Eiffel. Eiffel to zaawansowany obiektowy język programowania, który kładzie nacisk na projektowanie i budowę oprogramowania o wysokiej jakości i nadającego się do ponownego użycia. Liberty Eiffel to kompletny, mały i szybki kompilator Eiffla, zawierający kompilator Eiffla do C, narzędzia dokumentacyjne, ładną drukarkę, debugger i różne inne narzędzia. Zawiera także dużą bibliotekę klas, jak również kompleksowy zestaw opakowań/powiązań dla szeroko rozpowszechnionych bibliotek Wolnego Oprogramowania. (dokument)

Libextraktor

GNU libextractor to biblioteka do wyodrębniania metadanych z plików. Obsługuje bardzo dużą liczbę formatów plików, w tym pliki audio, pliki dokumentów i pliki archiwów. Każdy format pliku jest zaimplementowany jako wtyczka, dzięki czemu można łatwo dodawać nowe formaty. Pakiet zawiera również narzędzie wiersza poleceń umożliwiające wyodrębnienie metadanych z pliku i wydrukowanie wyników. (dokument)

Libkrypt

Libgcrypt to biblioteka kryptograficzna ogólnego przeznaczenia. Zapewnia standardowe elementy kryptograficzne, takie jak szyfry symetryczne, algorytmy mieszające, algorytmy klucza publicznego, funkcje dużych liczb całkowitych i generowanie liczb losowych. (dokument)

Libiconv

libiconv zapewnia implementację funkcji iconv dla systemów, w których jej brakuje. iconv służy do konwersji pomiędzy kodowaniami znaków w programie. Obsługuje szeroką gamę różnych kodowań. (dokument)

Libid

libidn to biblioteka implementująca specyfikacje Stringprep, Punycode i IDNA. Służą one do kodowania i dekodowania międzynarodowych nazw domen. Zawiera natywne biblioteki C, C# i Java. (dokument)

Libmatheval

GNU libmatheval to biblioteka służąca do analizowania i oceniania wyrażeń symbolicznych wprowadzanych przez użytkownika w postaci tekstu. Można go załadować zarówno z języka C, jak i Fortran. Interpreter jest elastyczny, obsługuje dowolną liczbę zmiennych o dowolnych nazwach, stałe dziesiętne i symboliczne, podstawowe operatory jedno i binarne oraz elementarne funkcje matematyczne. Może także obliczać pochodne symboliczne i wyprowadzać wyrażenia na ciągi znaków. (dokument)

Libmicrohttpd

GNU libmicrohttpd to mały, osadzany serwer HTTP zaimplementowany jako biblioteka C. Ułatwia uruchomienie serwera HTTP jako części innej aplikacji. Biblioteka jest w pełni zgodna z protokołem HTTP 1.1. Może nasłuchiwać na wielu portach, obsługuje cztery różne modele wątków i obsługuje IPv6. Posiada również funkcje bezpieczeństwa, takie jak uwierzytelnianie podstawowe i szyfrowane oraz obsługa SSL3 i TLS. (dokument)

libreje

LibreJS to dodatek do GNU Icecat i innych przeglądarek opartych na przeglądarce Firefox. Wykrywa nietrywialny i niewolny kod JavaScript ładowany bez Twojej zgody podczas przeglądania sieci. Dopuszczalne jest ładowanie kodu JavaScript, który jest bezpłatny lub trywialny. (dokument)

Libsigsegv

GNU libsigsegv to biblioteka do obsługi błędów stron, które pojawiają się, gdy program próbuje uzyskać dostęp do niedostępnego obszaru pamięci w trybie użytkownika. Wychwytując i obsługując błędy stron, program może zaimplementować stronicowaną pamięć wirtualną, procedury obsługi przepełnienia stosu i tak dalej. (dokument)

Libtasn1

GNU libtasn1 to biblioteka implementująca notację ASN.1. Służy do przesyłania neutralnego maszynowo kodowania obiektów danych w sieciach komputerowych, umożliwiając formalną walidację danych zgodnie z pewnymi specyfikacjami. (dokument)

Narzędzie Libtool

GNU Libtool pomaga w tworzeniu i używaniu bibliotek współdzielonych, prezentując jeden spójny, przenośny interfejs, który ukrywa zwykłą złożoność pracy z bibliotekami współdzielonymi na różnych platformach. (dokument)

Libunistring

GNU libunistring to biblioteka udostępniająca funkcje do manipulowania ciągami znaków Unicode i do manipulowania ciągami C zgodnie ze standardem Unicode. (dokument)

Libxmi

GNU libxmi to biblioteka do rasteryzacji grafiki wektorowej 2D dla języków C i C++. Obsługuje rysowanie prymitywów 2D w dostarczonej przez użytkownika matrycy pikseli. Obsługuje także specyfikację wyrafinowanych stylów linii, takich jak wielokolorowe wzory przerywane. Obsługiwane jest również wypełnianie i teksturowanie wielokątów. (dokument)

Błyskawica

GNU Lightning to biblioteka generująca kod w języku asemblera w czasie wykonywania. Dlatego jest przydatny przy tworzeniu kompilatorów Just-In-Time. Abstrahuje od docelowego procesora, udostępniając klientom standardowy zestaw instrukcji RISC. (dokument)

Liliowy staw

GNU LilyPond to zecer muzyczny, który tworzy wysokiej jakości nuty. Muzyka jest wprowadzana w pliku tekstowym zawierającym sekwencje kontrolne, które są interpretowane przez LilyPond w celu stworzenia ostatecznego dokumentu. Można go rozszerzyć za pomocą Guile. (dokument)

Limy

GNU LIMS to laboratoryjny system zarządzania informacją. Służy do zarządzania laboratorium naukowym dowolnej dziedziny. Składa się z zestawu modułów dla frameworku zarządzania przedsiębiorstwem Tryton, dzięki czemu jest elastyczny do specyficznych potrzeb laboratorium. System zawiera na przykład moduły do ​​zarządzania próbkami, integracji sprzętu laboratoryjnego, księgowości i zarządzania zapasami. (dokument)

Linux-libre

GNU Linux-Libre jest darmowym (jak w wolności) wariantem jądra Linuksa. Został zmodyfikowany w celu usunięcia wszystkich niewolnych obiektów binarnych. (dokument)

Płynna wojna 6

GNU Liquid War 6 to szybka, wyjątkowa gra akcji. Każdy gracz kontroluje kroplę płynu, a jego celem jest podbicie całej mapy. Domyślnie ma 13 poziomów i ponad 100 więcej z pakietem bonusowym; nowe poziomy można łatwo tworzyć za pomocą prostych plików graficznych. (dokument)

Lispintro

Lrzsz

GNU lrzsz to pakiet komunikacyjny obsługujący protokoły przesyłania plików XMODEM, YMODEM i ZMODEM. (dokument)

Lsz

GNU lsh jest darmową implementacją protokołu SSH w wersji 2. Służy do tworzenia bezpiecznej linii komunikacyjnej pomiędzy dwoma komputerami, zapewniając dostęp powłoki do systemu serwerowego od klienta. Udostępnia zarówno demona serwera, jak i aplikację kliencką, a także narzędzia do manipulowania plikami kluczy. (dokument)

GNU M4 jest implementacją języka makr M4, która zawiera pewne rozszerzenia w stosunku do innych implementacji, z których część jest wymagana przez GNU Autoconf. Jest używany jako procesor makr, co oznacza, że ​​przetwarza tekst, rozwijając makra, gdy je napotka. Posiada również pewne wbudowane funkcje, na przykład do uruchamiania poleceń powłoki lub wykonywania działań arytmetycznych. (dokument)

Zmieniacz MAC

GNU MAC Changer to narzędzie do przeglądania i zmiany adresów MAC urządzeń sieciowych. Nowe adresy mogą być ustawiane jawnie lub losowo. Mogą obejmować adresy MAC tego samego lub innych dostawców sprzętu lub, bardziej ogólnie, adresy MAC tej samej kategorii sprzętu. (dokument)

Listonosz

GNU Mailman to oprogramowanie do zarządzania dyskusjami e-mailowymi i listami mailingowymi. Zarówno użytkownicy, jak i administratorzy zazwyczaj wykonują swoje działania w interfejsie internetowym, chociaż dostępny jest również interfejs poczty elektronicznej i wiersza poleceń. System oferuje wbudowaną archiwizację, automatyczne przetwarzanie zwrotów, filtrowanie treści, dostarczanie podsumowań i wiele innych. (dokument)

Mailutils

GNU Mailutils to zbiór programów do zarządzania, przeglądania i przetwarzania poczty elektronicznej. Zawiera zarówno narzędzia, jak i demony serwera, a wszystkie działają w sposób niezależny od protokołu. Dostępne są również podstawowe biblioteki, co upraszcza dodawanie funkcji poczty do nowego oprogramowania. (dokument)

Robić

Make to program służący do kontrolowania tworzenia plików wykonywalnych lub innych plików z ich plików źródłowych. Proces jest kontrolowany z pliku Makefile, w którym programista określa, w jaki sposób każdy plik jest generowany ze źródła. Ma zaawansowane rozpoznawanie zależności i możliwość określenia, kiedy pliki muszą zostać zregenerowane po zmianie ich źródeł. GNU oferuje wiele potężnych rozszerzeń w stosunku do standardowego narzędzia. (dokument)

MARSZ

GNU MARST jest tłumaczem Algol na C. Pakiet składa się z samego tłumacza, biblioteki zawierającej niezbędne procedury Algol 60 oraz konwertera, który konwertuje istniejące programy Algol 60 z innych reprezentacji na reprezentację MARST. (dokument)

Maverik

GNU MAVERIK to zestaw narzędzi programistycznych obsługujący wirtualne środowiska 3D i interakcję z tymi środowiskami. Opiera się na silniku renderującym niskiego poziomu, który wykorzystuje OpenGL lub Mesa i zapewnia mechanizmy renderowania różnego rodzaju obiektów, zarządzania środowiskami i zapewniania obsługi interakcji 3D. (dokument)

Dowódca Północy

GNU Midnight Commander to menedżer plików uruchamiany z wiersza poleceń, mający typowy, dwupanelowy format. Oprócz standardowych zadań zarządzania plikami, takich jak kopiowanie i przenoszenie, Midnight Commander obsługuje także przeglądanie zawartości plików pakietów RPM i innych archiwów oraz zarządzanie plikami na innych komputerach poprzez FTP lub FISH. Zawiera także potężny edytor tekstu do otwierania plików tekstowych. (dokument)

Mcron

GNU Mcron jest kompletnym zamiennikiem crona Vixie. Służy do uruchamiania zadań według harmonogramu, na przykład co godzinę lub w każdy poniedziałek. Mcron jest napisany w Guile, więc jego konfigurację można zapisać w Scheme; obsługiwany jest także oryginalny format cron. Pakiet szuka opiekuna. (dokument)

MCSim

GNU MCSim to pakiet do przeprowadzania symulacji. Obsługuje statystyczne lub deterministyczne modele symulacyjne poprzez symulacje stochastyczne Monte Carlo lub symulacje dynamiczne oparte na ODE. Może także przeprowadzać wnioskowanie bayesowskie poprzez symulacje Monte Carlo w postaci łańcucha Markowa. (dokument)

Zestaw rozwojowy MIX

GNU MDK to zestaw deweloperski Mix, emulacja komputera pedagogicznego MIX i jego języka asemblera MIXAL. MIX posiada wirtualny procesor ze standardowymi funkcjami, takimi jak rejestry, komórki pamięci, przełącznik przepełnienia, flagi porównawcze, urządzenia wejścia-wyjścia i zestaw instrukcji binarnych. Pakiet zawiera kompilator, maszynę wirtualną, GUI dla maszyny wirtualnej i wiele więcej. (dokument)

Mediagoblin

GNU MediaGoblin to bezpłatna platforma do publikowania multimediów. Działa w sposób federalny, uwalniając użytkownika od scentralizowanych usług sieciowych. Obsługuje zdjęcia, filmy i dźwięk. (dokument)

Topienie

GNU MELTING oblicza entalpię, entropię i temperaturę topnienia przejść helisa-cewka dupleksu kwasu nukleinowego. (dokument)

Pula pamięci

Biblioteka MemPool jest samodzielną biblioteką alokacji pamięci. Jest to biblioteka alokatora bloków, która wykorzystuje pojedynczą pulę pamięci o stałym rozmiarze do alokacji bloków pamięci o zmiennej wielkości i eksportuje funkcje podobne do malloc, realloc i free. Ma on albo symulować cele z małą ilością pamięci w systemach GNU/Linux i innych, albo całkowicie zastąpić zarządzanie pamięcią systemową. (dokument)

Mes

GNU Mes ma na celu pomóc w stworzeniu pełnego ładowania źródłowego dla systemów GNU/Linux, takich jak GuixSD. Zawiera interpreter schematu wspólnego hostowania napisany w prostym języku C oraz kompilator C oparty na Nyacc napisany w schemacie zgodnym z GNU Guile. Biblioteka Mes C obsługuje ładowanie gcc. (dokument)

Metahtml

GNU MetaHTML to język programowania po stronie serwera, zaprojektowany dla sieci WWW. Ma składnię podobną do HTML i Lisp. Zapewnia dużą bibliotekę funkcji, w tym obsługę gniazd, tworzenie obrazów i połączenia z innymi programami. (dokument)

Mifluz

GNU mifluz to biblioteka C++ do przechowywania odwróconego indeksu pełnotekstowego. Przechowuje wystąpienia słów w zestawie tekstów w taki sposób, aby można je było później wyszukiwać. Po wyszukaniu słowa indeks zwraca listę dokumentów zawierających to słowo. (dokument)

Mig

Różne pliki

GNU Miscfiles to zbiór popularnych plików danych. Obejmują one na przykład skróty krajów, nazwy i stolice; skróty i nazwy walut; indeks najlepszych bieżących praktyk; mapa zestawu znaków ASCII; lista trzyliterowych kodów lotnisk; oraz listę angielskich słów. (dokument)

Schemat MIT/GNU

GNU/MIT Scheme jest implementacją języka programowania Scheme. Zawiera interpreter, kompilator i debuger. Zawiera także zintegrowany edytor podobny do Emacsa i dużą bibliotekę wykonawczą. (dokument)

Moe

GNU Moe to potężny, ale prosty w obsłudze edytor tekstu. Działa w sposób bezmodowy i zawiera intuicyjny zestaw przypisań klawiszy, które przypisują każdemu klawiszowi stopień ważności; na przykład kombinacje klawiszy z klawiszem Alt służą do nieszkodliwych poleceń, takich jak ruchy kursora, natomiast kombinacje z klawiszem Control służą do poleceń modyfikujących tekst. Moe oferuje wiele okien, nieograniczone cofanie/ponawianie, nieograniczoną długość linii, globalne wyszukiwanie i zamianę i wiele więcej. (dokument)

Motti

GNU Motti to prosta gra strategiczna dla wielu graczy, w którą gra się na terminalu. Celem gry jest podbicie stolic wroga poprzez zajęcie i okrążenie terytorium. (dokument)

MPc

GNU MPC to biblioteka C służąca do wykonywania arytmetyki na liczbach zespolonych. Obsługuje dowolnie wysoką precyzję i poprawnie zaokrągla wyniki. (dokument)

MPfr

GNU MPFR to biblioteka C służąca do wykonywania obliczeń zmiennoprzecinkowych o wiele precyzji z prawidłowym zaokrąglaniem. (dokument)

Mpria

GNU MPRIA to biblioteka C służąca do wykonywania racjonalnych obliczeń arytmetycznych z dowolnie dużą precyzją. Opiera się na bibliotece GMP. (dokument)

Mnarzędzia

GNU Mtools to zestaw narzędzi umożliwiających dostęp do dysków MS-DOS z systemu GNU lub Unix. Obsługuje długie nazwy plików i wiele formatów dysków. Obsługuje także niektóre funkcje specyficzne dla systemu FAT, takie jak etykiety woluminów i atrybuty plików specyficzne dla systemu FAT. (dokument)

Nana

GNU Nana to framework umożliwiający dodawanie sprawdzania asercji, rejestrowania i pomiaru wydajności do programów C i C++. Operacje można zaimplementować bezpośrednio w języku C lub generując polecenia debugera. Funkcje sprawdzania i rejestrowania można włączać i wyłączać w czasie kompilacji lub wykonywania. (dokument)

Nano

GNU nano to mały i prosty edytor tekstu do użytku w terminalu. Oprócz podstawowej edycji obsługuje: cofanie/ponawianie, podświetlanie składni, sprawdzanie pisowni, justowanie, automatyczne wcięcia, dopasowywanie nawiasów, interaktywne wyszukiwanie i zamienianie (za pomocą wyrażeń regularnych) oraz edycję wielu plików. (dokument)

Nanoarchimedes

nano-archimedes to darmowy pakiet do symulacji układów kwantowych. Opiera się na równaniu Wignera, sformułowaniu mechaniki kwantowej w kategoriach przestrzeni fazowej, które jest matematycznie równoważne równaniu Schroedingera. nano-archimedes wdraża metodę Wignera Monte Carlo. Kod można łatwo rozszerzyć na teorię funkcjonału gęstości (DFT) i zależne od czasu symulacje ab-initio. (dokument)

Przekleństwa

GNU Ncurses to biblioteka zapewniająca możliwość zapisywania tekstu na terminalu w sposób niezależny od terminala. Obsługuje podkładki i kolory, a także wiele wyróżnień i znaków. Zwykle jest używany do implementowania interfejsów użytkownika dla aplikacji wiersza poleceń. Dołączona biblioteka ncursesw zapewnia szeroką obsługę znaków. (dokument)

Pokrzywa

GNU Nettle jest biblioteką kryptograficzną niskiego poziomu. Został zaprojektowany tak, aby łatwo dopasować się do niemal każdego kontekstu. Można go łatwo włączyć do zestawów narzędzi kryptograficznych dla języków obiektowych lub do samych aplikacji. (dokument)

Okrad

GNU Ocrad to program do optycznego rozpoznawania znaków oparty na metodzie ekstrakcji cech. Potrafi czytać obrazy w formatach PBM, PGM lub PPM i generuje tekst w formatach 8-bitowych lub UTF-8. (dokument)

Oktawa

GNU Octave jest językiem interpretowanym wysokiego poziomu, specjalizującym się w obliczeniach numerycznych. Może być stosowany zarówno w zastosowaniach liniowych, jak i nieliniowych i zapewnia doskonałe wsparcie w wizualizacji wyników. Pracę można wykonywać zarówno z poziomu interaktywnej linii poleceń, jak i poprzez pliki skryptowe. (dokument)

Oleo

GNU Oleo jest programem arkusza kalkulacyjnego. Oferuje zarówno interfejs terminala, jak i graficzny interfejs użytkownika oparty na LessTif. Zawiera znajome skróty klawiszowe przypominające Emacsa. Obsługuje wiele standardowych funkcji arkusza kalkulacyjnego, takich jak makra i funkcje. (dokument)

OrgaDoc

siteDoc to system umożliwiający łatwe utrzymywanie puli dokumentów pomiędzy komputerami. Dokumenty są synchronizowane przez rsync lub unison; nie jest wymagana żadna baza danych ani serwer HTTP. (dokument)

oSIP

GNU oSIP jest implementacją protokołu SIP. Służy do zapewnienia twórcom oprogramowania multimedialnego i telekomunikacyjnego interfejsu do inicjowania i kontrolowania sesji SIP. (dokument)

Panorama

GNU Panorama to framework do tworzenia grafiki 3D. Może wykonywać różne efekty, takie jak rozmycie ogniskowe, dowolne źródła światła, mapowanie wypukłości i kilka efektów świetlnych. (dokument)

Równoległy

GNU Parallel to narzędzie do równoległego wykonywania zadań powłoki przy użyciu jednego lub większej liczby komputerów. Zadania mogą składać się z pojedynczych poleceń lub skryptów i są wykonywane na listach plików, hostów, użytkowników lub innych elementów. (dokument)

Rozstał się

GNU Parted to pakiet do tworzenia i manipulowania tablicami partycji dysku. Zawiera bibliotekę i narzędzie wiersza poleceń. (dokument)

Skrawek

Patch to program, który nanosi zmiany w plikach w oparciu o różnice określone w programie diff. Zmiany można zastosować do jednego lub większej liczby plików, w zależności od zawartości pliku diff. Akceptuje kilka różnych formatów różnic. Można go również zastosować do przywrócenia wcześniej zastosowanych różnic. (dokument)

Paxutils

GNU paxutils to pakiet narzędzi archiwizacyjnych. Zawiera wersje archiwizatorów cpio, tar i pax. (dokument)

PCB

GNU PCB to interaktywne narzędzie do edycji układów płytek drukowanych. Zawiera implementację szczurzego gniazda, import schematów/list sieci i sprawdzanie reguł projektowych. Zawiera także autorouter i optymalizator śledzenia; i może tworzyć fotorealistyczne obrazy i obrazy do recenzji projektów. (dokument)

Pem

GNU Pem to proste narzędzie do śledzenia osobistych dochodów i wydatków. Działa z linii poleceń i przechowuje swoje dane w podstawowym formacie tekstowym w katalogu domowym. Może z łatwością drukować raporty dotyczące wydatków na różne wydatki za pomocą podstawowej funkcji wyszukiwania. (dokument)

Pexec

GNU pexec to program do równoległego wykonywania poleceń lub skryptów powłoki na jednym lub wielu komputerach. Podczas działania parametry wykonania, takie jak zmienne środowiskowe lub standardowe wejście, wyjście i błąd, mogą się zmieniać. (dokument)

Ciasta

GNU pies to program nadzorujący wywoływanie i wykonywanie innych programów. Czyta ze swojego pliku konfiguracyjnego listę programów do uruchomienia, wykonuje je, a następnie monitoruje ich stan i w razie potrzeby ponownie je uruchamia. (dokument)

Plotutils

GNU Plotutils to pakiet do kreślenia i pracy z grafiką 2D. Zawiera bibliotekę libplot dla języków C i C++ do eksportowania grafiki wektorowej 2D w wielu formatach plików. Obsługuje także animacje grafiki wektorowej 2D. Pakiet zawiera także programy wiersza poleceń służące do sporządzania wykresów danych naukowych. (dokument)

Szturchać

GNU poke to interaktywny, rozszerzalny edytor danych binarnych. Nie ograniczając się do edycji podstawowych jednostek, takich jak bity i bajty, zapewnia pełnoprawny proceduralny, interaktywny język programowania przeznaczony do opisywania struktur danych i operowania na nich. (dokument)

Nóż zastępczy

GNU proxyknife to narzędzie do sprawdzania poprawności bezpłatnych serwerów proxy zza zapory ogniowej. Proces walidacji można w pełni dostosować do swoich potrzeb. (dokument)

PSPP

GNU PSPP to program do analizy statystycznej. Potrafi wykonywać statystyki opisowe, testy T, regresję liniową i testy nieparametryczne. Posiada zarówno interfejs graficzny, jak i wejście z wiersza poleceń. PSPP został zaprojektowany do współpracy z Gnumeric, LibreOffice i OpenOffice. Dane można importować z arkuszy kalkulacyjnych, plików tekstowych i źródeł baz danych, a także wyświetlać je w formacie tekstowym, PostScript, PDF lub HTML. (dokument)

Psychosynt

GNU Psychosynth to interaktywny, modułowy syntezator programowy. Emuluje powierzchnię 3D, na której umieszcza się moduły i manipuluje nimi, generując i zmieniając muzykę. Psychosynth składa się z biblioteki C++, interfejsu 3D i interfejsu wiersza poleceń. (dokument)

Pt

GNU Pth to przenośna biblioteka zapewniająca planowanie oparte na priorytetach bez wywłaszczania dla wielu wątków wykonawczych. Każdy wątek ma swój własny licznik programu, stos czasu wykonania, maskę sygnału i zmienną errno. Wątki są planowane w sposób kooperacyjny, a nie standardowy, wywłaszczający, tak aby były zarządzane według priorytetów i zdarzeń. Jednak Pth oferuje również emulację wątków POSIX.1c (pthreads) w celu zapewnienia kompatybilności wstecznej. (dokument)

Pyconfig

GNU pyconfigure udostępnia pliki szablonów do łatwego wdrażania zgodnych ze standardami skryptów konfiguracyjnych i plików Makefile dla pakietów opartych na języku Python. Został zaprojektowany do współpracy z istniejącymi skryptami instalacyjnymi w języku Python, co ułatwia integrację z istniejącymi projektami. Dostępne są wydajne i elastyczne makra Autoconf, umożliwiające łatwe dostosowanie procedury instalacji w oparciu o możliwości komputera docelowego. (dokument)

Qexo

R to język i środowisko do obliczeń statystycznych i grafiki. Zapewnia różnorodne techniki statystyczne, takie jak modelowanie liniowe i nieliniowe, klasyczne testy statystyczne, analiza szeregów czasowych, klasyfikacja i grupowanie. Zapewnia także solidną obsługę tworzenia wykresów danych o jakości publikacyjnej. Dostępna jest duża liczba pakietów innych firm, co znacznie zwiększa ich szerokość i zakres. (dokument)

Promień

Radius to serwer do zdalnego uwierzytelniania i rozliczania użytkowników. Jest to ogólnie przydatne w sieciach, które wymagają scentralizowanych usług uwierzytelniania i rozliczania dla swoich stacji roboczych. Uwierzytelnianie można przeprowadzić na różne sposoby, na przykład za pomocą pliku /etc/passwd lub poświadczeń przechowywanych w bazie danych SQL. (dokument)

RCS

RCS to oryginalny system kontroli wersji. Działa plik po pliku, w przeciwieństwie do późniejszych systemów kontroli wersji, takich jak CVS, Subversion i Git. Dzięki temu nadaje się na przykład do plików administracyjnych systemu, które często są z natury lokalne na jednym komputerze. (dokument)

Czytaj linię

Biblioteka GNU Readline pozwala użytkownikom edytować wiersze poleceń podczas ich wpisywania. Może przechowywać historię wcześniej wprowadzonych poleceń z możliwością przeszukiwania, umożliwiając łatwe przywoływanie, edycję i ponowne wprowadzanie poprzednich poleceń. Zawiera skróty klawiaturowe podobne do Emacsa i Vi, dzięki czemu korzystanie z niego jest wygodne dla każdego. (dokument)

Recutile

GNU Recutils to zestaw narzędzi i bibliotek do tworzenia i manipulowania tekstowymi bazami danych, które można edytować przez człowieka. Pomimo tego, że bazy danych są tekstowe, bazy danych utworzone za pomocą Recutils zawierają wszystkie oczekiwane funkcje, takie jak unikalne pola, klucze podstawowe, znaczniki czasu i inne. Obsługiwanych jest wiele różnych typów pól, podobnie jak szyfrowanie. (dokument)

Reftex

GNU RefTex to pakiet do implementowania etykiet, odniesień, cytatów i indeksów w dokumentach LaTeX. Działa poprzez opakowanie czterech makr LaTeX: label, ref, cite i Index. Automatyzuje typowe zadania, które zwykle są wymagane podczas korzystania z tych makr. (dokument)

Pilot

GNU Remotecontrol to aplikacja internetowa do zarządzania termostatami HVAC i innymi urządzeniami automatyki budynkowej z obsługą protokołu IP. Aplikacja może odczytywać i zapisywać dane na wielu takich urządzeniach. (dokument)

Rottlog

GNU Rot[t]log to program do zarządzania plikami dziennika. Służy do automatycznej rotacji plików dziennika, gdy osiągną one zadany rozmiar lub zgodnie z zadanym harmonogramem. Może być również używany do automatycznego kompresowania i archiwizowania takich logów. Rot[t]log będzie wysyłał raporty o swojej aktywności do administratora systemu. (dokument)

Rp

Silnik gier fabularnych GNU zapewnia silnik do tworzenia dwuwymiarowych, graficznych gier RPG, zapewniający na przykład siatkę ikonek, renderowanie ikonek i obsługę zdarzeń. (dokument)

Pośpiech

GNU Rush to powłoka użytkownika z ograniczeniami, przeznaczona dla systemów, w których użytkownicy mają mieć dostęp jedynie do ograniczonej funkcjonalności i zasobów. Administratorzy ustalają uprawnienia użytkownika za pomocą pliku konfiguracyjnego, którego można użyć do ograniczenia na przykład liczby wykonywanych poleceń, czasu procesora lub wykorzystania pamięci wirtualnej. (dokument)

Sather

GNU Sather to obiektowy język programowania podobny do Eiffla. Został zaprojektowany tak, aby był prosty, wydajny, bezpieczny i niezastrzeżony. Zawiera zbieranie elementów bezużytecznych, sprawdzane statycznie silne pisanie, wielokrotne dziedziczenie, sparametryzowane klasy i wiele więcej. Pakiet ten składa się z kompilatora, biblioteki klas, specyfikacji języka i podręcznika programowania oraz przeglądarki służącej do wyświetlania źródeł i skierowanych wykresów dziedziczenia klas. (dokument)

SCM

GNU SCM jest implementacją Scheme. Ta implementacja obejmuje Hobbit, kompilator Scheme-to-C, który może generować pliki C, których pliki binarne można dynamicznie lub statycznie łączyć z plikiem wykonywalnym SCM. (dokument)

Ekran

GNU Screen to menedżer okien terminali, który multipleksuje pojedynczy terminal pomiędzy kilkoma procesami. Każdy z terminali wirtualnych zapewnia funkcje takie jak bufor przewijania oraz mechanizm kopiowania i wklejania. Screen następnie zarządza różnymi terminalami wirtualnymi, umożliwiając łatwe przełączanie między nimi, odłączanie ich od bieżącej sesji, a nawet dzielenie widoku, aby wyświetlać dwa terminale jednocześnie. (dokument)

Sed

Sed to nieinteraktywny edytor strumienia tekstu. Otrzymuje tekst wejściowy z pliku lub ze standardowego wejścia, a następnie stosuje do strumienia serię poleceń edycji tekstu i wypisuje wynik na standardowe wyjście. Jest często używany do zastępowania wzorców tekstowych w strumieniu. Implementacja GNU oferuje kilka rozszerzeń w stosunku do standardowego narzędzia. (dokument)

Serveez

GNU Serveez to framework serwerowy zapewniający procedury niezbędne do łatwego wdrożenia serwerów opartych na protokole IP w Twojej aplikacji. Demonstruje aspekty programowania sieciowego w sposób przenośny, dzięki czemu jest wygodny zarówno do uproszczenia procesu dodawania serwera do aplikacji, jak i do poznania, jak działają usługi sieciowe. Udostępniono już kilka przykładowych serwerów, takich jak serwer HTTP i serwer IRC. (dokument)

Sharutils

GNU sharutils to pakiet do tworzenia i manipulowania archiwami powłoki, które można łatwo przesyłać pocztą elektroniczną. Archiwum powłoki to plik, który może zostać przetworzony przez powłokę typu Bourne'a w celu rozpakowania oryginalnego zbioru plików. Ten pakiet jest przeznaczony głównie ze względu na kompatybilność i zainteresowanie historyczne. (dokument)

Pasterz

GNU Shepherd jest demonem zarządzającym demonami, co oznacza, że ​​nadzoruje wykonywanie usług systemowych, zastępując podobną funkcjonalność spotykaną w typowych systemach init. Zapewnia obsługę zależności poprzez wygodny interfejs i jest oparty na GNU Guile. (dokument)

Shishi

GNU Shishi to darmowa implementacja systemu bezpieczeństwa sieciowego Kerberos 5. Służy do umożliwienia niezabezpieczonym węzłom sieci bezpiecznej komunikacji poprzez wzajemne uwierzytelnianie klient-serwer za pomocą biletów. (dokument)

Shmm

GNU SHMM to menedżer pamięci współdzielonej. Może czytać i zapisywać w pamięci współdzielonej. Obsługuje także inne polecenia, takie jak blokowanie lub odblokowywanie bloku pamięci współdzielonej identyfikowanej za pomocą klucza i rozmiaru. (dokument)

Sztool

GNU shtool jest uniwersalnym narzędziem powłoki. Może wykonywać funkcje wielu różnych poleceń, aby zapewnić jedno narzędzie do dystrybucji z dystrybucją źródłową w celu zapewnienia przenośności skryptów powłoki. Na przykład shtool może wykonywać zadania typowych poleceń install , mkdir lub echo w systemach, w których ich brakuje. (dokument)

Sipwitch

GNU SIP Witch to serwer Voice-over-IP typu peer-to-peer, który wykorzystuje protokół SIP. Połączenia można wykonywać spoza zapór NAT i bez konieczności korzystania z usługodawcy. Konstrukcja typu peer-to-peer gwarantuje, że nie ma centralnego punktu przechwytywania lub przechwytywania multimediów, dzięki czemu można go wykorzystać do zbudowania bezpiecznego systemu telefonicznego działającego w publicznym Internecie. (dokument)

SLIB

GNU SLIB to przenośna, wspólna biblioteka dla języka programowania Scheme. Obsługuje wiele różnych implementacji Scheme, oferując im platformę do korzystania z pakietów procedur Scheme i składni. (dokument)

Pogawędka

GNU Smalltalk jest bezpłatną implementacją języka Smalltalk. Implementuje standard ANSI dla języka i zawiera także dodatkowe klasy, takie jak te dotyczące sieci i programowania GUI. (dokument)

Solfeż

GNU Solfege to program do ćwiczenia muzycznego kształcenia słuchu. Dzięki niemu możesz ćwiczyć rozpoznawanie różnych interwałów muzycznych i akordów. Zawiera przegląd statystyk, dzięki czemu możesz monitorować swoje postępy w kilku sesjach. Solfege zaprojektowano tak, aby można go było rozszerzać, dzięki czemu można łatwo pisać własne lekcje. (dokument)

Wykres kosmiczny

GNU SpaceChart pozwala zobaczyć, jak gwiazdy są rozmieszczone w przestrzeni trójwymiarowej. Pozwala na przykład określić odległości między gwiazdami, obejrzeć je z dowolnego punktu widzenia lub filtrować widok według klasy widmowej i jasności. (dokument)

Speex

GNU Speex to wolny od patentów kodek kompresji dźwięku zaprojektowany specjalnie dla mowy. Jest dobrze przystosowany do zastosowań internetowych, takich jak VoIP. Charakteryzuje się kompresją różnych pasm w tym samym strumieniu bitów, kodowaniem intensywności stereo i wykrywaniem aktywności głosowej. (dokument)

Zaklęcie

Spell to program sprawdzający pisownię uruchamiany z wiersza poleceń. Czyta wprowadzony tekst i drukuje każde błędnie napisane słowo w osobnej linii. Jest zaimplementowany jako opakowanie dla GNU aspell lub ispell. (dokument)

Nauczyciel języka angielskiego

GNU Sqltutor to internetowy, interaktywny samouczek SQL. Zawiera wiele samouczków dostępnych w różnych językach. Samouczki przedstawiają serię pytań w oknie dialogowym, a po ich ukończeniu wyświetlają końcową ocenę zawierającą prawidłowe odpowiedzi na błędne rozwiązania. (dokument)

Src-highlite

Funkcja Source-Highlight GNU wczytuje plik kodu źródłowego i tworzy plik wyjściowy, w którym słowa kluczowe są podświetlone różnymi kolorami, aby określić ich rolę składniową. Obsługuje ponad 150 różnych języków i może wyświetlać dane w 8 różnych formatach, w tym HTML, LaTeX i ODF. Może także wyprowadzać sekwencje ucieczki kolorów ANSI, dzięki czemu podświetlony kod źródłowy będzie widoczny w terminalu. (dokument)

Widżet arkusza kalkulacyjnego

Widżet Gtk+ udostępniający dwuwymiarową tablicę do przeglądania i manipulowania danymi tabelarycznymi podobnymi do tych dostarczanych przez popularne programy do obsługi arkuszy kalkulacyjnych. Projekt opiera się na paradygmacie modelu-widoku-kontrolerze i ma O(1) zarówno w czasie, jak i przestrzeni, zapewniając bardzo szybkie i wydajne działanie nawet na bardzo dużych danych. Dostępne są funkcje takie jak wycinanie i wklejanie, przeciąganie i upuszczanie itp. (dokument)

Schować

GNU Stow jest menedżerem dowiązań symbolicznych. Generuje dowiązania symboliczne do katalogów danych i sprawia, że ​​wydają się być połączone w tym samym katalogu. Zwykle jest używany do zarządzania pakietami oprogramowania zainstalowanymi ze źródła, umożliwiając instalację ich osobno w odrębnych katalogach, a następnie utworzenie dowiązań symbolicznych do plików we wspólnym katalogu, takim jak /usr/local. (dokument)

Kikut

GNU STUMP to program-robomoderator dla grup dyskusyjnych i list mailingowych USENET, wyposażony w moderację internetową. Obsługuje moderację grupy za pośrednictwem wielu moderatorów. Może także automatycznie odrzucać wiadomości niezgodne z wymaganiami bez interwencji człowieka. Zawiera interfejs sieciowy. (dokument)

Superopcja

GNU Superopt to generator sekwencji funkcji do superoptymalizacji. Wykorzystuje wyczerpujące podejście polegające na generowaniu i testowaniu, aby znaleźć najkrótszą sekwencję instrukcji dla danej funkcji. (dokument)

Szwbis

Swbis to system administrowania oprogramowaniem określony przez POSIX. Umożliwia przejrzyste dla sieci zarządzanie pakietami oprogramowania dla administratorów systemu. Na przykład całe katalogi systemu plików można w przejrzysty sposób kopiować między hostami przez sieć. Pakiet zawiera także zaawansowane metody tworzenia archiwum tar i mechanizmy sprawdzania integralności. (dokument)

Filtry rozmów

Filtry GNU Talk to programy, które konwertują tekst angielski na stereotypowe lub w inny sposób humorystyczne dialekty. Filtry są dostarczane w formie biblioteki C, dzięki czemu można je łatwo zintegrować z innymi programami. (dokument)

Smoła

Tar zapewnia możliwość tworzenia archiwów tar, a także możliwość wyodrębniania, aktualizowania lub wyświetlania plików w istniejącym archiwum. Jest to przydatne do łączenia wielu plików w jeden większy plik, przy jednoczesnym zachowaniu struktury katalogów i informacji o plikach, takich jak uprawnienia i daty utworzenia/modyfikacji. GNU tar oferuje wiele rozszerzeń w stosunku do standardowego narzędzia. (dokument)

Termcap

GNU termcap to biblioteka i baza danych, które umożliwiają korzystanie z terminali wyświetlających w sposób niezależny od terminala. Baza danych opisuje możliwości wielu różnych terminali wyświetlających. Biblioteka może następnie dostosować uogólnione instrukcje podawane przez program do specyficznych możliwości terminala wyświetlającego, znalezionych w bazie danych. (dokument)

Termutils

Pakiet GNU Termutils zawiera dwa programy, tput i tabs. tput jest używany w skryptach powłoki do manipulowania wyświetlaczem terminala, na przykład poprzez jego czyszczenie lub przesuwanie kursora do określonego punktu, centrowanie tekstu lub podkreślanie tekstu. tabs służy do określania i ustawiania sprzętowych tabulatorów na terminalach, które je obsługują. (dokument)

Tesek

GNU Teseq to program analizujący pliki zawierające sekwencje sterujące. Konwertuje napotkane sekwencje na czytelny dla człowieka opis działań, jakie wykonują te sekwencje. Może także przełożyć swoje dane wyjściowe z powrotem na sekwencje sterujące nadające się do odczytu maszynowego. (dokument)

TeX dla niecierpliwych

TeX dla niecierpliwych to około 350-stronicowa książka o TeX-ie, zwykłym TeX-ie i Eplain, napisana przez Paula Abrahamsa, Kathryn Hargreaves i Karla Berry'ego. (dokument)

Texinfo

Texinfo jest oficjalnym formatem dokumentacji projektu GNU. Wykorzystuje pojedynczy plik źródłowy za pomocą jawnych poleceń, aby utworzyć dokument końcowy w dowolnym z kilku obsługiwanych formatów wyjściowych, takich jak HTML lub PDF. Pakiet ten zawiera zarówno narzędzia niezbędne do tworzenia dokumentów Info ze źródła, jak i czytnik Info z wiersza poleceń. Nacisk w języku kładzie się na semantyczne wyrażanie treści, unikając fizycznych poleceń znaczników. (doc)doc

Pakiet vc-dwim zawiera dwa narzędzia, vc-dwim i vc-chlog. vc-dwim to narzędzie, które upraszcza zadanie utrzymywania ChangeLog i jednoczesne korzystanie z kontroli wersji, na przykład poprzez wydrukowanie przypomnienia, gdy zmiana pliku została opisana w ChangeLog, ale plik nie został dodany do VC. vc-chlog skanuje zmienione pliki i generuje zgodne ze standardami wpisy ChangeLog na podstawie wykrytych zmian. (dokument)

VCDImager

GNU VCDImager to pakiet programów do pracy z płytami Video CD i Super Video CD. Można go używać do tworzenia, demontażu i analizowania dysków. Obsługuje pełną kontrolę odtwarzania, segmentowanie elementów odtwarzania, automatyczne dopełnianie strumieni MPEG w locie i ekstrakcję płyt Video CD do plików. (dokument)

Wera

V.E.R.A. (Virtual Entity of Relevant Acronims) to lista akronimów obliczeniowych rozpowszechniana w formie dokumentu informacyjnego. (dokument)

Wmgen

GNU WB to dyskowy, posortowany pakiet baz danych z tablicą asocjacyjną dla języków C, Scheme, Java i C#. Zamiast być wdrażany poprzez mieszanie, WB wykorzystuje drzewa B, które są zoptymalizowane pod kątem wykorzystania minimalnej liczby operacji dyskowych. (dokument)

XBoard

GNU XBoard to tablica graficzna do wszystkich odmian szachów, w tym szachów międzynarodowych, xiangqi (szachy chińskie), shogi (szachy japońskie) i Makruk. Obsługiwanych jest także kilka mniej znanych wariantów. Zawiera w pełni interaktywny interfejs graficzny oraz umożliwia ładowanie i zapisywanie gier w formacie Portable Game Notation. (dokument)

Xlogmaster

GNU Xlogmaster to program z graficznym interfejsem użytkownika, który pozwala w wygodny sposób monitorować logi systemowe. Dzienniki można wyświetlać za pomocą filtrów podświetlających lub ukrywających linie. Program może także służyć do automatycznego podejmowania działań po zdarzeniach zdefiniowanych przez użytkownika. (dokument)

Xnee

GNU Xnee to program, który może nagrywać, odtwarzać i rozpowszechniać działania użytkownika w X11. Można go używać do automatyzacji interakcji użytkownika w celach testowych lub demonstracyjnych. (dokument)

Xorriso

GNU Xorriso to narzędzie do kopiowania plików do i z ISO 9660 Rock Ridge, a.k.a. System plików Compact Disc, systemy plików i umożliwia manipulowanie nimi w trybie sesji. Posiada formatyzator i nagrywarkę dla płyt CD, DVD i BD. Może operować na istniejących obrazach ISO lub tworzyć nowe. xorriso może być następnie użyte do kopiowania plików bezpośrednio do lub z plików ISO. (dokument)

Zile

GNU Zile to lekki klon Emacsa. Jego użycie jest podobne do domyślnej konfiguracji Emacsa, ale zawiera znacznie lżejszy zestaw funkcji. (

Powszechna Licencja Publiczna GNU (GNU General Public License lub GNU Open License Agreement) jest prawdopodobnie najpopularniejszą licencją wolnego oprogramowania, stworzoną w ramach Projektu GNU w 1988 roku. Nazywana jest także w skrócie GNU GPL lub nawet po prostu GPL, jeśli kontekst jest jasny, że mówimy konkretnie o tej licencji (innych licencji zawierających w tytule słowo „powszechna licencja publiczna” jest sporo). Druga wersja tej licencji została wydana w 1991 r., trzecia wersja, po wielu latach pracy i długich dyskusjach, w 2007 r. Mniejsza Powszechna Licencja Publiczna GNU (LGPL) jest osłabioną wersją GPL dla niektórych bibliotek oprogramowania. Powszechna Licencja Publiczna GNU Affero jest wzmocnioną wersją licencji GPL dla programów, do których można uzyskać dostęp poprzez sieć.

Celem licencji GNU GPL jest zapewnienie użytkownikowi praw do kopiowania, modyfikowania i rozpowszechniania (w tym komercyjnego) programów (co domyślnie jest zabronione przez prawo autorskie), a także zapewnienie, że użytkownicy wszystkich programów pochodnych otrzymają powyższe prawa . Zasada „dziedziczenia” praw nazywa się „copyleft” (transliteracja angielskiego „copyleft”) i została wymyślona przez Richarda Stallmana. W przeciwieństwie do GPL, licencje na oprogramowanie własnościowe bardzo rzadko przyznają użytkownikowi takie prawa i zazwyczaj mają tendencję do ich ograniczania, na przykład zabraniając przywracania kodu źródłowego.

GPL przyznaje odbiorcom programów komputerowych następujące prawa, czyli „wolności”:

* swoboda uruchamiania programu w dowolnym celu;
* swoboda studiowania działania programu i jego modyfikacji (warunkiem jest dostęp do kodu źródłowego);
* wolność rozpowszechniania kopii;
* swoboda ulepszania programu i publicznego udostępniania ulepszeń (warunkiem jest dostęp do kodu źródłowego).
źródło

System operacyjny GNU

GNU jest rekurencyjnym akronimem z języka angielskiego. GNU to nie UNIX - „GNU to nie Unix!”) to darmowy system operacyjny podobny do UNIX, opracowany przez Projekt GNU.

Rozwój systemu GNU rozpoczął się 27 września 1983 roku, kiedy Richard Stallman zamieścił ogłoszenie o projekcie na grupach dyskusyjnych net.unix-wizards i net.usoft. 5 stycznia 1984 Stallman zrezygnował z pracy w MIT, aby poświęcić swój czas na napisanie wolnego systemu operacyjnego, a także upewnić się, że instytut nie będzie mógł rościć sobie żadnych praw do kodu źródłowego systemu. Pierwszym programem GNU był edytor tekstu Emacs.

Obecnie system GNU/Linux, szerzej znany jako po prostu Linux, jest dość rozpowszechniony (szczególnie na rynku serwerów) i jest całkiem kompletny. Składa się z dużej liczby programów projektów GNU (głównie narzędzi systemowych i łańcucha narzędzi GNU), jądra Linuksa – części systemu odpowiedzialnej za uruchamianie innych programów, w tym sterowników urządzeń itp. – oraz wielu innych bezpłatnych programów.

Najnowsze materiały w dziale:

Stworzenie i przetestowanie pierwszej bomby atomowej w ZSRR
Stworzenie i przetestowanie pierwszej bomby atomowej w ZSRR

29 lipca 1985 roku Sekretarz Generalny Komitetu Centralnego KPZR Michaił Gorbaczow ogłosił decyzję ZSRR o jednostronnym zaprzestaniu wszelkich wybuchów nuklearnych przed 1...

Światowe zasoby uranu.  Jak podzielić uran.  Kraje przodujące w rezerwach uranu
Światowe zasoby uranu. Jak podzielić uran. Kraje przodujące w rezerwach uranu

Elektrownie jądrowe nie produkują energii z powietrza, wykorzystują także zasoby naturalne - takim zasobem jest przede wszystkim uran....

Chińska ekspansja: fikcja czy rzeczywistość
Chińska ekspansja: fikcja czy rzeczywistość

Informacje z terenu - co dzieje się nad Bajkałem i na Dalekim Wschodzie. Czy chińska ekspansja zagraża Rosji? Anna Sochina Na pewno nie raz...