decriptarea proiectului gnu. Proiectul GNU și software-ul liber. UNIX-uri furnizate de producătorii de computere

Orice utilizator care a început să înțeleagă lumea sistemelor de operare asemănătoare UNIX și a software-ului liber va întâlni cu siguranță abrevierile din titlu.

GNU înseamnă „GNU nu este UNIX” și se referă la un proiect la scară largă care dezvoltă diverse biblioteci și aplicații de sistem. Tot ceea ce este creat în cadrul acestui proiect este open source. Aceasta înseamnă că oricine are cunoștințe adecvate de programare poate lua acest cod ca bază pentru propriile dezvoltări, având dreptul deplin de a-l schimba și distribui.

Produsele software dezvoltate în cadrul proiectului, completate de nucleul sistemului GNU Hard, au stat la baza unui sistem de operare cu drepturi depline, care a fost desemnat și prin termenul GNU. Dar crearea sa, care își are originea în 1990, nu a fost finalizată până în prezent. Dar în 1991, a apărut ideea lui Linus Torvalds - nucleul Linux. Și aici proiectul GNU a jucat un rol uriaș în dezvoltarea Linux ca sistem de operare. La urma urmei, un sistem nu este doar un nucleu, ci un întreg set de software de sistem, care include biblioteci, utilitare, drivere și multe altele. Și dezvoltările participanților GNU, care au fost utilizate împreună cu nucleul Linux, au fost cele care au dezvăluit lumii chiar produsul care acum concurează cu succes cu Windows și MacOS. Și se numește „GNU / Linux”, iar prima parte este cel mai adesea aruncată, ceea ce, în general, este greșit.

Pe lângă software, proiectul GNU a creat General Public License (GNU GPL), care a devenit principala licență în lumea open source și a fost utilizată pe scară largă. Reglementează distribuția de software liber și este extrem de democratic. Se precizează că orice utilizator are dreptul de a modifica, distribui și folosi în proiectele sale codul sursă al aplicațiilor marcate cu această licență. În acest caz, toate programele pentru copii vor fi, de asemenea, supuse GPL. Adică, un dezvoltator care folosește open source produce și open source, iar licența în sine este astfel moștenită. Aceasta este o regulă obligatorie, dar există modalități de a ocoli GPL și de a vă închide propriile coduri pe baza celor deschise folosite.

GNU și GPL create sub ea au avut un impact major asupra industriei tehnologiei. Software-ul liber a atras un număr mare de programatori talentați în industria sa, care a alcătuit cea mai mare comunitate. Produsele create sub GPL nu numai că au primit o aplicație practică largă, dar, de asemenea, datorită codului de înaltă calitate și accesibil, au devenit un teren de antrenament excelent pentru milioane de dezvoltatori începători. Conceptul acestui schimb de informații și cea mai tare alternativă la dreptul de autor obișnuit, deși nu este evident, a făcut posibilă dezvoltarea de software în acest moment ia amploare.

PRINCIPALE STANDARDE

UNIX-uri furnizate de producătorii de computere

O mașină Sistem de operare "Original"
soarele 1,2,10,... SunOS 4.1.2 BSD 4.3
Soare 10.20.1000 SunOS 5.5 SVR4.0
IBM RS/6000 AIX SV 3.2
HP Apollo 900 HP/UX 10 BSD 4.2 și SV 3.2
Secvent Dynix SW 4.0
Motorola 922 SVR4/88 SVR4.0
Besta-88 bestix SV 3.1
DEC Ultrix BSD 4.2
DEC Alpha AXP OSF/1 BSD 4.3
SGCS Silicon Graphic IRIX 6.0

Alegând o platformă, obținem automat „propriul” UNIX cu ea. Poate, din punct de vedere al confortului și integrității mediului de utilizator și administrator, cel mai plăcut dintre ele este AIX. Și cel mai comun este Solaris 2.5 (desigur).

A fost apariția implementărilor comerciale ale Unix care a dus la așa-numitele războaie Unix. Fiecare dintre firme, în efortul de a atinge superioritatea pe piață, a inclus în sistemul său unele caracteristici, îmbunătățiri și îmbunătățiri proprii, uneori chiar cu scopul direct de a-și izola sistemul de celelalte de pe piață. Firmele-dezvoltatori în eforturile lor de a câștiga un avantaj față de concurenți au făcut schimbări chiar și în interfața de programare a aplicației(API- Applications Programmer "s Interface), - o specificație a unui set de funcții pe care dezvoltatorii de software trebuie să le respecte pentru a-și face programele compatibile cu sistemul de operare. Acest lucru a crescut și mai mult incompatibilitatea diferitelor versiuni de Unix și a condus la incompatibilitatea software-ului dezvoltat de către furnizori diferiți (inclusiv independenți).

Dar o consecință mult mai rea a războaielor dintre diferitele versiuni ale Unix a fost că schimbul liber de cod sursă care ajutase la îmbunătățirea rapidă a Unix-ului în primele etape ale dezvoltării sale a încetat. Necunoscând alt model pentru a profita de pe urma software-ului în afară de păstrarea secretă a acestuia și de a avea control complet asupra dezvoltării unui produs comercial, AT&T a interzis cu strictețe distribuirea codurilor sursă. Puțini oameni au fost atrași de amenințarea unei acțiuni legale pentru distribuirea ilegală de benzi Unix. Fluxul de idei noi din universități s-a secat.

Pentru a depăși această problemă, au fost făcute mai multe încercări de standardizare a Unix.

Primul efort serios de standardizare a versiunilor de API (interfață de programare) dezvoltate pentru System V și Berkeley a fost făcut în 1983 de un grup de inițiativă numit /usr/group. Cu toate acestea, odată cu creșterea numărului de versiuni ale sistemului de operare, eficiența standardului a scăzut, iar un an mai târziu, în 1985, a fost creat standardul POSIX (Interfață de sistem de operare portabilă pentru mediu de calcul).



În 1988, a fost dezvoltat standardul POSIX 1003.1-1988, care a definit interfața de programare a aplicației. Acest standard a găsit o aplicație largă în multe sisteme de operare, inclusiv în arhitecturi non-UNIX. Doi ani mai târziu, standardul a fost adoptat ca standard IEEE (Institutul de Ingineri Electrici și Electronici, încă existent) IEEE 1003.1-1990. Standardul definește doar interfața, nu organizația specifică, deci nu face distincție între apelurile de sistem și funcțiile de bibliotecă, numind toate elementele API doar funcții.

Toate standardele Unix ulterioare includ POSIX, iar toate versiunile ulterioare ale Unix aderă la acest standard. Singura completare mare care a apărut mai târziu în nucleul Unix au fost socket-urile, care au venit de la BSD.

O organizație non-profit - consorțiul X/Open (mai târziu Open Group), creat în 1984 de o serie de companii europene, a întreprins dezvoltarea unui set comun de interfețe ale sistemelor de operare, convenit între diverși producători, și crearea unui sistem cu adevărat deschis. sisteme pentru care costul portabilității aplicațiilor ar fi minim .

În 1992, a apărut un document cunoscut sub numele de X/OpenPortability Guide versiunea 3 (XPG3), care includea POSIX 1003.1-1988 și standardul pentru sistemul grafic X Windows System dezvoltat la Massachusetts Institute of Technology (SUA). În 1994 - XPG4.2.

În 1996, uniunea dintre X/Open și OSF a condus la crearea consorțiului The Open Group, care a continuat evoluțiile în domeniul sistemelor deschise, de exemplu, dezvoltarea ulterioară a interfeței de utilizator Common Desktop Environment, interfețe pentru mediul de calcul distribuit. - DCE etc.

(Institutul Național American de Standarde)

În 1989, Institutul Național American de Standarde a aprobat standardul X3.159-1989 pentru limbajul de programare C. Standardul definește sintaxa, semantica și conținutul bibliotecii standard.

GNU este o asociație de dezvoltatori care creează software liber de tot felul.

GNU este un proiect care a creat o mulțime de software liber ca parte a unei strategii open source.

În același timp, aceste programe pot face totul, de la lucrul cu fișiere până la procesarea de text, iar compilatorul gcc (GNU C) este unul dintre cele mai fiabile și eficiente compilatoare pentru UNIX. Acest lucru face posibilă echiparea aproape oricărui sistem de operare asemănător UNIX cu software gratuit.

Ce este GNU/Linux?

Deoarece Linux este doar un nucleu, acest tip de echipament este esențial. Nucleul este responsabil pentru lucrul cu memorie, discuri, dispozitive interne, dar, de exemplu, nu are un editor de text. Dar poate rula alte programe. Prin urmare, adăugarea unui nucleu gratuit cu un set de programe gratuite pare foarte naturală. Rezultatul este tandemul GNU/Linux.

„Abrevierea GNU înseamnă „GNU nu este UNIX”. libertatea de a colabora, precum și controlul asupra computerelor lor. Pentru a deveni o comunitate care își folosește liber computerele, aveam nevoie de un sistem de operare liber. Nu aveam suficienți bani pentru Cumpărați înapoi și facem gratuit oricare dintre sistemele existente, dar aveam suficiente cunoștințe și abilități pentru a crea unul nou. Crearea GNU a fost o treabă extraordinară. Am făcut-o în numele libertății noastre și al dumneavoastră."

În 1985, R. Stallman a scris faimosul său Manifest GNU (a fost publicat în numărul din martie 1985 al Dr. Dobb's Journal) și a fondat Free Software Foundation (FSF) - o fundație caritabilă pentru dezvoltarea de software liber. distribuirea benzilor Emacs , iar mai târziu distribuirea altor software-uri libere (atât din proiectul GNU, cât și în afara acestuia) și vânzarea manualelor acestora, care au oferit fonduri pentru dezvoltarea proiectului GNU. FSF a acceptat donații, dar cea mai mare parte a veniturilor a venit întotdeauna din vânzarea de copii. a software-ului liber și a serviciilor conexe.

Dezvoltarea software-ului liber a fost un pas foarte important, dar meritul și mai mare al lui R.Stallman ar trebui recunoscut ca fiind crearea Licenței Publice Generale GNU (GPL). Diferiți autori traduc acest nume în rusă în diferite moduri - Licența Publică Universală, Licența Publică Generalizată etc. Dar se consideră că Doar versiunea în limba engleză a acestei licențe este valabilă. Ideea principală a GPL este că utilizatorul trebuie să aibă următoarele patru drepturi (sau patru libertăți):

Dreptul de a rula programul în orice scop (libertate 0)

· Dreptul de a studia structura programului și de a o adapta nevoilor dumneavoastră (libertate 1), ceea ce presupune accesul la codul sursă al programului.

· Dreptul de a distribui programul în timp ce puteți ajuta pe alții (libertatea 2).

· Dreptul de a îmbunătăți programul și de a publica îmbunătățiri în beneficiul întregii comunități (libertatea 3), care implică și accesul la codul sursă al programului.

Puteți utiliza, copia, modifica, modifica, transfera sau vinde versiuni modificate (sau nemodificate) altora în orice mod doriți, cu condiția ca rezultatul unei astfel de prelucrări să fie distribuit și sub licența GPL. Ultima condiție este cea mai importantă și definitorie din această licență. Se asigură că rezultatele eforturilor dezvoltatorilor de software liber rămân open source și nu devin parte a niciunui produs cu licență convențională. De asemenea, distinge software-ul liber de software-ul liber. Una dintre cerințele acestei licențe este că atunci când vindeți software sub GPL, trebuie să puneți codul sursă al acelui software la dispoziția oricui dorește să aibă acces la el. În cuvintele creatorilor FSF, GPL „face software-ul gratuit și se asigură că rămâne gratuit”.

Scopul principal al GPL este de a proteja software-ul liber de „privatizare”. Dar trebuie remarcat faptul că este proiectat în așa fel încât să permită toate modalitățile „echitabile” de a face bani din software-ul liber. Acesta este un punct foarte semnificativ care necesită o atenție specială. Când a fost introdusă pentru prima dată în GPL, poate fi înțeles greșit că această licență interzice, în general, orice modalitate de a câștiga bani din software sau din dezvoltarea acestuia. De fapt, GPL în special, și FSF în general, încurajează direct afacerile asociate cu furnizarea de servicii conexe - formare, consultanță și replicare comercială a software-ului. Acest lucru face posibilă atragerea către cooperare atât a corporațiilor, cât și a persoanelor pentru care interesul material este mai important decât stimulentele morale.

GNU 3DLDF acceptă desenul 3D cu ieșire în formatul MetaPost printr-un limbaj similar cu Metafont. Este destinat în primul rând să ofere un mijloc de a crea conținut 3D pentru documentele TeX, dar poate crea și animații care conțin text tipărit de TeX. (doc)

8sync

8sync (pronunțat opt-sync) este o bibliotecă de programare asincronă pentru GNU Guile. Face uz de continuări delimitate pentru a evita o mizerie de apeluri inverse, rezultând un cod curat, ușor de citit și care nu blochează. (doc)

a2ps

GNU a2ps convertește aproape orice într-un fișier PostScript, gata pentru imprimare. Îndeplinește acest lucru prin posibilitatea de a delega fișiere unor handlere externi, cum ar fi Groff și Gzip. Se ocupă de cât de mulți pași sunt necesari pentru a produce un fișier destul de imprimat. Include, de asemenea, unele abilități suplimentare pentru cazuri speciale, cum ar fi pretty-printing --help output. (doc)

Acct

GNU acct oferă administratorilor de sistem un mijloc de a determina tiparele de utilizare a sistemului. Acesta oferă informații despre, de exemplu, conexiuni, programe executate și resurse de sistem utilizate. (doc)

acm

GNU ACM este un simulator de zbor în care jucătorii pot concura în lupte aeriene de pe diferite computere, pilotând avioane cu reacție bine echipate, similare unui F-16C Falcon sau MiG-29 Fulcrum. (doc)

Adns

GNU adns este o bibliotecă C care oferă o funcționalitate de rezoluție DNS ușor de utilizat. Biblioteca este asincronă, permițând mai multe apeluri concurente. Pachetul include, de asemenea, mai multe utilitare de linie de comandă pentru utilizare în scripturi. (doc)

În viaţă

GNU Alive trimite ping-uri periodice către un server, în general pentru a menține o conexiune vie. (doc)

Anubis

Anubis este un demon care se află între Mail User Agent (MUA) și Mail Transfer Agent (MTA). Când un e-mail este trimis de către un utilizator în MUA, acesta este mai întâi transmis către Anubis, care efectuează o procesare suplimentară a mesajului înainte de a-l transmite pentru livrare de către MTA. Anubis poate, de exemplu, să modifice anteturile sau corpul mesajului sau să cripteze sau să semneze mesajul. (doc)

APL

GNU APL este un interpret gratuit pentru limbajul de programare APL. Este o implementare a standardului ISO 13751. (doc)

Arhimede

Archimedes este un pachet gratuit pentru simulările dispozitivelor semiconductoare. Este destinat să asiste inginerii în proiectarea și simularea dispozitivelor semiconductoare submicronice și mezoscopice bazate pe metoda Ensemble Monte Carlo. Este capabil să gestioneze o mare varietate de materiale și structuri, care sunt descrise prin scripturi simple. (doc)

Aris

Aris este un program pentru efectuarea de dovezi logice. Acesta acceptă logica propozițională și predicată, precum și algebra booleană și logica aritmetică. Pe lângă regulile de inferență și echivalență predefinite, Aris acceptă și referințe la dovezi mai vechi. Utilizarea sa a simbolurilor logice standard si este interfața deducției naturale o face ușor de utilizat pentru începători. (doc)

Artanis

GNU Artanis este un cadru de aplicații web scris în Schema Guile. Un cadru de aplicații web (WAF) este un cadru software conceput pentru a sprijini dezvoltarea de site-uri web dinamice, aplicații web, servicii web și resurse web. Cadrul urmărește atenuarea cheltuielilor generale asociate cu activitățile comune desfășurate în dezvoltarea web. Artanis oferă mai multe instrumente pentru dezvoltarea web: acces la baze de date, cadre de șabloane, gestionarea sesiunilor, remaparea URL pentru RESTful, stocarea în cache a paginilor și multe altele. (doc)

O vrajă

Aspell este un verificator ortografic care poate fi folosit fie ca bibliotecă, fie ca program independent. Caracteristicile notabile ale Aspell includ suportul complet pentru documente scrise în codificarea UTF-8 și capacitatea sa de a utiliza mai multe dicționare, inclusiv pe cele personale. (doc)

AUCTeX

AUCTeX este un mediu integrat pentru producerea documentelor TeX în Emacs. Permite inserarea mai multor macrocomenzi standard TeX diferite prin apăsări simple de taste sau selectarea meniului. Oferă o interfață cu programe externe, permițându-vă să compilați sau să vizualizați documentele din Emacs. AUCTeX oferă, de asemenea, capacitatea de a plasa previzualizări inline ale declarațiilor TeX complexe, cum ar fi formulele matematice. (doc)

Autoconf

Autoconf oferă dezvoltatorului un set robust de macrocomenzi M4 care se extind în cod shell pentru a testa caracteristicile sistemelor asemănătoare Unix și pentru a-și adapta automat pachetul software la aceste sisteme. Scripturile shell rezultate sunt autonome și portabile, eliberând utilizatorul de a avea nevoie să știe ceva despre Autoconf sau M4. (doc)

Arhiva Autoconf

Arhiva Autoconf este o colecție de peste 450 de macrocomenzi noi pentru Autoconf, extinzând foarte mult domeniul funcționalității sale. Aceste macrocomenzi au fost contribuite ca software liber de către comunitate. (doc)

Autogen

AutoGen este un program care ușurează întreținerea programelor care conțin cantități mari de text repetitiv. Automatizează construcția acestor secțiuni ale codului, simplificând sarcina de a menține sincronizarea textului. Include, de asemenea, un pachet add-on numit AutoOpts, care este specializat pentru întreținerea și documentarea opțiunilor programului. (doc)

automake

Creați automat partea sistemului de construcție GNU pentru producerea de fișiere Makefile conforme cu standardele. Cerințele de compilare sunt introduse într-un format intuitiv și apoi Automake lucrează cu Autoconf pentru a produce un Makefile robust, simplificând întregul proces pentru dezvoltator. (doc)

Avl

libavl oferă o colecție mare de arbore de căutare binar și rutine de arbore echilibrat pentru C. Acești arbori oferă performanță de cel puțin O(log n) pentru operațiuni de obicei costisitoare, cum ar fi căutarea, inserarea sau ștergerea elementelor dintr-o structură de date. (doc)

Minge și vâslă

Ball and Paddle este un joc arcade clasic în care folosești o paletă din partea de jos a ecranului pentru a sări o minge împotriva cărămizilor din regiunea superioară, eliminând cărămizile pe măsură ce sunt lovite. Ca o întorsătură nouă, evenimentele și atributele tuturor obiectelor (cărămizi, minge etc.) pot fi scriptate cu GNU Guile. (doc)

cod de bare

GNU Barcode este un instrument flexibil pentru a produce coduri de bare tipărite din șiruri de text. Acceptă o varietate de standarde de codare și măsurători de dimensionare. Codurile de bare pot fi transmise în formate PostScript sau Encapsulated PostScript. (doc)

bash

Bash este shell-ul sau interpretul de linie de comandă al sistemului GNU. Este compatibil cu Bourne Shell, dar integrează și funcții utile de la Korn Shell și C Shell și noi îmbunătățiri proprii. Permite editarea în linie de comandă, istoricul comenzilor nelimitat, funcțiile și alias-urile shell și controlul lucrărilor, permițând în același timp rularea majorității scripturilor sh fără modificare. (doc)

Bayonne

Bayonne este serverul de telefonie al proiectului GNU Telephony. Oferă un mediu scalabil pentru dezvoltarea și implementarea soluțiilor de telefonie, cu accent pe SIP. (doc)

Bazar

GNU Bazaar este un sistem de control al versiunilor care vă permite să înregistrați modificările aduse fișierelor de proiect în timp. Acceptă atât un flux de lucru distribuit, cât și un flux de lucru centralizat clasic. (doc)

bc este un limbaj de procesare numerică de precizie arbitrară. Include un mediu interactiv pentru evaluarea enunțurilor matematice. Sintaxa sa este similară cu cea a lui C, așa că utilizarea de bază este familiară. De asemenea, include dc , un calculator de lustruire inversă. (doc)

BFD

Binutils

GNU Binutils este o colecție de instrumente pentru lucrul cu fișiere binare. Poate că cele mai notabile sunt ld , un linker și as , un asamblator. Alte instrumente includ programe pentru afișarea informațiilor binare de profilare, listarea șirurilor într-un fișier binar și utilitare pentru lucrul cu arhivele. Este inclusă și biblioteca bfd pentru lucrul cu formate executabile și obiect. (doc)

zimbri

GNU Bison este un generator de analizatori de uz general. Poate construi un parser LR determinist sau generalizat dintr-o gramatică adnotată, fără context. Este suficient de versatil pentru a avea multe aplicații, de la analizoare pentru instrumente simple până la limbaje complexe de programare. (doc)

Bool

GNU Bool este un utilitar pentru a efectua căutări de text pe fișiere folosind expresii booleene. De exemplu, o căutare pentru hello AND world ar returna un fișier care conține expresia Hello, world! . Acceptă atât declarațiile AND și SAU, cât și instrucțiunea NEAR pentru a căuta apariția cuvintelor în imediata apropiere unul de celălalt. Gestionează contextul cu grație, ținând cont de noile rânduri și modificări ale paragrafelor. De asemenea, are suport robust pentru analizarea fișierelor HTML. (doc)

BPEL2oWFN

GNU BPEL2oWFN traduce un serviciu web exprimat în limbajul Web Service Business Process Execution (WS-BPEL) într-o rețea de flux de lucru deschisă (oWFN). În plus, poate converti o coregrafie BPEL4Chor într-un model Petri Net. Proprietățile rețelelor Petri pot fi analizate eficient, datorită utilizării analizei statice pentru a face modelele compacte. Sunt disponibile controlul și analiza fluxului de date, precum și verificări de bază pentru blocaje și alte asemenea proprietăți. (doc)

graficul C

GNU C-Graph este un instrument pentru demonstrarea teoriei convoluției. Astfel, poate servi ca un ajutor excelent pentru studenții de la teoria semnalelor și a sistemelor în vizualizarea procesului de convoluție. În loc să forțeze studentul să scrie cod, programul oferă o interfață intuitivă cu dialoguri interactive pentru a-i ghida. (doc)

ccAudio

GNU ccAudio2 este o clasă C++ portabilă pentru lucrul cu date audio de pe disc. Clasele sunt atât endian, cât și conștient de conținut; în loc să trateze audio ca date binare, această bibliotecă îl tratează ca pe o secvență de mostre. De asemenea, poate gestiona informații despre metadate. ccAudio2 acceptă sun audio, mostre brute și date audio codificate RIFF. (doc)

CCd2cue

GNU ccd2cue este un preprocesor pentru software de inscripționare CD care permite conversia formatului proprietar CCD în formatul CUE, care este bine susținut de software-ul gratuit. Aceste fișiere sunt distribuite în mod obișnuit cu imagini de CD și sunt folosite pentru a descrie modul în care piesele sunt așezate pe imagine. (doc)

Ccide

GNU Ccide este un generator de cod de tabel de decizie pentru limbajul C. Acest lucru ajută la evitarea lanțurilor de instrucțiuni if-else imbricate și predispuse la erori. În schimb, tabelele de decizie sunt introduse într-un format intuitiv și ușor de citit, care este apoi extins în cod C portabil. (doc)

ccRTP

GNU ccRTP este o implementare a RTP, protocolul de transport în timp real de la IETF. Este potrivit atât pentru servere de mare capacitate, cât și pentru aplicații client personale. Este flexibil în design, permițându-i să funcționeze ca un cadru pentru cadru, mai degrabă decât să fie doar o bibliotecă de manipulare a pachetelor. (doc)

ccScript

GNU ccScript3 este o bibliotecă pentru adăugarea unui sistem de execuție a mașinii virtuale pentru utilizare cu/ca limbaj de scriptare sau asamblare pentru sisteme în timp real, conduse de tranziție de stare. (doc)

cflow

GNU cflow analizează fișierele sursă C și produce un grafic care prezintă fluxul de control al programului. Poate scoate graficul în mai multe stiluri și fie în format POSIX, fie într-un format GNU extins. cflow include, de asemenea, un mod major pentru Emacs pentru examinarea diagramelor de flux pe care le produce. (doc)

cgicc

GNU cgicc este o bibliotecă C++ compatibilă cu ANSI pentru scrierea aplicațiilor CGI, oferind suport pentru FastCGI. Biblioteca acceptă mai multe funcții, inclusiv gestionarea atât a datelor GET, cât și a datelor POST, gestionarea unei varietăți de tipuri de date de formular și generarea HTML din mers. (doc)

Şah

GNU Chess este un motor de șah. Vă permite să concurați împotriva computerului într-un joc de șah, fie prin interfața implicită a terminalului, fie printr-o interfață vizuală externă, cum ar fi GNU XBoard. (doc)

cim

Cim este compilatorul GNU pentru Simula, primul limbaj de programare orientat pe obiecte. (doc)

Calea clasei

GNU Classpath oferă biblioteci esențiale pentru mașinile virtuale și compilatoare Java. Este compatibil cu un procent mare din specificațiile API-ului limbajului și oferă o gamă largă de funcționalități. (doc)

CLISP

GNU CLISP este o implementare a ANSI Common Lisp. Common Lisp este un limbaj de programare funcțional de nivel înalt, orientat pe obiecte. CLISP include un interpret, un compilator, un depanator și multe altele. (doc)

Combina

GNU combine funcționează pentru a îmbina fișierele pe baza unei chei comune într-un tabel hash. Poate fi văzut ca fiind similar, deși mult mai puternic decât, utilitarul standard de alăturare. Spre deosebire de join , orice număr de fișiere poate fi îmbinat pe baza potrivirilor găsite. combine are și alte caracteristici avansate, cum ar fi analizarea datei și parcurgerea directoarelor. (doc)

[u]C++ comun

GNU Common C++ este un cadru de clasă portabil, optimizat pentru aplicații cu fire de execuție, care acceptă sincronizarea concomitentă, comunicații între procese prin intermediul socket-urilor și diverse metode de manipulare a datelor, cum ar fi serializarea și analiza XML. Include biblioteca uCommon C++, o implementare mai mică. (doc)

Complexitate

Complexitatea GNU oferă instrumente pentru găsirea procedurilor care sunt complicate, prea lungi sau greu de înțeles altfel. Acest lucru vă poate ajuta să învățați sau să revizuiți codul necunoscut sau poate să vă evidențiați propriul cod care părea de înțeles când l-ați scris. (doc)

config

Scriptul config.guess încearcă să ghicească un sistem canonic triplu, iar config.sub validează și canonizează. Acestea sunt folosite ca parte a configurației în aproape toate pachetele GNU (și multe altele). (doc)

coreutils

GNU Coreutils include toate instrumentele de bază din linia de comandă care sunt așteptate într-un sistem POSIX. Acestea oferă funcțiile de bază de manipulare a fișierelor, shell și text ale sistemului GNU. Cele mai multe dintre aceste instrumente oferă o funcționalitate extinsă dincolo de cea care este subliniată în standardul POSIX. (doc)

cpio

GNU cpio copiază fișierele în sau din arhivele cpio sau tar. Într-adevăr, multe formate sunt acceptate, inclusiv formatele vechi. Formatul este determinat automat de program și este gestionat corespunzător. În plus, locația arhiva nu e important. Poate fi un alt fișier de pe unitate, o bandă sau date de pe o conductă. (doc)

Cppi

GNU Cppi procesează fișierele de cod sursă C pentru a indenta corect directivele de preprocesor pentru a reflecta imbricarea acestora. De asemenea, efectuează și alte standardizări, cum ar fi corectarea numărului de spații dintre directive și textul care le urmează. (doc)

CSSC

GNU CSSC oferă un înlocuitor pentru vechiul sistem de control al codului sursă Unix SCCS. Acest lucru permite accesul și migrarea codului vechi încă sub acel sistem pe sistemele moderne. (doc)

Cursynth

GNU cursynth este un sintetizator polifonic care rulează grafic în terminal. Este construit pe un motor de sinteză subtractiv cu funcții complete. Notele și modificările parametrilor pot fi introduse prin MIDI sau tastatura computerului. (doc)

Dap

GNU Dap este un pachet de statistici și grafică. Poate citi programe scrise pentru sistemul de statistici proprietar SAS. Sintaxa sa este similară, dar mai simplă decât C, făcând efectuarea majorității sarcinilor relativ ușoară, oferind totuși capabilități grafice avansate. (doc)

datamash

Efectuați operații de bază numerice, textuale și statistice pe fișiere text simplu. Conceput pentru a funcționa în cadrul conductelor standard fără cod suplimentar. (doc)

DDD

GNU DDD, Data Display Debugger, este un front-end grafic pentru depanatorii din linia de comandă. Multe programe de depanare back-end sunt acceptate, în special depanatorul GNU, GDB. Pe lângă caracteristicile obișnuite de depanare, cum ar fi vizualizarea fișierelor sursă, DDD are caracteristici grafice interactive suplimentare pentru a ajuta la depanare. (doc)

ddrescue

GNU ddrescue este un instrument complet automatizat de recuperare a datelor. Copiază datele dintr-un fișier în altul, lucrând pentru a salva datele în cazul unor erori de citire. Programul include, de asemenea, un instrument de manipulare a fișierelor de jurnal, care sunt folosite pentru a recupera datele mai eficient citind doar blocurile necesare. (doc)

DejaGnu

DejaGnu este un cadru pentru testarea software-ului. De fapt, servește ca front-end pentru toate testele scrise pentru un program. Astfel, fiecare program poate avea mai multe suite de testare, care sunt apoi toate gestionate de un singur cablaj. (doc)

Denemo

GNU Denemo este un editor de notații muzicale care oferă o interfață convenabilă pentru puternicul program de gravare muzicală Lilypond. Muzica poate fi introdusă folosind tastatura computerului, redată folosind o tastatură MIDI sau chiar introdusă printr-un microfon conectat la placa de sunet. Produsul final este o notație muzicală de calitate publică, care este generată continuu în fundal în timp ce lucrați. (doc)

Dia

Dico

GNU Dico implementează un server de dicționar flexibil și un client conform RFC 2229 (DICT Server). Este capabil să acceseze orice bază de date disponibilă, indiferent de format, datorită structurii sale modulare. Noile module pot fi scrise în C, Guile sau Python. Dico include, de asemenea, un client de linie de comandă, care poate fi folosit pentru a interoga bazele de date de dicționar la distanță. (doc)

Dicție

Un pachet care oferă două comenzi clasice Unix, stil și dicție. Dicția este folosită pentru a identifica fraze pronunțate și utilizate greșit într-un corp de text. În schimb, stilul analizează aspectele de suprafață ale unei lucrări scrise, cum ar fi lungimea propoziției și alte măsuri de lizibilitate. (doc)

Diffutils

GNU Diffutils este un pachet care conține instrumente pentru a găsi diferențele dintre fișiere. Comanda diff este folosită pentru a arăta cum diferă două fișiere, în timp ce cmp arată decalajele și numerele de linii unde diferă. diff3 vă permite să comparați trei fișiere. În cele din urmă, sdiff oferă un mijloc interactiv de a îmbina două fișiere. (doc)

Dionysos

GNU Dionysus este un sistem convenabil pentru recuperarea rapidă a valorilor constantelor matematice utilizate în știință și inginerie. Valorile pot fi căutate folosind un instrument simplu de linie de comandă, alegând dintre trei baze de date: constante universale, numere atomice și constante legate de semiconductori. (doc)

Direcvent

Un demon care monitorizează directoarele pentru evenimente, cum ar fi crearea, ștergerea sau modificarea fișierelor. Poate monitoriza diferite seturi de directoare pentru diferite evenimente. Când este detectat un eveniment, direvent apelează un program extern specificat cu informații despre eveniment, cum ar fi locația din sistemul de fișiere în care a avut loc. Astfel, direvent oferă o modalitate ușoară de a reacționa imediat dacă anumite fișiere suferă modificări, de exemplu, pentru a urmări modificările în fișierele importante de configurare a sistemului. (doc)

Stăpânire

GNU Dominion este un joc de simulare mondială pentru mai mulți jucători. În ea, fiecare jucător conduce o națiune și trebuie să-și mențină națiunea în fața concurenței celorlalți jucători. Jucătorii trebuie să ia decizii politice, economice, militare și diplomatice pentru ca națiunile lor să supraviețuiască. Acest joc este destinat să fie jucat de către toți jucătorii cu acces la același sistem computerizat. (doc)

Easejs

ease.js este un cadru clasic orientat pe obiecte pentru JavaScript, menit să elimine codul standard și să ușureze tranziția la JavaScript din alte limbaje orientate pe obiecte. (doc)

Ed este un editor de text orientat pe linii: în loc să ofere o privire de ansamblu asupra unui document, ed efectuează editarea câte o linie. Poate fi executat atât interactiv, cât și prin intermediul scripturilor shell. Metoda sa de introducere a comenzii permite efectuarea de sarcini complexe într-un mod automat. GNU ed oferă mai multe extensii peste utilitarul standard. (doc)

EDMA

GNU EDMA este un mediu de dezvoltare care combină idei atât din programarea orientată pe obiecte, cât și din sisteme bazate pe componente. Este folosit pentru a construi aplicații modulare, în evoluție, precum și componente reutilizabile. EDMA oferă un mijloc convenabil de a construi programe orientate pe obiecte în C fără a necesita C++. De asemenea, are un sistem de componente unic, spre deosebire de alte sisteme bazate pe componente software liber, care imită designul omologilor proprietar. Include un expert grafic, gidfwizard, un instrument pentru construirea fișierelor de definire a interfeței GNU EDMA și pentru a crea fișiere schelet necesare pentru a construi clase EDMA și un browser de clasă grafică, gecb. (doc)

electric

GNU Electric este un program CAD pentru proiectarea circuitelor electrice, gestionarea aspectului IC personalizat, desenul schematic și specificațiile limbajului de descriere hardware. Sunt acceptate mai multe operațiuni CAD, cum ar fi verificarea și simularea regulilor. Multe tipuri diferite de modele pot fi produse și de intrare sau de ieșire într-o mare varietate de formate. (doc)

emacs

GNU Emacs este un editor de text extensibil și extrem de personalizabil. Se bazează pe un interpret Emacs Lisp cu extensii pentru editarea textului. Emacs a fost extins în esență în toate domeniile de calcul, dând naștere la o gamă largă de pachete care acceptă, de exemplu, e-mail, mesagerie IRC și XMPP, foi de calcul, editare la distanță de server și multe altele. Emacs include documentație extinsă despre toate aspectele sistemului, de la editarea de bază până la scrierea de programe mari Lisp. Are suport complet Unicode pentru aproape toate limbile umane. (doc)

emacs-muse

Muse este un mediu de creare și publicare pentru GNU Emacs. Acceptă introducerea textului într-un format convenabil și ușor de învățat. Ulterior, documentele dumneavoastră pot fi publicate într-o varietate de formate diferite, cum ar fi HTML, LaTeX sau PDF. Muse acceptă proiecte care constau din mai multe documente, care sunt îmbinate corespunzător în funcție de formatul de ieșire. (doc)

EMMS

EMMS este sistemul multimedia Emacs. Este un mic front-end care poate controla unul dintre jucătorii externi acceptați. Astfel, acceptă orice formate acceptate de playerul tău muzical. De asemenea, acceptă etichetarea și gestionarea listelor de redare, toate în spatele unei interfețe de utilizator curate și ușoare. (doc)

Enscript

GNU Enscript este un program pentru a converti fișiere text ASCII în formate PostScript, HTML sau RTF, pentru a fi stocate în fișiere sau trimise imediat la o imprimantă. Include, de asemenea, capacitatea de a efectua evidențierea sintaxei pentru mai multe limbaje de programare diferite. (doc)

fdisk

GNU fdisk oferă o versiune GNU a instrumentului comun de partiționare a discurilor fdisk. fdisk este folosit pentru crearea și manipularea tabelelor de partiții ale discurilor și înțelege o varietate de formate diferite. (doc)

Dihor

GNU Ferret este un modelator grafic de date pentru paradigma Entitate/Relație. Poate crea automat scheme relaționale din modelele de date și poate fi folosit pentru a genera instrucțiuni SQL într-o varietate de dialecte. (doc)

findutils

Findutils furnizează utilitățile de bază de căutare în directorul de fișiere ale sistemului GNU. Acesta constă din două utilitare principale de căutare: găsiți căutări recursive pentru fișiere dintr-un director în funcție de criterii date și găsiți liste de fișiere dintr-o bază de date care se potrivesc cu o interogare. Sunt incluse două instrumente auxiliare: updatedb actualizează baza de date cu numele fișierelor și xargs pot fi folosite pentru a aplica comenzi cu argumente arbitrar lungi. (doc)

FisicaLab

GNU FisicaLab este o aplicație educațională pentru rezolvarea problemelor de fizică. Obiectivul său principal este de a permite utilizatorului să se concentreze asupra conceptelor de fizică, lăsând deoparte detaliile matematice. (doc)

Foliot

GNU Foliot este o aplicație pentru a ține evidența timpului petrecut lucrând la proiecte. (doc)

Fontopia

Fontopia este un editor de fonturi de consolă, bazat pe text, ușor de utilizat. Este folosit pentru a edita fonturile pe care GNU/Linux le folosește pentru a afișa textul pe terminale bazate pe text. Fontopia funcționează atât pe PSF 1 și 2, BDF, fonturi Code Paged (CP) și fișiere de font Raw. Oferă un utilizator. editor de glife prietenos, ușor de utilizat și poate schimba cu ușurință valorile fonturilor (de exemplu lungimea, lățimea și înălțimea) și poate face conversie între diferite formate de font.(doc)

Fontutils

GNU Fontutils este o colecție de programe pentru manipularea fonturilor. Bitmaps-urile pot fi extrase din imagini scanate ale caracterelor, editate și convertite în fonturi de contur. În general, Fontutils acceptă formatele de font acceptate de mediul de compunere TeX, inclusiv fonturile PostScript Type 1. (doc)

freedink

GNU FreeDink este o reimplementare gratuită și portabilă a motorului pentru jocul de rol Dink Smallwood. Acceptă nu numai fișierele de date originale ale jocului, dar acceptă și modurile de joc produse de utilizator sau D-Mod-urile. În această măsură, include și un front-end pentru gestionarea tuturor D-Mod-urilor tale. (doc)

Fonturi gratuite UCS Outline

GNU FreeFont este o colecție de fonturi de contur scalabile care sunt potrivite pentru utilizarea generală pe computer și pentru publicare desktop. Sunt incluse un serif, un sans serif și un font monospațiu, toate disponibile în ambele formate TrueType și OpenType. Fonturile acceptă o gamă largă de caractere pentru multe sisteme de scriere diferite și au o acoperire excelentă a notației matematice. (doc)

IPMI gratuit

GNU FreeIPMI este o colecție de software IPMI în bandă și în afara bandă, în conformitate cu specificația IPMI v1.5/2.0. Aceste programe oferă un set de interfețe pentru gestionarea platformei. Funcționalitățile comune includ monitorizarea senzorilor, monitorizarea evenimentelor sistemului, controlul alimentării și serial-over-LAN. (doc)

Discutie libera

GNU Freetalk este un client de chat Jabber/XMPP în linie de comandă. Utilizează în special biblioteca Readline pentru a gestiona introducerea, deci oferă o navigare convenabilă a textului, precum și completarea cu tabele a numelor prietenilor, comenzilor și cuvintelor în limba engleză. Este, de asemenea, scriptabil și extensibil prin Guile. Acest pachet caută un întreținător. (doc)

FriBiDi

GNU FriBidi este o implementare a algoritmului bidirecțional Unicode. Acest algoritm este utilizat pentru a afișa corect textul în ordine de la stânga la dreapta sau de la dreapta la stânga, după cum este necesar. (doc)

G Golf

G-Golf (Gnome: (Guile Object Library for)) este o bibliotecă pentru dezvoltarea aplicațiilor moderne în Guile Scheme. Acesta cuprinde o legare directă la API-ul GObject Introspection și o funcționalitate de nivel superior pentru importarea bibliotecilor Gnome și pentru a face disponibile clase (și metode) GObject în sistemul de programare orientat pe obiecte al lui Guile, GOOPS. (doc)

Gama

GNU Gama este un program pentru ajustarea rețelelor geodezice. Este util în măsurători în care Sistemul de poziționare globală (GPS) nu este disponibil, cum ar fi subteran. Dispune de capacitatea de a ajusta coordonatele carteziene locale, precum și de suport parțial pentru ajustări în sistemele globale de coordonate. (doc)

Daemon ARP gratuit

GNU garpd difuzează cereri/răspunsuri ARP gratuit (Address Resolution Protocol) pentru o listă de adrese MAC<->Mapări de adrese IP pe interfețe specificate la intervale regulate. Pachetele de solicitare ARP gratuite sunt acelea în care IP-urile sursă și destinația sunt ambele IP-ul mașinii solicitante. Răspunsurile ARP gratuite sunt cele făcute fără o solicitare corespunzătoare. (doc)

Bălălău

Gawk este implementarea GNU a Awk, un limbaj de programare specializat pentru manipularea ușoară a textului formatat, cum ar fi tabelele de date. Gawk are multe extensii dincolo de implementarea tradițională, inclusiv acces la rețea, sortare și biblioteci mari. (doc)

Gbehistun

GNU Behistun constă din software și utilități pentru modelarea geologică și geofizică și cartografierea structurilor și dinamicii interne. La fel ca Behistun Multilingual Inscription, utilitarele software Behistun oferă cunoștințe și funcționalități pentru a lucra asupra sistemelor planetare și a investiga interiorul lor în libertate. (doc)

Gcal

Gcal este un program pentru calcularea și imprimarea calendarelor pe linia de comandă. Calendarele pot fi tipărite în vizualizări de 1 lună, 3 luni sau întregul an. În plus, pentru multe țări pot fi generate liste de sărbători eterne, care pot fi completate cu liste realizate de utilizatori cu date fixe pentru a face o agendă. Gcal poate calcula, de asemenea, date astronomice, cum ar fi fazele lunii și acceptă formate alternative de calendar: Julian, Gregorian, Islamic, Chinese și multe altele. (doc)

GCC

GCC este colecția de compilatori GNU. Oferă front-end de compilator pentru mai multe limbi, inclusiv C, C++, Objective-C, Fortran, Java, Ada și Go. Include, de asemenea, biblioteci de suport pentru runtime pentru aceste limbi. (doc)

Gcide

GCIDE este un dicționar gratuit bazat pe o combinație de surse. Poate fi folosit prin programul GNU Dico sau accesat online la http://gcide.site.ua/ (doc)

GNU Common Lisp

GCL este o implementare a limbajului Common Lisp. Dispune de capacitatea de a compila în cod obiect nativ și de a încărca module de cod de obiect nativ direct în miezul său lisp. Include, de asemenea, o strategie de colectare a gunoiului stratificat, un depanator la nivel de sursă și o interfață încorporată pentru sistemul de widget-uri Tk. (doc)

Gcompris

GCompris este o suită de software educațional pentru copii. Acesta oferă o varietate de activități potrivite pentru copiii cu vârsta cuprinsă între 2 și 10 ani. Suita include activități pentru introducerea și dezvoltarea abilităților de utilizare a computerului, algebră, știință, citire și multe altele. Include, de asemenea, unele jocuri precum șah și sudoku. (doc)

gdb

GDB este depanatorul GNU. Cu acesta, puteți monitoriza ce face un program în timp ce rulează sau ce făcea chiar înainte de un accident. Vă permite să specificați condițiile de rulare, să definiți punctele de întrerupere și să modificați modul în care rulează programul pentru a încerca să remediați erorile. Poate fi folosit pentru a depana programe scrise în C, C++, Ada, Objective-C, Pascal și multe altele. (doc)

Gdbm

GDBM este o bibliotecă pentru manipularea bazelor de date cu hashing. Este folosit pentru a stoca perechi cheie/valoare într-un fișier într-un mod similar cu biblioteca Unix dbm și oferă interfețe pentru formatul de fișier tradițional. (doc)

Gengen

GNU Gengen este un program pentru generarea de generatoare de text, adică funcții care produc text cu secțiuni variabile. Textul este mai întâi specificat de utilizator într-un fișier șablon care conține parametri, apoi procesat de gengen pentru a crea generatorul de text. În timpul execuției, textul variabil este definit de restul programului și transmis generatorului de text, care apoi îl înlocuiește în parametrii șablonului și returnează rezultatul. Gengen poate fi folosit pentru a genera cod C și C++. (doc)

Gengetopt

GNU Gengetopt este un program pentru a genera o funcție C/C++ pentru analizarea opțiunilor de linie de comandă folosind funcția getopt_long găsită în GNU libc, înlăturând o parte din plictisirea acestei sarcini pentru programele mari care acceptă multe opțiuni. Opțiunile analizate de funcția generată pot fi atât în ​​format scurt (de exemplu, -h) cât și în format lung (--help), așa cum este specificat de standardele de codare GNU. În plus, rezultatul opțiunilor standard --help și --version este generat automat. (doc)

gettext

GNU Gettext este un pachet care oferă un cadru pentru traducerea textuală a programelor în mai multe limbi. Oferă traducătorilor mijloacele de a crea cataloage de mesaje, precum și un mod Emacs pentru a lucra cu ele și o bibliotecă de rulare pentru a încărca mesajele traduse din cataloage. Aproape toate pachetele GNU folosesc Gettext. (doc)

gforth

Gforth este o implementare rapidă și portabilă a limbajului ANSI Forth. Include un mod de editare pentru Emacs și un interpret cu completare și istoric. Un mediu de mașină virtuală generic, vmgen, este de asemenea inclus. (doc)

Catalog

GNU Gradebook este o aplicație pentru profesori pentru urmărirea notelor elevilor. Acceptă mai multe stiluri de notare, inclusiv scale numerice americane (A, B, C, D, F) și europene. (doc)

GNU Ghostscript

Ghostscript este un interpret pentru limbajul PostScript și formatul de fișier PDF. De asemenea, include o bibliotecă C care implementează capabilitățile grafice ale limbajului PostScript. Acceptă o mare varietate de formate de fișiere de ieșire și imprimante. (doc)

CADOU

GNU Image-Finding Tool (GIFT) este un sistem de recuperare a imaginilor bazat pe conținut. Utilizează conținutul imaginilor pentru a efectua interogări asupra unei colecții, permițându-vă să interogați prin exemplu. De asemenea, este inclus un instrument de indexare a arborilor întregi de directoare. (doc)

GIMP

GIMP este o aplicație pentru sarcini de manipulare a imaginilor, cum ar fi retușarea foto, compoziția și creația. Acceptă toate formatele de imagine comune, precum și pe cele specializate. Dispune de o interfață extrem de personalizabilă care este extensibilă printr-un sistem de pluginuri. (doc)

Culege

GNU glean este un sistem modular pentru auto-studiu, considerabil mai complicat decât metoda standard de carduri flash. Este foarte personalizabil, permițând utilizatorului să definească subiecte de interes și activități pentru a le studia. Pentru moment, are o interfață bazată pe text în interiorul Guile REPL și o interfață web experimentală. (doc)

Gleem

GNU gleem este o bibliotecă pentru Java și C++ care oferă un set de widget-uri 3D care acceptă interacțiunea directă a utilizatorului cu o scenă 3D. Aceste widget-uri sunt folosite pentru a transla de-a lungul unei linii, a transla într-un plan și pentru a face translație și rotație tridimensională. Acest pachet caută un întreținător. (doc)

GLib

Global

GNU GLOBAL este un sistem de etichetare a codului sursă care funcționează în același mod într-o gamă largă de medii, cum ar fi diferite editori de text, shell-uri și browsere web. Etichetele rezultate sunt utile pentru deplasarea rapidă într-un proiect mare, profund imbricat. (doc)

GLPK

GLPK este o bibliotecă C pentru rezolvarea programării liniare la scară largă (LP), a programării întregi mixte (MIP) și a altor probleme conexe. Acesta acceptă limbajul de modelare GNU MathProg, un subset al limbajului AMPL și are un traducător pentru limbă. Pe lângă biblioteca C, în pachet este inclus un solutor LP/MIP autonom. (doc)

Gmediaserver

GMediaServer este un server media compatibil UPnP. Acesta oferă fișiere audio și video playerelor media conectate la rețea printr-un program de linie de comandă care rulează în fundal. (doc)

GMP

GMP este o bibliotecă pentru aritmetică de precizie arbitrară, care operează pe numere întregi cu semn, numere raționale și numere în virgulă mobilă. Precizia este limitată doar de memoria disponibilă. Biblioteca este foarte optimizată, cu accent pe design pe viteza de execuție. Este destinat utilizării, de exemplu, în criptografie și algebra computațională. (doc)

Scrâşni

Gnash este un player gratuit de filme Flash. Acceptă versiunea SWF v7 și unele dintre v8 și v9. Este posibil să configurați Gnash să utilizeze mai multe backend-uri audio sau video diferite, asigurând o performanță bună. (doc)

GNAT

MUȘIȚE

GNATS este un set de instrumente pentru urmărirea erorilor și a altor probleme de software raportate de utilizator. Este complet deschis în ceea ce privește modul în care baza sa de date poate fi interogată, editată și întreținută, prezentând interfețe variind de la linia de comandă la Emacs, deși principalul mijloc de interacțiune este prin interfața sa web. De asemenea, este suficient de flexibil pentru a suporta utilități create de utilizator. (doc)

Gnatsweb

Rețeaua Gneurală

Gneural Network implementează o rețea neuronală programabilă. În prezent, acceptă rețele feed-forward care pot învăța sarcini simple, cum ar fi ajustarea curbei. (doc)

GNOME

GNOME este desktopul grafic pentru GNU. Include o mare varietate de aplicații pentru navigarea pe web, editarea textului și imaginilor, crearea de documente și diagrame, redare media, scanare și multe altele. (doc)

Manual de referință GNU C

Acesta este un manual de referință pentru limbajul de programare C, așa cum este implementat de GNU C Compiler (gcc). Ca referință, nu se intenționează să fie un tutorial al limbii. Mai degrabă, conturează toate constructele limbajului. Funcțiile bibliotecii nu sunt incluse. (doc)

gnu-pw-mgr

Acest program este conceput pentru a facilita reconstruirea parolelor dificile atunci când acestea sunt necesare, limitând în același timp riscul de atac. Utilizatorul acestui program introduce o transformare auto-definită a URL-ului unui site web și obține indicația pentru parola și numele de utilizator pentru acel site web. (doc)

GNUbatch

GNUbatch este un sistem avansat de programare a loturilor. Execută lucrări de calcul la date și ore specificate sau în funcție de interdependențe. Lucrările pot fi finalizate pe orice număr de procesoare partajate într-o rețea. Este acceptat controlul complet al accesului la joburi. (doc)

table

Aplicația de table GNU poate fi folosită pentru a juca, analiza și preda jocul. Are un motor avansat de evaluare bazat pe rețele neuronale artificiale, potrivit atât pentru începători, cât și pentru jucătorii avansați. Pe lângă o interfață de linie de comandă, are și o reprezentare 3D atractivă a tablei de joc. (doc)

GNUbiff

GNUbiff este un program care verifică corespondența și vă anunță când sosesc mesaje noi. Acesta acceptă mai multe cutii poștale care pot fi accesate printr-o varietate de metode, cum ar fi POP3, IMAP, MH și fișiere de e-mail. Notificările grafice sunt furnizate cu GTK și este acceptată integrarea completă cu GNOME. (doc)

GNUbik

GNUbik este un joc de puzzle în care trebuie să manipulezi un cub pentru ca fiecare dintre fețele lui să aibă o culoare uniformă. Jocul este personalizabil, permițându-vă să setați dimensiunea cubului (implicit este 3x3) sau să schimbați culorile. Puteți chiar să aplicați fotografii pe fețe în loc de culori. Jocul este scriptabil cu Guile. (doc)

GNUcap

GNUcap este un pachet de analiză a circuitelor. Oferă un simulator de circuit de uz general și poate efectua analize DC și tranzitorii, analize Fourier și analize AC. Motorul este proiectat pentru a face simulare adevărată în mod mixt. (doc)

GnuCash

GnuCash este un software financiar-contabil personal și profesional. Poate fi folosit pentru a urmări conturile bancare, stocurile, veniturile și cheltuielile, pe baza practicii contabile în partidă dublă. Include suport pentru importul QIF/OFX/HBCI și potrivirea tranzacțiilor. De asemenea, automatizează mai multe sarcini, cum ar fi calcule financiare sau tranzacții programate. (doc)

GnuComm

Subsistemul Telecom al Proiectului GNU: proiect umbrelă pentru software-ul GNU Telephony, în prezent Bayonne, SIP Witch, și bibliotecile lor suport (Common C++ / uCommon, ccAudio, ccScript, ccRTP și ZRTP / ZRTP4J). (doc)

GnuDOS

GnuDOS este un set de programe concepute pentru a ajuta utilizatorii noi ai sistemului GNU să se obișnuiască cu sistemul, în special utilizatorii care ar putea veni dintr-un mediu DOS. Acesta constă dintr-un manager de fișiere, un editor de text și un designer de formulare pentru consolă, precum și o bibliotecă de bază pentru construirea de utilități similare. (doc)

GNU Enterprise

GNU Enterprise acceptă planificarea întreprinderii. Acesta include un server de aplicații, o bibliotecă de dezvoltare comună, un IDE pentru proiectarea formularelor de date, interfață de formulare, sistem de navigare și meniu și sistem de raportare a datelor. (doc)

GNUgo

GNU Go este un program care joacă jocul Go, în care jucătorii plasează pietre pe o grilă pentru a forma teritoriu sau pentru a captura alte pietre. Deși poate fi redat direct de pe terminal, redat în caractere ASCII, este posibil să jucați GNU Go și cu interfețe grafice terțe sau chiar în Emacs. Acceptă formatul standard de stocare a jocului (SGF, Smart Game Format) și formatul de comunicare între procese (GMP, Go Modem Protocol). (doc)

Instrumente interactive GNU

Instrumentele interactive GNU sunt un set de instrumente interactive de linie de comandă ușoare. Acestea includ un manager de fișiere extensibil, ortodox (cu două panouri), un vizualizator de fișiere ASCII/hex și un vizualizator/ucigaș de proces. Pachetul include, de asemenea, unele utilitare și scripturi conexe, cum ar fi un instrument pentru a decomprima orice tip de fișier de arhivă. Toate instrumentele pot fi îmbunătățite și extinse prin fișierele lor de configurare pentru a efectua comenzi noi. (doc)

GNUjump

GNUjump este un joc simplu, dar captivant, în care trebuie să sari de la o platformă la alta pentru a evita căderea, în timp ce platformele scad cu ritm mai rapid cu cât mergi mai sus. Jocul oferă multiplayer, FPS nelimitat, cădere lină de podea, grafică și sunete tematice și reluări. (doc)

GNUlib

Gnulib este o locație centrală pentru infrastructura comună necesară pachetelor GNU. Oferă o mare varietate de funcționalități, de exemplu, portabilitate pe mai multe sisteme, lucrul cu șiruri Unicode, calcul criptografic și multe altele. Codul este destinat să fie partajat la nivel de fișiere sursă, mai degrabă decât să fie o bibliotecă autonomă care este distribuită, construită și instalată. Scriptul gnulib-tool inclus ajută la utilizarea codului Gnulib în alte pachete. Gnulib include, de asemenea, copii ale fișierelor legate de licențiere și întreținere, pentru comoditate. (doc)

Mach

GNUmed

GNUmed este un software de înregistrare medicală electronică, care sprijină practicile medicale fără hârtie. Sunt acceptate mai multe limbi de interfață. (doc)

GNUmeric

GNUmeric este o aplicație pentru foi de calcul GNU, care rulează sub GNOME. Este interoperabil cu alte aplicații pentru foi de calcul. Are o gamă largă de caracteristici dincolo de funcționalitatea tipică a foii de calcul, cum ar fi suport pentru rezolvatori liniari și neliniari, analiză statistică și inginerie de telecomunicații. (doc)

GNUmp3d

GNUMP3d este un server de streaming pentru fișiere audio MP3 și Ogg Vorbis, filme și alte formate media. Este mic și autonom, prezentând o interfață HTML simplă, tematică. Fișierele audio pot fi apoi redate în orice player care acceptă streaming prin HTTP. (doc)

GN Națiunile Unite

GNUnited Nations este un sistem de compilare pentru traducerea site-ului web la www.site. Funcționează prin fișiere șablon, care permit îmbinarea modificărilor în traduceri individuale ale unei pagini, din care este generat HTML-ul final. De fapt, acest lucru ajută la menținerea la zi a tuturor traducerilor unei pagini. (doc)

GNUnet

GNUnet este un cadru pentru rețele peer-to-peer securizate. Scopul la nivel înalt este de a oferi o bază solidă de software gratuit pentru o rețea globală, distribuită, care oferă securitate și confidențialitate. În acest sens, GNUnet își propune să înlocuiască stiva actuală de protocoale de internet. Alături de o aplicație pentru publicarea în siguranță a fișierelor, aceasta a crescut pentru a include tot felul de aplicații de bază pentru fundamentul unui internet GNU. (doc)

GnuPG

GNU Privacy Guard este o implementare completă a standardului OpenPGP. Este folosit pentru a cripta și semna date și comunicații. Dispune de un management puternic al cheilor și abilitatea de a accesa servere de chei publice. Include mai multe biblioteci: libassuan (IPC între componentele GnuPG), libgpg-error (valori centralizate de eroare GnuPG) și libskba (funcționează cu certificate X.509 și date CMS). (doc)

GNUpod

GNUpod este o colecție de scripturi pentru utilizarea iPod-urilor cu GNU/Linux și alte sisteme de operare. Poate fi folosit pentru transferul muzicii și coperta, căutarea fișierelor, eliminarea fișierelor, editarea etichetelor, crearea listelor de redare și multe altele. (doc)

GNUprologjava

GNU Prolog pentru Java este o implementare a standardului ISO Prolog ca bibliotecă Java (gnu.prolog). Astfel, cu el puteți utiliza Prolog din cadrul programelor Java. (doc)

Radio

GNU Radio este un set de instrumente pentru implementarea radio-urilor software. Blocurile sale de procesare a semnalului pot fi combinate cu hardware RF extern la preț redus pentru a crea radio-uri definite de software. Fără hardware, poate fi folosit pentru simulare. Aplicațiile radio sunt scrise în principal în Python, cu suport C++ pentru sarcini de procesare critice pentru performanță. (doc)

roboți

GNU Robots este un joc în care programezi un robot pentru a explora o lume plină de inamici care îl pot răni, obstacole și mâncare de mâncat. Scopul jocului este să rămână în viață și să strângi premii. Programul robot poate fi scris în mod convenabil într-un fișier text simplu în limbajul de programare Scheme. (doc)

GNUschool

GNUschool este o aplicație web pentru studenți, profesori și administratori de școli. Cu acesta, profesorii pot crea teste pe care elevii le pot susține online, pot oferi feedback și pot atribui note. Administratorii școlii îl pot folosi pentru a monitoriza prezența elevilor și pentru a edita informațiile despre elev. (doc)

GNUshogi

GNU Shogi este un program care joacă jocul Shogi (șah japonez). Include, de asemenea, o interfață grafică pentru joc. Deși este similară cu șahul standard, această variantă este mult mai complicată. (doc)

GNUsound

GNUsound este un editor de sunet multitrack pentru GNOME 1 și 2. Poate citi și scrie multe formate de fișiere audio, cum ar fi WAV, MP3 și FLAC. Poate funcționa cu backend-urile audio OSS, ALSA sau JACK. Oferă multe module diferite de procesare audio încorporate, cum ar fi fade in/out, întârzieri și filtre. Pluginurile GLDSPA pot fi utilizate și pentru procesarea ulterioară. (doc)

GNUspool

GNUspool este un sistem avansat de spooling de imprimare. Pe lângă funcționalitatea sistemului de imprimare standard, acesta oferă capabilități de post-procesare, manipulare tip formular, pagini de aliniere și alte caracteristici. Funcționează transparent într-o rețea, partajând lucrări pe orice gazdă cu imprimante de pe orice altă gazdă. Sunt disponibile mai multe interfețe de utilizator. (doc)

GNUstep

GNUstep este un mediu de dezvoltare orientat pe obiecte complet funcțional; sunt incluse și o serie de aplicații utilizator. Urmează îndeaproape API-urile Cocoa, dar este independent de platformă. (doc)

GnuTLS

GnuTLS este o bibliotecă de comunicații securizată care implementează protocoalele SSL, TLS și DTLS. Este furnizat sub forma unei biblioteci C pentru a susține protocoalele, precum și pentru a analiza și scrie X.5009, PKCS 12, OpenPGP și alte structuri necesare. (doc)

GNUtrition

GNUtrition este un software gratuit de analiză nutrițională. Cu el, se poate urmări informațiile nutriționale ale alimentelor. Software-ul folosește baza de date de referință standard de nutrienți a Departamentului de Agricultură al SUA ca sursă de informații despre nutrienții din alimente. (doc)

GNUzilla

Goptic

Goptical este o bibliotecă pentru proiectare optică și simulare în C++. Oferă clase de model pentru componente optice, suprafețe și materiale. Cu acesta, se poate simula construirea unui sistem optic prin crearea și plasarea componentelor optice într-un spațiu 3d și vizualizarea luminii care se propagă prin sistem. (doc)

Gorm

Gpaint

GNU Paint este un program de vopsea simplu, ușor de utilizat pentru mediul GNOME. Acceptă desenarea cu mână liberă, precum și forme și text de bază. Dispune de tăiere și lipire pentru regiuni neregulate sau poligoane. (doc)

gperf

gperf este un generator perfect de funcții hash. Pentru o listă dată de șiruri de caractere, produce o funcție hash și un tabel hash în cod C sau C++. Că funcția hash este perfectă înseamnă că nu pot exista coliziuni și că căutările pot fi făcute prin comparații cu un singur șir. (doc)

gprolog

GNU Prolog este un compilator Prolog compatibil cu standardele cu rezolvare de constrângeri pe domenii finite. Acceptă programele de constrângeri Prolog+ și produce un binar nativ compilat care poate funcționa în mod independent. Include, de asemenea, un interpret interactiv. (doc)

phpGrabComics

phpGrabComics este un program care preia și salvează benzi desenate de pe web. Dispune atât de un server, care poate descărca benzi din diferite surse, cât și de porturi, aplicații minuscule care primesc lista de benzi desenate disponibile de pe server. (doc)

Greg

GNU Greg este un cadru pentru testarea programelor și bibliotecilor. Oferă un singur front-end pentru toate testele unui pachet, precum și un cadru simplu pentru scrierea testelor. Este încărcat ca modul Guile în orice software cu un interpret Guile încorporat. De asemenea, oferă un modul compilat care poate fi conectat dinamic în Guile pentru a permite testarea programelor externe. (doc)

grep

grep este un instrument pentru găsirea de text în interiorul fișierelor. Textul este găsit prin potrivirea unui model furnizat de utilizator într-unul sau mai multe fișiere. Modelul poate fi furnizat ca o expresie regulată de bază sau extinsă sau ca șiruri fixe. În mod implicit, textul care se potrivește este pur și simplu tipărit pe ecran, cu toate acestea, rezultatul poate fi personalizat pentru a include, de exemplu, numere de rând. GNU grep oferă multe extensii peste utilitarul standard, inclusiv, de exemplu, căutarea recursivă în directoare. (doc)

Gretl

GNU Gretl este un pachet pentru efectuarea de calcule statistice pentru econometrie. Este format dintr-un client de linie de comandă și un client grafic. Dispune de o varietate de estimatori, cum ar fi cele mai mici pătrate și probabilitatea maximă; mai multe metode de serie de timp, cum ar fi ARIMA și GARCH; variabile dependente limitate, cum ar fi logit, probit și tobit; și un limbaj de scripting puternic. Poate scoate modele ca fișiere LaTeX. De asemenea, poate fi conectat la GNU R și GNU Octave pentru o analiză ulterioară a datelor. (doc)

Groff

Groff este un pachet de tipărire care citește text simplu și produce rezultate formatate pe baza comenzilor de formatare conținute în text. Este de obicei formatatorul paginilor de documentație man. (doc)

GRUB

GRUB este un bootloader multiboot. Este folosit pentru a încărca inițial nucleul unui sistem de operare și apoi pentru a transfera controlul acestuia. Nucleul continuă apoi să încarce restul sistemului de operare. ca bootloader multiboot, GRUB gestionează prezența mai multor sisteme de operare instalate pe același computer; la pornirea computerului, utilizatorului i se prezintă un meniu pentru a selecta unul dintre sistemele de operare instalate. (doc)

Gsasl

GNU SASL este o implementare a cadrului Simple Authentication and Security Layer. Pe serverele de rețea, cum ar fi serverele IMAP sau SMTP, SASL este utilizat pentru a gestiona autentificarea client/server. Acest pachet conține atât o bibliotecă, cât și un instrument de linie de comandă pentru a accesa biblioteca. (doc)

Gsegrafix

GSEGrafix este o aplicație care produce grafice de înaltă calitate pentru știință și inginerie. Graficele sunt specificate prin fișiere de parametri ASCII simple și fișiere de date și sunt prezentate într-o pânză GNOME anti-alias. Programul acceptă diagrame bidimensionale dreptunghiulare, histograme, diagrame cu axe polare și diagrame tridimensionale. Graficele pot fi tipărite sau salvate în formate de imagine BMP, JPEG sau PNG. (doc)

Biblioteca științifică GNU

Biblioteca științifică GNU este o bibliotecă pentru analiză numerică în C și C++. Include o gamă largă de rutine matematice, cu peste 1000 de funcții în total. Subiectele acoperite de bibliotecă includ: ecuații diferențiale, algebră liniară, transformate rapide Fourier și numere aleatoare. (doc)

GNU Slip

GNU Slip este o extensie funcțională a capabilităților furnizate în lista și containerele de coadă C++ Standard Template Library (STL), deși SLIP nu este un înlocuitor pentru containerele STL. Celulele de date SLIP pot fi utilizate în calcule specifice aplicației, printre alte îmbunătățiri. (doc)

GSRC acceptă instalarea celor mai recente versiuni ale pachetelor GNU pe un sistem existent. Noile versiuni sunt instalate într-un loc separat pentru a nu interfera cu versiunile de sistem. Scopul este de a facilita lucrul cu sursele GNU originale, din amonte și poate ajuta la dezvoltare și testare. (doc)

Serviciul de securitate generic

GNU Generic Security Service oferă o implementare gratuită a specificației GSS-API. Acesta oferă o interfață generică de programare a aplicațiilor pentru programele de acces la serviciile de securitate. Serviciile de securitate prezintă o interfață generică, GSS, cu care aplicația care apelează interacționează prin intermediul acestei biblioteci, eliberând dezvoltatorul aplicației de nevoia de a cunoaște implementarea securității de bază. (doc)

GTick

GTick este o aplicație de metronom. Suportă diferite contoare, cum ar fi 2/4, 3/4, 4/4 etc. De asemenea, suportă o gamă largă de viteze, de la 10 la 1000 BPM. Oferă o interfață de utilizator bazată pe GTK+ și poate folosi atât OSS, cât și ALSA ca back-end audio. (doc)

GTK+

dactilograf

GNU Typist este un tutore universal de tastare. Poate fi folosit pentru a învăța și a exersa tastarea tactilă. Sunt incluse mai multe tutoriale; pe lângă tutoriale pentru layout-ul standard QWERTY, există și tutoriale pentru layout-urile alternative Dvorak și Colemak, precum și pentru numpad. Tutorialele sunt în principal în limba engleză, totuși unele sunt furnizate în alte limbi. (doc)

Viclenie

Guile este GNU Ubiquitous Intelligent Language for Extensions, limba oficială de extensie a sistemului GNU. Este o implementare a limbajului Scheme care poate fi încorporată cu ușurință în alte aplicații pentru a oferi un mijloc convenabil de extindere a funcționalității aplicației fără a necesita rescrierea codului sursă. (doc)

Guile-cv

Guile-CV este o bibliotecă de programare funcțională Computer Vision pentru limbajul Guile Scheme. Guile-CV se bazează pe Vigra (Vision with Generic Algorithms). Acesta cuprinde o legare directă la vigra_c (un înveliș C la un subset al bibliotecii Vigra) și un API de nivel superior scris în Guile Scheme. (doc)

Guile-dbi

guile-dbi este o bibliotecă pentru Guile care oferă o interfață convenabilă pentru bazele de date SQL. Programarea bazelor de date cu guile-dbi este generică prin aceea că aceeași interfață de programare este prezentată indiferent de sistemul de bază de date utilizat. În prezent, acceptă MySQL, Postgres și SQLite3. (doc)

Gule-gnome

Include guile-clutter, guile-gnome-gstreamer, guile-gnome-platform (biblioteci pentru dezvoltatori GNOME) și guile-gtksourceview. (doc)

Gule-ncurses

guile-ncurses oferă legături de limbaj Guile pentru biblioteca ncurses. (doc)

Gule-opengl

Guile-OpenGL este o bibliotecă pentru Guile care oferă legături la API-ul grafic OpenGL. (doc)

Guile-SDL

Guile-SDL este un set de legături la Stratul Simple DirectMedia (SDL). Cu ele, programatorii Guile pot avea acces ușor la grafică, sunet și intrare pe dispozitiv (tastaturi, joystick-uri, șoareci etc.). (doc)

Guix

GNU Guix este un manager de pachete funcțional pentru sistemul GNU și este, de asemenea, o distribuție a acestuia. Include o imagine de mașină virtuală. Pe lângă caracteristicile obișnuite de gestionare a pachetelor, acceptă și upgrade-uri tranzacționale și roll-back, profiluri per utilizator și multe altele. Se bazează pe managerul de pachete Nix. (doc)

Şoaptă

GURGLE produce liste de rapoarte de baze de date din informații despre înregistrare și câmp dintr-un fișier. Utilizează raportul pentru a produce ieșiri în format (La)TeX, text simplu ASCII, troff, PostScript, HTML, XML sau orice alt format de ieșire bazat pe ASCII. Poate fi folosit pentru a produce corpuri mari de text în care părți mici ale textului sunt înlocuite cu informații din baza de date. GURGLE acceptă bazele de date GNUSQL, PostgreSQL, MySQL și CA-Ingres. (doc)

GNU GV este o interfață grafică cu utilizatorul pentru interpretul Ghostscript. Cu acesta, se poate vizualiza și naviga prin documente PostScript și PDF în X Windows. (doc)

GVPE

GNU Virtual Private Ethernet creează o rețea virtuală cu mai multe noduri folosind o varietate de protocoale de transport. Funcționează prin crearea de tuneluri criptate de la gazdă la gazdă între mai multe puncte finale. (doc)

GWL

GWL este un limbaj de flux de lucru care extinde limbajul declarativ Guix pentru gestionarea pachetelor pentru a automatiza execuția programelor. În plus, GWL poate folosi Grid Engine pentru a descărca execuția programului. (doc)

gxmessage

GNU gxmessage este un program care afișează ferestre de dialog, care afișează un mesaj utilizatorului și așteaptă acțiunea acestuia. Programul se iese apoi cu un cod de ieșire corespunzător răspunsului. (doc)

Gzip

GNU Gzip oferă utilitare de compresie și decompresie a datelor; extensia tipică este .gz . Spre deosebire de formatul zip, comprimă un singur fișier; ca urmare, este adesea folosit împreună cu gudron , rezultând .tar.gz sau .tgz , etc. (doc)

HaliFAX

HaliFAX acceptă trimiterea și vizualizarea faxurilor, inclusiv un wrapper în jurul comenzii lpr. Acest pachet caută un întreținător. (doc)

Sănătate

GNU Health este un sistem software medical gratuit, care include suport pentru evidențele medicale electronice (EMR), un sistem de informații spitalicești (HIS) și un sistem de informații medicale. Acceptă atât interfețele spaniolă, cât și engleză. Acesta a fost adoptat de Universitatea Națiunilor Unite pentru implementare și instruire și de mai multe spitale și ministere ale sănătății din întreaga lume. (doc)

Buna ziua

GNU Hello tipărește mesajul Hello, world! și apoi iese. Acesta servește ca exemplu de practici standard de codare GNU. Ca atare, acceptă argumente de linie de comandă, mai multe limbi și așa mai departe. (doc)

Help2man

GNU help2man este un program care convertește automat rezultatul argumentelor standard --help și --version din linia de comandă într-o pagină manuală. (doc)

Hp2xx

GNU hp2xx convertește grafica vectorială specificată în limbajul plotter HP-GL într-o varietate de formate grafice, atât pe vector, cât și pe raster, inclusiv EPS, PCX, IMG și formate destinate utilizării în documentele TeX. (doc)

httptunnel

GNU httptunnel creează o cale de date bidirecțională tunelizată în solicitările HTTP. Acest lucru permite utilizatorilor din spatele firewall-urilor să trimită și să primească date care altfel ar fi blocate, cum ar fi conexiunile telnet sau ssh. (doc)

Hurd

Hurd este nucleul pentru sistemul GNU, o înlocuire și o creștere a nucleelor ​​standard Unix. Este o colecție de protocoale pentru interacțiunea cu sistemul (sisteme de fișiere, rețele, autentificare) și serverele care le implementează. Subproiectele includ Mach, microkernel-ul pe care se bazează Hurd, care oferă un mecanism de comunicare de bază între procese și MIG, un generator de interfață pentru Mach. (doc)

hiperbolă

Hyperbole este un sistem de informații și hipertext programabil pentru GNU Emacs. Permite încorporarea hipertextului în documente, mesaje e-mail și articole de știri. Acest lucru permite controlul prin mouse al informațiilor afișate. (doc)

pisica de gheață

IceCat este versiunea GNU a browserului Firefox. Este un software complet gratuit, care nu recomandă pluginuri și suplimente non-gratuite. Are, de asemenea, funcții încorporate de protecție a confidențialității. (doc)

Idutils

Pachetul GNU idutils include instrumente pentru a crea un index de simboluri textuale utilizate într-o listă de nume de fișiere și apoi pentru a interoga acel index. Astfel, permite utilizatorului, de exemplu, să găsească toate utilizările unei anumite funcții într-un proiect de programare mare. Pe lângă gestionarea jetoanelor textuale, poate gestiona și constante numerice și conținutul șirurilor de caractere. (doc)

Ignuit

Ignuit este un instrument pentru a ajuta la memorarea de noi informații bazat pe sistemul flashcard Leitner. În acest sistem, cărțile noi sunt studiate cu o frecvență descrescătoare pe măsură ce îmbătrânesc, cu excepția cazului în care întâmpinați dificultăți de memorare, după care le întâlniți mai des. Cardurile pot include conținut audio, imagini și formule matematice încorporate, iar o colecție de carduri poate fi exportată în mai multe formate. (doc)

indentare

Indent este un program care face codul sursă mai ușor de citit prin reformatarea acestuia într-un stil consistent. Poate schimba stilul la unul dintre mai multe stiluri diferite, cum ar fi GNU, BSD sau K&R. Are o oarecare flexibilitate pentru a se ocupa de sintaxa incompletă sau malformată. GNU indent oferă mai multe extensii peste utilitarul standard. (doc)

inetutils

Inetutils este o colecție de programe comune de rețea, cum ar fi un client și un server ftp, un client și un server telnet și un client și un server rsh. (doc)

inklingreader

GNU InklingReader este un pachet care acceptă dispozitivul Wacom Inkling, inclusiv conversia datelor în diferite formate gratuite, funcții de editare de bază și un plugin Inkscape. (doc)

Intellifonts

GNU intlfonts conține fonturi X11 gratuite în formatele BDF și TrueType. Acestea acoperă în special un număr mare de caractere din diferite sisteme de scriere: europeană, asiatică, chineză, japoneză, coreeană, etiopică și altele. (doc)

JACAL

GNU JACAL este un program interactiv de matematică simbolică bazat pe Scheme. Manipulează și simplifică o serie de expresii matematice, cum ar fi ecuații, scalari, vectori și matrici. (doc)

Jami

Jami este un program de comunicare universală care respectă libertățile și confidențialitatea utilizatorilor săi. Jami folosește tabele hash distribuite pentru stabilirea comunicării. Acest lucru evită păstrarea registrelor centralizate ale utilizatorilor și stocarea datelor cu caracter personal. (doc)

java getopt

java-getopt oferă un port Java al funcției GNU getopt de la glibc. Acceptă analizarea atât a argumentelor de linie de comandă lungi, cât și scurte într-o manieră flexibilă, care este complet compatibilă cu versiunea C. (doc)

Jel

GNU JEL este o bibliotecă care permite unui program să accepte expresii definite de utilizator pentru a fi introduse și evaluate în timpul rulării. De fapt, expresiile sunt compilate de JEL la bytecode Java pentru a evita penalizarea de performanță de a adăuga expresii interpretate la un limbaj deja interpretat. (doc)

Java Training Wheels

GNU Java Training Wheels oferă o curbă de învățare mai puțin abruptă pentru a învăța să programați în Java. Sistemul este alimentat de un preprocesor care adaugă caracteristici la Java, cum ar fi o macrocomandă superfor și un sistem de includere a fișierelor, la fel ca preprocesorul limbajului C. (doc)

Jwhois

GNU jwhois este un client pentru protocolul WHOIS, care vă permite să interogați proprietarul unui nume de domeniu. Programul folosește un fișier de configurare extensibil pentru a determina cel mai potrivit server pentru a interoga și, după succes, afișează rezultatul utilizatorului, altfel poate redirecționa opțional interogarea către un alt server. (doc)

Kawa

GNU Kawa este o implementare a limbajului de programare Scheme care este construit pe platforma Java. Este astfel integrat convenabil cu Java și beneficiază de acest lucru având un compilator, tastare statică opțională și așa mai departe. Kawa servește și ca cadru pentru implementarea altor limbaje de programare pe platforma Java. În Kawa este inclus qexo, o implementare parțială a XQuery în Java. (doc)

picior

GNU Leg este un set de biblioteci pentru motoarele de jocuri și dezvoltarea jocurilor. Pe lângă biblioteci, include și editori de resurse concepute pentru a ușura crearea jocurilor. Pachetul este conceput pentru a fi generic și modular, acceptând multe stiluri diferite de jocuri. (doc)

Mai puțin

GNU less este un pager, un program care vă permite să vizualizați cantități mari de text în bucăți de dimensiunea unei pagini. Spre deosebire de pagerele tradiționale, permite mișcarea atât înapoi, cât și înainte prin document. De asemenea, nu trebuie să citească întregul fișier de intrare înainte de a începe, așa că pornește mai repede decât majoritatea editorilor de text. (doc)

Biblioteca GNU C

Biblioteca C GNU este biblioteca C standard a sistemului GNU. Acesta definește apelurile de sistem și alte funcționalități de bază necesare pentru a scrie programe în limbajul C. Se ocupă de funcționalități de nivel scăzut care comunică cu nucleul, cum ar fi gestionarea proceselor și fișierelor, precum și funcționalități de nivel superior, cum ar fi manipularea șirurilor de caractere sau gestionarea argumentelor din linia de comandă. (doc)

libcdio

Biblioteca GNU Compact Disc Input and Control Library (libcdio) este o bibliotecă pentru accesul la fișiere de imagine CD-ROM și CD. Acesta permite dezvoltatorului să adauge acces la CD la o aplicație fără a fi nevoit să-și facă griji cu privire la proprietățile CD-ROM-ului dependente de sistemul de operare și de dispozitiv sau de detaliile specifice ale formatelor de imagine CD. Include pycdio, o interfață Python pentru libcdio și libcdio-paranoia, o bibliotecă care oferă extracție audio fără agitație și fără erori de pe CD-uri. (doc)

Libdbh

libdbh oferă tabele hash bazate pe disc, oferind o căutare rapidă a perechilor cheie-valoare. În timp ce utilizarea sa este similară în general cu cea a (G)DBM, are un design diferit care acceptă utilizarea avansată, atipică. (doc)

Liberty Eiffel

Proiectul Liberty Eiffel este GNU Eiffel Compiler. Eiffel este un limbaj avansat de programare orientat pe obiecte care pune accent pe proiectarea și construcția de software de înaltă calitate și reutilizabil. Liberty Eiffel este un compilator Eiffel complet, mic și rapid, care include un compilator Eiffel la C, instrumente de documentare, o imprimantă drăguță, un depanator și diverse alte instrumente. Include, de asemenea, o bibliotecă mare de clase, precum și un set cuprinzător de pachete/legături pentru biblioteci de software gratuit răspândite. (doc)

libextractor

GNU libextractor este o bibliotecă pentru extragerea metadatelor din fișiere. Acceptă un număr foarte mare de formate de fișiere, inclusiv fișiere audio, fișiere de document și fișiere de arhivă. Fiecare format de fișier este implementat ca un plugin, astfel încât noi formate pot fi adăugate cu ușurință. Pachetul conține, de asemenea, un instrument de linie de comandă pentru a extrage metadate dintr-un fișier și a tipări rezultatele. (doc)

libgcrypt

Libgcrypt este o bibliotecă criptografică de uz general. Oferă blocurile de construcție criptografice standard, cum ar fi cifrurile simetrice, algoritmii hash, algoritmii cu cheie publică, funcțiile cu numere întregi mari și generarea de numere aleatorii. (doc)

libiconv

libiconv oferă o implementare a funcției iconv pentru sistemele cărora le lipsește. iconv este folosit pentru a converti codurile de caractere dintr-un program. Acceptă o mare varietate de codificări diferite. (doc)

Libidn

libidn este o bibliotecă care implementează specificațiile Stringprep, Punycode și IDNA. Acestea sunt folosite pentru a codifica și decoda nume de domenii internaționalizate. Include biblioteci native C, C# și Java. (doc)

Libmatheval

GNU libmatheval este o bibliotecă pentru a analiza și evalua expresiile simbolice introduse de utilizator ca text. Poate fi încărcat atât din C, cât și din Fortran. Interpretul este flexibil, acceptând orice număr de variabile de nume arbitrare, constante zecimale și simbolice, operatori unari și binari de bază și funcții matematice elementare. De asemenea, poate calcula derivate simbolice și exprima expresii în șiruri. (doc)

libmicrohttpd

GNU libmicrohttpd este un server HTTP mic, încorporabil, implementat ca bibliotecă C. Ușurează rularea unui server HTTP ca parte a unei alte aplicații. Biblioteca este complet compatibilă cu HTTP 1.1. Poate asculta pe mai multe porturi, acceptă patru modele diferite de threading și acceptă IPv6. Dispune, de asemenea, de funcții de securitate, cum ar fi autentificarea de bază și digest și suport pentru SSL3 și TLS. (doc)

librejs

LibreJS este un program de completare pentru GNU Icecat și alte browsere bazate pe Firefox. Detectează încărcarea codului JavaScript non-trivial și negratuit fără consimțământul dvs. atunci când navigați pe web. Codul JavaScript care este gratuit sau banal poate fi încărcat. (doc)

Libsigsegv

GNU libsigsegv este o bibliotecă pentru a gestiona erorile de pagină, care apar atunci când un program încearcă să acceseze o regiune de memorie indisponibilă, în modul utilizator. Prin prinderea și gestionarea erorilor de pagină, programul poate implementa memorie virtuală paginabilă, handlere de supraîncărcare a stivei și așa mai departe. (doc)

Libtasn1

GNU libtasn1 este o bibliotecă care implementează notația ASN.1. Este folosit pentru transmiterea de codificări neutre de mașină ale obiectelor de date în rețele de calculatoare, permițând validarea formală a datelor conform unor specificații. (doc)

libtool

GNU Libtool ajută la crearea și utilizarea bibliotecilor partajate, prin prezentarea unei singure interfețe consistente, portabile, care ascunde complexitatea obișnuită a lucrului cu biblioteci partajate pe platforme. (doc)

Libunistring

GNU libunistring este o bibliotecă care oferă funcții pentru a manipula șirurile Unicode și pentru a manipula șirurile C conform standardului Unicode. (doc)

Libxmi

GNU libxmi este o bibliotecă pentru rasterizarea graficelor vectoriale 2D pentru C și C++. Acceptă desenarea primitivelor 2D într-o matrice de pixeli furnizată de utilizator. De asemenea, acceptă specificarea stilurilor de linii sofisticate, cum ar fi modelele cu puncte multicolore. De asemenea, este acceptată umplerea și texturarea poligoanelor. (doc)

Fulger

GNU Lightning este o bibliotecă care generează cod în limbaj de asamblare în timpul rulării. Astfel, este util în crearea compilatoarelor Just-In-Time. Ea face abstract asupra CPU-ului țintă prin expunerea unui set de instrucțiuni RISC standardizate clienților. (doc)

Lilypond

GNU LilyPond este un compozitor muzical, care produce partituri de înaltă calitate. Muzica este introdusă într-un fișier text care conține secvențe de control care sunt interpretate de LilyPond pentru a produce documentul final. Este extensibil cu Guile. (doc)

Lims

GNU LIMS este un sistem de management al informațiilor de laborator. Este folosit pentru gestionarea unui laborator științific din orice domeniu. Constă dintr-un set de module pentru cadrul de management al întreprinderii Tryton, deci este flexibil la nevoile specifice ale laboratorului. De exemplu, sistemul include module pentru managementul probelor, integrarea echipamentelor de laborator, contabilitate și managementul stocurilor. (doc)

linux-libre

GNU Linux-Libre este o variantă gratuită (ca în libertate) a nucleului Linux. A fost modificat pentru a elimina toate bloburile binare care nu sunt libere. (doc)

Războiul lichid 6

GNU Liquid War 6 este un joc de acțiune unic, cu ritm rapid. Fiecare jucător controlează o bucată de lichid cu scopul de a cuceri întreaga hartă. Are 13 niveluri în mod implicit și peste 100 mai mult cu un pachet bonus; noile niveluri pot fi create cu ușurință folosind fișiere imagine simple. (doc)

Lispintro

Lrzsz

GNU lrzsz este un pachet de comunicații care acceptă protocoalele de transfer de fișiere XMODEM, YMODEM și ZMODEM. (doc)

lsh

GNU lsh este o implementare gratuită a protocolului SSH versiunea 2. Este folosit pentru a crea o linie de comunicare sigură între două computere, oferind acces shell la sistemul server de la client. Acesta oferă atât demonul server, cât și aplicația client, precum și instrumente pentru manipularea fișierelor cheie. (doc)

GNU M4 este o implementare a limbajului macro M4, care prezintă unele extensii peste alte implementări, dintre care unele sunt cerute de GNU Autoconf. Este folosit ca procesor macro, ceea ce înseamnă că procesează text, extinzând macro-urile pe măsură ce le întâlnește. Are și câteva funcții încorporate, de exemplu pentru a rula comenzi shell sau pentru a face aritmetică. (doc)

MAC Changer

GNU MAC Changer este un utilitar pentru vizualizarea și modificarea adreselor MAC ale dispozitivelor de rețea. Noile adrese pot fi setate explicit sau aleatoriu. Acestea pot include adrese MAC ale aceluiași furnizori sau altor furnizori de hardware sau, mai general, adrese MAC ale aceleiași categorii de hardware. (doc)

Poştaş

GNU Mailman este un software pentru gestionarea discuțiilor prin e-mail și a listelor de corespondență. Atât utilizatorii, cât și administratorii își desfășoară, în general, acțiunile într-o interfață web, deși sunt furnizate și interfețe de e-mail și linie de comandă. Sistemul dispune de arhivare încorporată, procesare automată de respingere, filtrare de conținut, livrare a rezumatului și multe altele. (doc)

Mailutils

GNU Mailutils este o colecție de programe pentru gestionarea, vizualizarea și procesarea corespondenței electronice. Conține atât utilitare, cât și demoni de server și toate funcționează într-un mod independent de protocol. Bibliotecile de bază sunt, de asemenea, disponibile, simplificând adăugarea de capabilități de e-mail la noul software. (doc)

Face

Make este un program care este folosit pentru a controla producția de executabile sau alte fișiere din fișierele sursă. Procesul este controlat dintr-un Makefile, în care dezvoltatorul specifică modul în care fiecare fișier este generat din sursa lui. Are o rezoluție puternică a dependenței și abilitatea de a determina când fișierele trebuie să fie regenerate după ce sursele lor se schimbă. GNU make oferă multe extensii puternice peste utilitarul standard. (doc)

MARST

GNU MARST este un traducător Algol-to-C. Pachetul constă din traducătorul în sine, o bibliotecă care conține procedurile Algol 60 necesare și un convertor care convertește programele Algol 60 existente din alte reprezentări în reprezentarea MARST. (doc)

Nonconformist, hoinar, ratacitor

GNU MAVERIK este un set de instrumente de dezvoltare care acceptă medii virtuale 3D și interacțiune cu acele medii. Se află deasupra unui motor de randare de nivel scăzut care utilizează OpenGL sau Mesa și oferă mecanisme pentru a reda diferite tipuri de obiecte, pentru a gestiona mediile și pentru a oferi suport pentru interacțiunea 3D. (doc)

Comandantul de la miezul nopții

GNU Midnight Commander este un manager de fișiere în linie de comandă, prevăzut într-un format comun cu două panouri. Pe lângă sarcinile standard de gestionare a fișierelor, cum ar fi copierea și mutarea, Midnight Commander acceptă și vizualizarea conținutului fișierelor pachetelor RPM și a altor arhive și gestionarea fișierelor de pe alte computere prin FTP sau FISH. Include, de asemenea, un editor de text puternic pentru deschiderea fișierelor text. (doc)

Macron

GNU Mcron este un înlocuitor complet pentru Vixie cron. Este folosit pentru a rula sarcini conform unui program, cum ar fi în fiecare oră sau în fiecare luni. Macron este scris în Guile, deci configurația lui poate fi scrisă în Scheme; formatul cron original este de asemenea acceptat. Acest pachet caută un întreținător. (doc)

MCSim

GNU MCSim este un pachet pentru a efectua simulări. Acceptă modele de simulare statistică sau deterministă prin simulări stocastice Monte Carlo sau simulări dinamice, bazate pe ODE. De asemenea, poate face inferență bayesiană prin simulări Monte Carlo cu lanțul Markov. (doc)

Kit de dezvoltare MIX

GNU MDK este Mix Development Kit, o emulare a calculatorului pedagogic MIX și a limbajului său de asamblare MIXAL. MIX are un procesor virtual cu caracteristici standard, cum ar fi registre, celule de memorie, un comutator de overflow, steaguri de comparație, dispozitive de intrare-ieșire și un set de instrucțiuni binare. Pachetul include un compilator, o mașină virtuală, o interfață grafică pentru mașina virtuală și multe altele. (doc)

spiridușul media

GNU MediaGoblin este o platformă gratuită de publicare media. Funcționează într-o manieră federalizată, eliberând utilizatorul de serviciile web centralizate. Suportă imagini, videoclipuri și audio. (doc)

Topire

GNU MELTING calculează entalpia, entropia și temperatura de topire a tranzițiilor helix-bobină ale unui duplex de acid nucleic. (doc)

MemPool

Biblioteca MemPool este o bibliotecă de alocare de memorie autonomă. Este o bibliotecă de alocare de blocuri care utilizează un singur pool de memorie de dimensiune fixă ​​pentru a aloca blocuri de memorie de dimensiuni variabile și exportă funcții similare cu malloc, realloc și free. Este destinat fie să simuleze ținte de memorie scăzută pe GNU/Linux și alte sisteme, fie să înlocuiască complet gestionarea memoriei sistemului. (doc)

Mes

GNU Mes își propune să ajute la crearea surselor complete de bootstrapping pentru sistemele GNU/Linux, cum ar fi GuixSD. Dispune de un interpret Scheme de auto-găzduire reciproc, scris într-un C simplu și un compilator C bazat pe Nyacc scris în Scheme compatibile GNU Guile. Biblioteca Mes C acceptă bootstrapping gcc. (doc)

Metahtml

GNU MetaHTML este un limbaj de programare pentru server conceput pentru World Wide Web. Are o sintaxă similară cu HTML și Lisp. Oferă o bibliotecă mare de funcții, inclusiv suport pentru prize, crearea de imagini și conexiuni la alte programe. (doc)

mifluz

GNU mifluz este o bibliotecă C++ pentru a stoca un index inversat full-text. Stochează aparițiile cuvintelor dintr-un set de texte astfel încât acestea să poată fi căutate ulterior. La căutarea unui cuvânt, indexul returnează lista documentelor care conțin acel cuvânt. (doc)

Mig

miscfiles

GNU Miscfiles este o colecție de fișiere de date comune. Acestea includ, de exemplu, abrevieri de țară, nume și orașe capitale; abrevieri și denumiri valutare; un indice de bune practici curente; o hartă a setului de caractere ASCII; o listă de coduri de aeroport din trei litere; și o listă de cuvinte în limba engleză. (doc)

Schema MIT/GNU

GNU/MIT Scheme este o implementare a limbajului de programare Scheme. Oferă un interpret, un compilator și un depanator. De asemenea, are un editor integrat asemănător Emacs și o bibliotecă mare de rulare. (doc)

Moe

GNU Moe este un editor de text puternic, dar simplu de utilizat. Funcționează într-o manieră fără model și prezintă un set intuitiv de legături de taste care atribuie un grad de severitate fiecărei taste; de exemplu, combinațiile de taste cu tasta Alt sunt pentru comenzi inofensive, cum ar fi mișcările cursorului, în timp ce combinațiile cu tasta Control sunt pentru comenzi care vor modifica textul. Caracteristicile mele mai multe ferestre, anulare/refacere nelimitată, lungime nelimitată a liniei, căutare și înlocuire globală și multe altele. (doc)

Motti

GNU Motti este un simplu joc de strategie multiplayer jucat într-un terminal. Obiectivul jocului este de a cuceri capitalele inamice prin ocuparea și încercuirea teritoriului. (doc)

mpc

GNU MPC este o bibliotecă C pentru efectuarea aritmeticii pe numere complexe. Acceptă o precizie arbitrară ridicată și rotunjește corect rezultatele. (doc)

Mpfr

GNU MPFR este o bibliotecă C pentru efectuarea de calcule cu precizie multiplă, în virgulă mobilă, cu rotunjire corectă. (doc)

Mpria

GNU MPRIA este o bibliotecă C pentru efectuarea de calcule aritmetice raționale cu o precizie arbitrar de mare. Se bazează pe biblioteca GMP. (doc)

mtools

GNU Mtools este un set de utilitare pentru accesarea discurilor MS-DOS dintr-un sistem GNU sau Unix. Acceptă nume lungi de fișiere și mai multe formate de disc. De asemenea, acceptă unele caracteristici specifice FAT, cum ar fi etichetele de volum și atributele de fișiere specifice FAT. (doc)

Nana

GNU Nana este un cadru pentru adăugarea de verificare a afirmațiilor, înregistrare și măsurare a performanței la programele C și C++. Operațiile pot fi fie implementate direct în C, fie prin generarea de comenzi de depanare. Funcțiile de verificare și înregistrare pot fi activate sau dezactivate la compilare sau la runtime. (doc)

Nano

GNU nano este un editor de text mic și simplu pentru utilizare într-un terminal. Pe lângă editarea de bază, acceptă: anulare/refacere, evidențierea sintaxelor, verificarea ortografică, justificarea, indentarea automată, potrivirea parantezelor, căutarea și înlocuirea interactivă (cu expresii regulate) și editarea mai multor fișiere. (doc)

Nano arhimede

nano-archimedes este un pachet gratuit pentru simulările sistemelor cuantice. Se bazează pe ecuația Wigner, o formulare a mecanicii cuantice în termenii unui spațiu-faz care este echivalent matematic cu ecuația Schroedinger. nano-archimedes implementează metoda Wigner Monte Carlo. Codul poate fi extins cu ușurință la teoria funcțională a densității (DFT) și simulări ab-initio dependente de timp. (doc)

Nblesteme

GNU Ncurses este o bibliotecă care oferă capabilități de a scrie text pe un terminal într-o manieră independentă de terminal. Acceptă tampoane și culori, precum și mai multe evidențieri și formează caractere. Este de obicei folosit pentru implementarea interfețelor utilizator pentru aplicațiile de linie de comandă. Biblioteca ncursesw însoțitoare oferă suport larg pentru caractere. (doc)

urzica

GNU Nettle este o bibliotecă criptografică de nivel scăzut. Este conceput pentru a se potrivi cu ușurință în aproape orice context. Poate fi inclus cu ușurință în seturile de instrumente criptografice pentru limbaje orientate pe obiecte sau în aplicațiile în sine. (doc)

Ocrad

GNU Ocrad este un program de recunoaștere optică a caracterelor bazat pe o metodă de extragere a caracteristicilor. Poate citi imagini în formate PBM, PGM sau PPM și produce text în formate de 8 biți sau UTF-8. (doc)

Octavă

GNU Octave este un limbaj interpretat de nivel înalt care este specializat pentru calcule numerice. Poate fi folosit atât pentru aplicații liniare, cât și neliniare și oferă un suport excelent pentru vizualizarea rezultatelor. Lucrul poate fi efectuat atât la linia de comandă interactivă, cât și prin fișiere script. (doc)

Oleo

GNU Oleo este un program pentru foi de calcul. Oferă atât o interfață terminală, cât și o interfață grafică pentru utilizator bazată pe LessTif. Dispune de combinații de taste familiare, asemănătoare Emacs. Acceptă multe funcții standard ale foilor de calcul, cum ar fi macrocomenzi și funcții. (doc)

OrgaDoc

Doc este un sistem pentru întreținerea cu ușurință a unui grup de documente între computere. Documentele sunt sincronizate prin rsync sau unison; nu este necesară nicio bază de date sau server HTTP. (doc)

oSIP

GNU oSIP este o implementare a protocolului SIP. Este folosit pentru a furniza software pentru dezvoltatori multimedia și telecomunicații o interfață pentru a iniția și controla sesiunile SIP. (doc)

Panoramă

GNU Panorama este un cadru pentru producerea de grafică 3D. Poate efectua diverse efecte, cum ar fi estomparea focală, surse de lumină arbitrare, maparea denivelărilor și mai multe efecte de lumină. (doc)

paralel

GNU Parallel este un instrument pentru executarea de joburi shell în paralel folosind unul sau mai multe computere. Joburile pot consta din comenzi unice sau din scripturi și sunt executate pe liste de fișiere, gazde, utilizatori sau alte elemente. (doc)

Despărțit

GNU Parted este un pachet pentru crearea și manipularea tabelelor de partiții ale discurilor. Include o bibliotecă și un utilitar de linie de comandă. (doc)

Plasture

Patch este un program care aplică modificări fișierelor pe baza diferențelor stabilite de programul diff. Modificările pot fi aplicate unuia sau mai multor fișiere, în funcție de conținutul fișierului diff. Acceptă mai multe formate diferite. Poate fi folosit și pentru a anula diferențele aplicate anterior. (doc)

Paxutils

GNU paxutils este o suită de utilitare de arhivă. Conține versiuni ale arhivelor cpio, tar și pax. (doc)

pcb

GNU PCB este un instrument interactiv pentru editarea planurilor de circuite imprimate. Dispune de o implementare pentru cuib de șobolani, import de schema/listă de net și verificarea regulilor de proiectare. Include, de asemenea, un autorouter și un optimizator de urmărire; și poate produce imagini fotorealiste și de revizuire a designului. (doc)

Pem

GNU Pem este un instrument simplu de urmărire a veniturilor și cheltuielilor personale. Funcționează din linia de comandă și își stochează datele într-un format text de bază în directorul dvs. de acasă. Poate tipări cu ușurință rapoarte ale cheltuielilor dvs. pentru diferite cheltuieli printr-o funcție de căutare de bază. (doc)

Pexec

GNU pexec este un program pentru executarea de comenzi sau scripturi shell în paralel pe unul sau mai multe computere. Pe măsură ce funcționează, parametrii de execuție, cum ar fi variabilele de mediu sau intrarea, ieșirea și eroarea standard pot fi variați. (doc)

plăcinte

GNU pies este un program care supraveghează invocarea și execuția altor programe. Citește lista de programe care urmează să fie pornite din fișierul său de configurare, le execută și apoi le monitorizează starea, reexecuându-le după cum este necesar. (doc)

Plotutils

GNU Plotutils este un pachet pentru trasarea și lucrul cu grafică 2D. Include o bibliotecă, libplot , pentru C și C++ pentru exportul de grafică vectorială 2D în multe formate de fișiere. De asemenea, are suport pentru animații cu grafică vectorială 2D. Pachetul conține și programe de linie de comandă pentru trasarea datelor științifice. (doc)

Împungere

GNU poke este un editor interactiv, extensibil pentru date binare. Fără a se limita la editarea entităților de bază, cum ar fi biți și octeți, oferă un limbaj de programare interactiv și procedural cu drepturi depline, conceput pentru a descrie structurile de date și pentru a opera pe ele. (doc)

Proxyknife

GNU proxyknife este un instrument de validare a proxy-urilor gratuite din spatele unui firewall. Procesul de validare este complet personalizabil pentru a răspunde nevoilor dumneavoastră. (doc)

PSPP

GNU PSPP este un program de analiză statistică. Poate efectua statistici descriptive, teste T, regresie liniară și teste neparametrice. Dispune atât de interfață grafică, cât și de intrare în linia de comandă. PSPP este conceput pentru a interopera cu Gnumeric, LibreOffice și OpenOffice. Datele pot fi importate din foi de calcul, fișiere text și surse de baze de date și pot fi extrase în text, PostScript, PDF sau HTML. (doc)

Psychosynth

GNU Psychosynth este un soft-synth interactiv, modular. Emulează o suprafață 3D pe care modulele sunt plasate și manipulate, generând și modificând muzica. Psychosynth constă dintr-o bibliotecă C++, o interfață 3D și o interfață de linie de comandă. (doc)

Pth

GNU Pth este o bibliotecă portabilă care oferă o programare non-preemptivă, bazată pe prioritate, pentru mai multe fire de execuție. Fiecare thread are propriul contor de program, stiva de rulare, masca de semnal și variabilă errno. Thread-urile sunt programate într-un mod cooperant, mai degrabă decât în ​​modul standard preventiv, astfel încât să fie gestionate în funcție de priorități și evenimente. Cu toate acestea, Pth oferă și emularea firelor de execuție POSIX.1c (pthreads) pentru compatibilitate inversă. (doc)

pyconfigure

GNU pyconfigure oferă fișiere șablon pentru implementarea cu ușurință a scripturilor de configurare și Makefiles pentru pachete bazate pe Python, conforme cu standardele. Este proiectat să funcționeze împreună cu scripturile de configurare Python existente, facilitând integrarea în proiectele existente. Sunt disponibile macrocomenzi Autoconf puternice și flexibile, permițându-vă să faceți cu ușurință ajustări ale procedurii de instalare pe baza capacităților computerului țintă. (doc)

Qexo

R este un limbaj și un mediu pentru calcul statistic și grafică. Oferă o varietate de tehnici statistice, cum ar fi modelarea liniară și neliniară, teste statistice clasice, analiza serii temporale, clasificare și grupare. De asemenea, oferă suport solid pentru producerea de diagrame de date de calitate publicație. Sunt disponibile o cantitate mare de pachete de la terțe părți, crescând considerabil amploarea și domeniul de aplicare. (doc)

Rază

Radius este un server pentru autentificarea și contabilizarea utilizatorilor de la distanță. Este util în general pentru rețelele care necesită o autentificare centralizată și servicii de contabilitate pentru stațiile de lucru ale sale. Autentificarea poate fi efectuată într-o varietate de moduri, cum ar fi prin /etc/passwd sau acreditările stocate într-o bază de date SQL. (doc)

RCS

RCS este sistemul original de control al reviziilor. Funcționează pe bază de fișier cu fișier, spre deosebire de sistemele ulterioare de control al versiunilor, cum ar fi CVS, Subversion și Git. Acest lucru îl poate face potrivit pentru fișierele de administrare a sistemului, de exemplu, care sunt adesea în mod inerent locale pentru o singură mașină. (doc)

Citeste linia

Biblioteca GNU readline permite utilizatorilor să editeze linii de comandă pe măsură ce sunt introduse. Poate menține un istoric de căutare a comenzilor introduse anterior, permițându-vă să vă amintiți, editați și reintroduceți cu ușurință comenzile anterioare. Dispune de combinații de taste asemănătoare Emacs și vi-like, făcând utilizarea sa confortabilă pentru oricine. (doc)

Recutils

GNU Recutils este un set de instrumente și biblioteci pentru crearea și manipularea bazelor de date bazate pe text, editabile de om. În ciuda faptului că sunt bazate pe text, bazele de date create cu Recutils au toate caracteristicile așteptate, cum ar fi câmpuri unice, chei primare, mărci de timp și multe altele. Sunt acceptate multe tipuri de câmpuri diferite, la fel ca și criptarea. (doc)

Reftex

GNU RefTex este un pachet pentru implementarea etichetelor, referințelor, citărilor și indicilor în documentele LaTeX. Funcționează prin includerea a patru macrocomenzi LaTeX: etichetă, ref, citare și index. Automatizează sarcinile comune care sunt necesare în mod normal atunci când se utilizează aceste macrocomenzi. (doc)

telecomandă

GNU Remotecontrol este o aplicație web pentru gestionarea termostatelor HVAC cu IP și a altor dispozitive de automatizare a clădirilor. Aplicația poate citi și scrie date pe mai multe astfel de dispozitive. (doc)

rottlog

GNU Rot[t]log este un program pentru gestionarea fișierelor jurnal. Este folosit pentru a roti automat fișierele jurnal atunci când acestea au atins o anumită dimensiune sau conform unui anumit program. Poate fi folosit și pentru a comprima și arhiva automat astfel de jurnale. Rot[t]log va trimite prin e-mail rapoarte despre activitatea sa administratorului de sistem. (doc)

rpge

Motorul de jocuri de rol GNU oferă un motor pentru crearea de jocuri de rol grafice bidimensionale, oferind, de exemplu, o grilă de tip sprite-tiling, randare sprite și gestionarea evenimentelor. (doc)

Te grabesti

GNU Rush este un shell de utilizator restricționat, pentru sistemele pe care utilizatorii trebuie să aibă doar funcționalități sau resurse limitate. Administratorii setează drepturile utilizatorului printr-un fișier de configurare care poate fi utilizat pentru a limita, de exemplu, comenzile care pot fi executate, timpul CPU sau utilizarea memoriei virtuale. (doc)

Sather

GNU Sather este un limbaj de programare orientat pe obiecte similar cu Eiffel. Este conceput pentru a fi simplu, eficient, sigur și neproprietar. Dispune de colectare a gunoiului, tastare puternică verificată static, moștenire multiplă, clase parametrizate și multe altele. Acest pachet constă dintr-un compilator, o bibliotecă de clase, manualul de specificare a limbajului și de programare și un browser pentru afișarea surselor și graficelor direcționate ale moștenirii clasei. (doc)

SCM

GNU SCM este o implementare a Scheme. Această implementare include Hobbit, un compilator Scheme-to-C, care poate genera fișiere C ale căror binare pot fi legate dinamic sau static cu un executabil SCM. (doc)

Ecran

GNU Screen este un manager de ferestre de terminal care multiplexează un singur terminal între mai multe procese. Terminalele virtuale oferă fiecare caracteristici precum un buffer de defilare înapoi și un mecanism de copiere și inserare. Screen gestionează apoi diferitele terminale virtuale, permițându-vă să comutați cu ușurință între ele, să le detașați din sesiunea curentă sau chiar să divizați vizualizarea pentru a afișa două terminale simultan. (doc)

sed

Sed este un editor de flux de text non-interactiv. Primește o intrare de text dintr-un fișier sau dintr-o intrare standard și apoi aplică o serie de comenzi de editare a textului fluxului și își imprimă rezultatul la ieșirea standard. Este adesea folosit pentru înlocuirea modelelor de text într-un flux. Implementarea GNU oferă mai multe extensii peste utilitarul standard. (doc)

Serviți

GNU Serveez este un cadru de server care oferă rutinele necesare pentru a implementa cu ușurință servere bazate pe IP în aplicația dvs. Demonstrează aspecte ale programării în rețea într-o manieră portabilă, făcându-l convenabil atât pentru simplificarea procesului de adăugare a unui server la aplicația dvs., cât și pentru a afla cum funcționează serviciile de rețea. Există deja câteva exemple de servere, cum ar fi un server HTTP și un server IRC. (doc)

Sharutils

GNU sharutils este un pachet pentru crearea și manipularea arhivelor shell care pot fi trimise cu ușurință prin e-mail. O arhivă shell este un fișier care poate fi procesat de un shell de tip Bourne pentru a despacheta colecția originală de fișiere. Acest pachet este în principal pentru compatibilitate și interes istoric. (doc)

Păstor

GNU Shepherd este un daemon de gestionare a demonilor, ceea ce înseamnă că supraveghează execuția serviciilor de sistem, înlocuind funcționalitatea similară întâlnită în sistemele init tipice. Oferă gestionarea dependențelor printr-o interfață convenabilă și se bazează pe GNU Guile. (doc)

Shishi

GNU Shishi este o implementare gratuită a sistemului de securitate a rețelei Kerberos 5. Este folosit pentru a permite nodurilor de rețea nesecurizate să comunice într-o manieră sigură prin autentificarea reciprocă client-server prin intermediul biletelor. (doc)

Shmm

GNU SHMM este un manager de memorie partajată. Poate citi sau scrie în memoria partajată. De asemenea, acceptă și alte comenzi, cum ar fi blocarea sau deblocarea unui bloc de memorie partajată identificat prin cheie și dimensiune. (doc)

Shtool

GNU shtool este un instrument shell multifuncțional. Poate îndeplini funcțiile multor comenzi diferite, pentru a oferi un singur instrument de distribuit cu o distribuție sursă pentru a asigura portabilitatea scripturilor shell. De exemplu, shtool poate efectua sarcinile comenzilor comune install , mkdir sau echo pe sistemele cărora le lipsesc. (doc)

Sipwitch

GNU SIP Witch este un server Voice-over-IP peer-to-peer care utilizează protocolul SIP. Apelurile pot fi efectuate din spatele firewall-urilor NAT și fără a fi nevoie de un furnizor de servicii. Designul său peer-to-peer asigură că nu există un punct central pentru interceptarea sau captarea media și, astfel, poate fi folosit pentru a construi un sistem de telefonie securizat care funcționează pe internetul public. (doc)

SLIB

GNU SLIB este o bibliotecă comună portabilă pentru limbajul de programare Scheme. Acceptă o mare varietate de implementări Scheme diferite, oferindu-le un cadru pentru utilizarea pachetelor de proceduri și sintaxă Scheme. (doc)

Convorbire scurtă

GNU Smalltalk este o implementare gratuită a limbajului Smalltalk. Implementează standardul ANSI pentru limbaj și include, de asemenea, clase suplimentare, cum ar fi cele pentru rețea și programare GUI. (doc)

Solfege

GNU Solfege este un program pentru exersarea urechii muzicale. Cu el, vă puteți exersa recunoașterea diferitelor intervale și acorduri muzicale. Dispune de o prezentare generală a statisticilor, astfel încât să vă puteți monitoriza progresul în mai multe sesiuni. Solfege este, de asemenea, conceput pentru a fi extensibil, astfel încât să vă puteți scrie cu ușurință propriile lecții. (doc)

diagramă spațială

GNU SpaceChart vă permite să vedeți cum sunt distribuite stelele în spațiul tridimensional. Vă permite, de exemplu, să determinați distanțele dintre stele, să le vizualizați din orice punct de vedere sau să vă filtrați vederea după clasa spectrală și luminozitate. (doc)

Speex

GNU Speex este un codec de compresie audio fără brevet special conceput pentru vorbire. Este bine adaptat la aplicațiile de internet precum VoIP. Dispune de compresie a diferitelor benzi în același flux de biți, codificare stereo de intensitate și detectarea activității vocii. (doc)

Vraja

Spell este un program de verificare ortografică din linia de comandă. Citește o intrare de text și imprimă fiecare cuvânt greșit pe o linie proprie. Este implementat ca un wrapper pentru GNU aspell sau ispell. (doc)

Sqltutor

GNU Sqltutor este un tutorial SQL interactiv, bazat pe web. Dispune de mai multe tutoriale disponibile în diferite limbi. Tutorialele prezintă o serie de întrebări într-un dialog și, când sunt finalizate, afișează o evaluare finală care include răspunsuri corecte pentru soluții greșite. (doc)

src-highlite

GNU source-highlight citește într-un fișier de cod sursă și produce un fișier de ieșire în care cuvintele cheie sunt evidențiate în culori diferite pentru a desemna rolul lor sintactic. Acceptă peste 150 de limbi diferite și poate scoate 8 formate diferite, inclusiv HTML, LaTeX și ODF. De asemenea, poate scoate secvențe de evadare de culoare ANSI, astfel încât codul sursă evidențiat să poată fi văzut într-un terminal. (doc)

Widget pentru foaie de calcul

Un widget Gtk+ care oferă o matrice bidimensională pentru a vizualiza și manipula date tabulare similare cu cele oferite de programele populare de foi de calcul. Designul urmează paradigma model-vedere-controller și este O(1) atât în ​​timp, cât și în spațiu, oferind o funcționare foarte rapidă și eficientă chiar și pe date foarte mari. Sunt incluse funcții precum tăierea și lipirea, glisarea și fixarea etc. (doc)

Stow

GNU Stow este un manager de linkuri simbolice. Acesta generează legături simbolice către directoare de date și le face să pară îmbinate în același director. Este folosit de obicei pentru gestionarea pachetelor software instalate din sursă, permițându-vă să le instalați separat în directoare distincte și apoi să creați legături simbolice către fișierele dintr-un director comun, cum ar fi /usr/local. (doc)

Ciot

GNU STUMP este un program robomoderator pentru grupurile de știri și listele de corespondență USENET, cu moderare pe web. Acceptă moderarea grupului prin mai mulți moderatori umani. De asemenea, poate respinge automat mesajele neconforme fără intervenția umană. Include o interfață web. (doc)

superopt

GNU Superopt este un generator de secvențe de funcții pentru superoptimizare. Utilizează o abordare exhaustivă de generare și testare pentru a găsi cea mai scurtă secvență de instrucțiuni pentru o anumită funcție. (doc)

Swbis

Swbis este un sistem de administrare software specificat de POSIX. Dispune de management transparent la rețea a pachetelor software pentru administratorii de sistem. De exemplu, toate directoarele sistemului de fișiere pot fi copiate de la gazdă la gazdă într-o rețea într-o manieră transparentă. Pachetul include, de asemenea, metode avansate de creare tarball și mecanisme de verificare a integrității. (doc)

filtre de vorbire

Filtrele GNU Talk sunt programe care convertesc textul în limba engleză în dialecte stereotipe sau umoristice. Filtrele sunt furnizate ca o bibliotecă C, astfel încât pot fi integrate cu ușurință în alte programe. (doc)

Gudron

Tar oferă posibilitatea de a crea arhive tar, precum și capacitatea de a extrage, actualiza sau lista fișiere dintr-o arhivă existentă. Este util pentru combinarea mai multor fișiere într-un fișier mai mare, menținând în același timp structura directorului și informațiile despre fișiere, cum ar fi permisiunile și datele de creare/modificare. GNU tar oferă multe extensii peste utilitarul standard. (doc)

Termcap

GNU termcap este o bibliotecă și o bază de date care sunt utilizate pentru a permite utilizarea terminalelor de afișare într-o manieră independentă de terminal. Baza de date descrie capacitățile multor terminale de afișare diferite. Biblioteca poate adapta apoi instrucțiunile generalizate date de un program la capacitățile specifice ale terminalului de afișare, așa cum se găsește în baza de date. (doc)

Termutils

Pachetul GNU Termutils conține două programe, tput și tabs. tput este folosit în scripturile shell pentru a manipula afișarea terminalului, de exemplu prin ștergerea acestuia sau deplasarea cursorului într-un anumit punct, centrarea textului sau sublinierea textului. tabs este folosit pentru a specifica și a seta puncte de tablă hardware pe terminalele care îl acceptă. (doc)

Teseq

GNU Teseq este un program care analizează fișierele care conțin secvențe de control. Convertește secvențele pe care le întâlnește într-o descriere care poate fi citită de om a acțiunilor pe care le efectuează acele secvențe. De asemenea, își poate transla ieșirea înapoi în secvențe de control care pot fi citite de mașină. (doc)

TeX pentru nerăbdător

TeX for the Impatient este o carte de ~350 de pagini despre TeX, TeX simplu și Eplain, scrisă de Paul Abrahams, Kathryn Hargreaves și Karl Berry. (doc)

texinfo

Texinfo este formatul oficial de documentare al proiectului GNU. Utilizează un singur fișier sursă folosind comenzi explicite pentru a produce un document final în oricare dintre mai multe formate de ieșire acceptate, cum ar fi HTML sau PDF. Acest pachet include atât instrumentele necesare pentru a produce documente Info din sursa lor, cât și cititorul de informații din linia de comandă. Accentul limbajului se pune pe exprimarea conținutului semantic, evitând comenzile de marcare fizică. (doc)doc

Pachetul vc-dwim conține două instrumente, vc-dwim și vc-chlog . vc-dwim este un instrument care simplifică sarcina de a menține un jurnal de modificări și de a utiliza controlul versiunilor în același timp, de exemplu prin tipărirea unui memento când o modificare a fișierului a fost descrisă în jurnalul de modificări, dar fișierul nu a fost adăugat la VC. vc-chlog scanează fișierele modificate și generează intrări ChangeLog conforme cu standardele pe baza modificărilor pe care le detectează. (doc)

VCDImager

GNU VCDImager este o suită de programe pentru lucrul cu Video CD-uri și Super Video CD-uri. Poate fi folosit pentru crearea, dezasamblarea și analiza discurilor. Acceptă controlul complet al redării, elementele de redare pe segmente, completarea automată a fluxurilor MPEG din mers și extragerea CD-urilor video în fișiere. (doc)

Vera

V.E.R.A. (Virtual Entity of Relevant Acrononyms) este o listă de acronime de calcul distribuite ca document informativ. (doc)

Vmgen

GNU WB este un pachet de baze de date bazat pe disc, sortat, asociativ pentru C, Scheme, Java și C#. În loc să fie implementat prin hashing, WB folosește arbori B, care sunt optimizați pentru utilizarea numărului minim de operațiuni pe disc. (doc doc)

XBoard

GNU XBoard este o placă grafică pentru toate soiurile de șah, inclusiv șah internațional, xiangqi (șah chinez), shogi (șah japonez) și Makruk. Sunt acceptate și mai multe variante mai puțin cunoscute. Prezintă o interfață grafică complet interactivă și poate încărca și salva jocuri în Notația de joc portabilă. (doc)

Xlogmaster

GNU Xlogmaster este un program cu o interfață grafică de utilizator care vă permite să vă monitorizați jurnalele de sistem într-un mod convenabil. Jurnalele pot fi afișate cu filtre pentru evidențierea sau ascunderea liniilor. Programul poate fi folosit și pentru a automatiza luarea de acțiuni în cazul evenimentelor definite de utilizator. (doc)

Xnee

GNU Xnee este un program care poate înregistra, reda și distribui acțiunile utilizatorului în X11. Poate fi folosit pentru a automatiza interacțiunile utilizatorului în scopuri de testare sau demonstrație. (doc)

Xorriso

GNU Xorriso este un instrument pentru copierea fișierelor în și din ISO 9660 Rock Ridge, a.k.a. Sistemul de fișiere Compact Disc, sistemele de fișiere și permite manipularea lor în funcție de sesiune. Dispune de un formatator și inscripționare pentru CD, DVD și BD. Poate funcționa pe imagini ISO existente sau poate crea altele noi. xorriso poate fi apoi folosit pentru a copia fișiere direct în sau în afara fișierelor ISO. (doc)

Zile

GNU Zile este o clonă Emacs ușoară. Utilizarea este similară cu configurația implicită Emacs, dar are un set de funcții mult mai ușor. (

Publicat inițial în carte surse deschise. Richard Stallman a fost , dar a contribuit cu acest articol, astfel încât ideile mișcării software liber să nu lipsească cu totul din acea carte.

Prima comunitate de partajare de software

Când am început să lucrez la MIT Artificial Intelligence Lab în 1971, am devenit parte dintr-o comunitate de partajare a software-ului care exista de mulți ani. Partajarea de software nu a fost limitată la comunitatea noastră specială; este la fel de veche ca computerele, la fel cum împărtășirea rețetelor este la fel de veche ca și gătitul. Dar am făcut-o mai mult decât majoritatea.

Laboratorul AI a folosit un sistem de operare de partajare a timpului numit ITS (Sistemul de partajare a timpului incompatibil) pe care hackerii personalului laboratorului (1) l-au proiectat și scris în limbaj de asamblare pentru Digital PDP -10, unul dintre calculatoarele mari ale epocii. un membru al acestei comunități, un hacker de sistem al personalului AI Lab, treaba mea era să îmbunătățesc acest sistem.

Nu am numit software-ul nostru „software liber”, deoarece acel termen nu exista încă; dar asta a fost. Ori de câte ori oameni de la o altă universitate sau o companie au vrut să port și să folosească un program, le lăsăm cu plăcere. Dacă ați văzut pe cineva folosind un program necunoscut și interesant, ați putea oricând să cereți să vedeți codul sursă, astfel încât să îl puteți citi, să îl schimbați sau să canibalizați părți din acesta pentru a crea un program nou.

(1) Utilizarea termenului „hacker” pentru a însemna „rupător de securitate” este o confuzie din partea mass-media. Noi, hackerii, refuzăm să recunoaștem acest sens și continuăm să folosim cuvântul pentru a însemna pe cineva căruia îi place să programeze, pe cineva căruia îi place inteligența jucăușă sau combinația celor două. Vezi articolul meu, Despre hacking.

Prăbușirea comunității

Situația s-a schimbat drastic la începutul anilor 1980, când Digital a întrerupt seria PDP-10. Arhitectura sa, elegantă și puternică în anii '60, nu s-a putut extinde în mod natural la spațiile de adrese mai mari care deveneau fezabile în anii '80. Aceasta a însemnat că aproape toate programele care compun ITS erau învechite.

Comunitatea hackerilor AI Lab se prăbușise deja, cu puțin timp înainte. În 1981, compania spin-off Symbolics a angajat aproape toți hackerii din Laboratorul AI, iar comunitatea depopulată nu a putut să se mențină. (Cartea Hackers, de Steve Levy, descrie aceste evenimente, precum și oferă o imagine clară a acestei comunități în plină experiență.) Când Laboratorul AI a cumpărat un nou PDP-10 în 1982, administratorii săi au decis să folosească programul non-free al Digital. sistem de timesharing în loc de ITS.

Calculatoarele moderne ale epocii, precum VAX sau 68020, aveau propriile sisteme de operare, dar niciunul nu era software liber: trebuia să semnezi un acord de confidențialitate chiar și pentru a obține o copie executabilă.

Aceasta însemna că primul pas în folosirea unui computer a fost să promiți că nu-ți vei ajuta aproapele. O comunitate cooperantă a fost interzisă. Regula făcută de proprietarii de software proprietar a fost: „Dacă împărtășești cu vecinul tău, ești un pirat. Dacă doriți modificări, roagă-ne să le facem.”

Ideea că sistemul social de software proprietar – sistemul care spune că nu aveți voie să partajați sau să schimbați software – este antisocial, că nu este etic, că este pur și simplu greșit, poate fi o surpriză pentru unii cititori. Dar ce altceva am putea spune despre un sistem bazat pe împărțirea publicului și menținerea utilizatorilor neputincioși? Cititorii cărora li se pare surprinzătoare ideea este posibil să fi considerat sistemul social software proprietar ca un dat sau să l-au judecat în condițiile sugerate de companiile cu software proprietar. Editorii de software au muncit mult și din greu pentru a convinge oamenii că există o singură modalitate de a privi problema.

Când editorii de software vorbesc despre „aplicarea” „drepturilor” lor sau „oprirea pirateriei”, ceea ce ei de fapt Spune este secundar. Adevăratul mesaj al acestor afirmații este în ipotezele neenunțate pe care le consideră de la sine înțelese, pe care publicul este rugat să le accepte fără examinare. Prin urmare, să le examinăm.

O presupunere este că companiile de software au un drept natural incontestabil de a deține software și astfel au putere asupra tuturor utilizatorilor săi. (Dacă acesta ar fi un drept natural, atunci oricât de mult rău ar face publicului, nu am putea obiecta.) Interesant, Constituția SUA și tradiția juridică resping acest punct de vedere; Dreptul de autor nu este un drept natural, ci un monopol artificial impus de guvern care limitează dreptul natural de copiere al utilizatorilor.

O altă presupunere neenunțată este că singurul lucru important despre software este ce locuri de muncă vă permite să faceți - că nouă utilizatorilor de computere nu ar trebui să ne pese ce fel de societate avem voie să avem.

O a treia presupunere este că nu am avea niciun software utilizabil (sau nu am avea niciodată un program care să facă asta sau acea activitate specială) dacă nu am oferi unei companii putere asupra utilizatorilor programului. Această presupunere poate părea plauzibilă, înainte ca mișcarea de software liber să demonstreze că putem face o mulțime de software util fără a pune lanțuri pe el.

Dacă refuzăm să acceptăm aceste presupuneri și judecăm aceste probleme pe baza moralității obișnuite de bun simț, în timp ce plasăm utilizatorii pe primul loc, ajungem la concluzii foarte diferite. Utilizatorii de computere ar trebui să fie liberi să modifice programele pentru a se potrivi nevoilor lor și liberi să partajeze software, deoarece ajutarea altor oameni este baza societății.

O alegere morală cruntă

Cu comunitatea mea plecată, era imposibil să continui ca înainte. În schimb, m-am confruntat cu o alegere morală cruntă.

Alegerea ușoară a fost să mă alătur lumii software-ului proprietar, semnând acorduri de confidențialitate și promițând că nu-mi voi ajuta colegul hacker. Cel mai probabil aș dezvolta și software care a fost lansat în baza unor acorduri de confidențialitate, adăugând astfel presiunea asupra altor persoane de a-și trăda semenii.

Aș fi putut câștiga bani în acest fel și poate să mă distrez scriind cod. Dar știam că, la sfârșitul carierei mele, voi privi în urmă anii în care am construit ziduri pentru a împărți oamenii și voi simți că mi-am petrecut viața făcând lumea un loc mai rău.

Am avut deja experiența de a fi în primirea unui acord de confidențialitate, când cineva a refuzat să ne ofere mie și laboratorului MIT AI codul sursă pentru programul de control pentru imprimanta noastră. (Lipsa anumitor funcții din acest program a făcut ca utilizarea imprimantei să fie extrem de frustrantă.) Așa că nu mi-am putut spune că acordurile de confidențialitate erau nevinovate. Am fost foarte supărat când a refuzat să ne împărtășească; Nu puteam să mă întorc și să fac același lucru tuturor celorlalți.

O altă alegere, simplă, dar neplăcută, a fost să părăsești domeniul computerelor. În acest fel, abilitățile mele nu vor fi folosite greșit, dar tot vor fi irosite. Nu aș fi vinovat pentru împărțirea și restricționarea utilizatorilor de computere, dar s-ar întâmpla totuși.

Așa că am căutat o modalitate prin care un programator ar putea face ceva spre bine. M-am întrebat, există vreun program sau programe pe care să le scriu, pentru a face din nou posibilă o comunitate?

Răspunsul a fost clar: ceea ce era nevoie mai întâi a fost un sistem de operare. Acesta este software-ul crucial pentru a începe să utilizați un computer. Cu un sistem de operare, puteți face multe lucruri; fără unul, nu poți rula computerul deloc. Cu un sistem de operare gratuit, am putea avea din nou o comunitate de hackeri cooperanți – și am putea invita pe oricine să se alăture. Și oricine ar putea folosi un computer fără să înceapă prin a conspira pentru a-și priva prietenii.

Ca dezvoltator de sisteme de operare, aveam abilitățile potrivite pentru acest job. Așa că, deși nu puteam lua succesul de la sine înțeles, mi-am dat seama că am fost ales să fac treaba. Am ales să fac sistemul compatibil cu Unix, astfel încât să fie portabil și astfel încât utilizatorii Unix să poată trece cu ușurință la el. Numele GNU a fost ales, urmând tradiția hackerilor, ca acronim recursiv pentru „GNU’s Not Unix”. Se pronunță ca o silabă cu un g dur.

Un sistem de operare nu înseamnă doar un nucleu, abia suficient pentru a rula alte programe. În anii 1970, fiecare sistem de operare demn de acest nume includea procesoare de comandă, asamblare, compilatoare, interpreți, depanatoare, editori de text, mailere și multe altele. ITS le avea, Multics le avea, VMS le avea și Unix le avea. Sistemul de operare GNU le-ar include și pe acestea.

Mai târziu am auzit aceste cuvinte, atribuite lui Hillel (1):

Dacă nu sunt pentru mine, cine va fi pentru mine?
Dacă sunt doar pentru mine, ce sunt?
Daca nu acum, atunci cand?

Decizia de a începe Proiectul GNU sa bazat pe un spirit similar.

(1) Ca ateu, nu urmăresc niciun lider religios, dar uneori constat că admir ceva ce a spus unul dintre ei.

Liber ca în libertate

Termenul „software liber” este uneori greșit înțeles – nu are nimic de-a face cu prețul. Este vorba despre libertate. Iată, așadar, definiția software-ului liber.

Un program este software gratuit, pentru dvs., un anumit utilizator, dacă:

  • Aveți libertatea de a rula programul așa cum doriți, pentru orice scop.
  • Aveți libertatea de a modifica programul pentru a se potrivi nevoilor dvs. (Pentru a face această libertate efectivă în practică, trebuie să aveți acces la codul sursă, deoarece efectuarea de modificări într-un program fără a avea codul sursă este extrem de dificilă.)
  • Aveți libertatea de a redistribui copii, fie gratuit, fie contra cost.
  • Ai libertatea de a distribui versiuni modificate ale programului, astfel încât comunitatea să poată beneficia de îmbunătățirile tale.

Deoarece „gratuit” se referă la libertate, nu la preț, nu există nicio contradicție între vânzarea de copii și software-ul liber. De fapt, libertatea de a vinde copii este crucială: colecțiile de software gratuit vândute pe CD-ROM-uri sunt importante pentru comunitate, iar vânzarea lor este o modalitate importantă de a strânge fonduri pentru dezvoltarea de software liber. Prin urmare, un program pe care oamenii nu sunt liberi să îl includă în aceste colecții nu este un software liber.

Din cauza ambiguității cuvântului „liber”, oamenii au căutat de mult timp alternative, dar nimeni nu a găsit un termen mai bun. Limba engleză are mai multe cuvinte și nuanțe decât oricare alta, dar îi lipsește un cuvânt simplu, lipsit de ambiguitate, care să însemne „liber”, ca în libertate – „nelimitat” fiind cuvântul care se apropie cel mai mult în sens. Alternative precum „eliberat”, „libertate” și „deschis” au fie un înțeles greșit, fie un alt dezavantaj.

Software-ul GNU și sistemul GNU

Dezvoltarea unui întreg sistem este un proiect foarte mare. Pentru a-l aduce la îndemână, am decis să adaptez și să folosesc piese existente de software gratuit oriunde era posibil. De exemplu, am decis de la bun început să folosesc TeX ca format principal de text; câțiva ani mai târziu, am decis să folosesc X Window System în loc să scriu un alt sistem de ferestre pentru GNU.

Din cauza acestor decizii, și a altora asemănătoare lor, sistemul GNU nu este același cu colecția tuturor programelor GNU. Sistemul GNU include programe care nu sunt software GNU, programe care au fost dezvoltate de alți oameni și proiecte în scopuri proprii, dar pe care le putem folosi pentru că sunt software liber.

Demararea proiectului

În ianuarie 1984, mi-am părăsit slujba la MIT și am început să scriu software GNU. Părăsirea MIT a fost necesară pentru ca MIT să nu poată interfera cu distribuirea GNU ca software liber. Dacă aș fi rămas în personal, MIT ar fi putut pretinde că deține lucrarea și și-ar fi impus propriile condiții de distribuție sau chiar ar fi transformat lucrarea într-un pachet software proprietar. Nu aveam nicio intenție să fac o cantitate mare de muncă doar pentru a vedea că devine inutilă pentru scopul propus: crearea unei noi comunități de partajare a software-ului.

Cu toate acestea, profesorul Winston, pe atunci șeful Laboratorului MIT AI, m-a invitat cu amabilitate să folosesc în continuare facilitățile laboratorului.

Primii pași

Cu puțin timp înainte de a începe proiectul GNU, am auzit despre Free University Compiler Kit, cunoscut și sub numele de VUCK. (Cuvântul olandez pentru „gratuit” este scris cu a v.) Acesta a fost un compilator conceput pentru a gestiona mai multe limbi, inclusiv C și Pascal, și pentru a suporta mai multe mașini țintă. I-am scris autorului său întrebând dacă GNU îl poate folosi.

El a răspuns în derizoriu, afirmând că Universitatea a fost gratuit, dar compilatorul nu a fost. Prin urmare, am decis că primul meu program pentru Proiectul GNU va fi un compilator multilingv și multiplatform.

În speranța de a evita nevoia de a scrie singur întregul compilator, am obținut codul sursă pentru compilatorul Pastel, care era un compilator multiplatform dezvoltat la Lawrence Livermore Lab. A susținut și a fost scris în, o versiune extinsă a Pascal, concepută pentru a fi un limbaj de programare a sistemului. Am adăugat un front end C și am început să-l port pe computerul Motorola 68000. Dar a trebuit să renunț la asta când am descoperit că compilatorul avea nevoie de mulți megaocteți de spațiu pe stivă, iar sistemul Unix 68000 disponibil ar permite doar 64k.

Apoi mi-am dat seama că compilatorul Pastel a funcționat prin analizarea întregului fișier de intrare într-un arbore de sintaxă, conversia întregului arbore de sintaxă într-un lanț de „instrucțiuni” și apoi generând întregul fișier de ieșire, fără a elibera vreodată niciun spațiu de stocare. În acest moment, am ajuns la concluzia că va trebui să scriu un nou compilator de la zero. Noul compilator este acum cunoscut sub numele de GCC; nici un compilator Pastel nu este folosit în el, dar am reușit să adaptez și să folosesc front-end-ul C pe care îl scrisesem. Dar asta a fost câțiva ani mai târziu; mai întâi, am lucrat pe GNU Emacs.

GNU Emacs

Am început să lucrez la GNU Emacs în septembrie 1984, iar la începutul lui 1985 începea să fie utilizabil. Acest lucru mi-a permis să încep să folosesc sisteme Unix pentru a edita; neavând niciun interes să învăț să folosesc vi sau ed, îmi făcusem editarea pe alte tipuri de mașini până atunci.

În acest moment, oamenii au început să dorească să folosească GNU Emacs, ceea ce a ridicat întrebarea cum să-l distribuie. Desigur, l-am pus pe serverul ftp anonim de pe computerul MIT pe care l-am folosit. (Acest computer, prep.ai.mit.edu, a devenit astfel principalul site de distribuție ftp GNU; când a fost dezafectat câțiva ani mai târziu, am transferat numele pe noul nostru server ftp.) Dar la acel moment, mulți dintre cei interesați oamenii nu erau pe internet și nu puteau obține o copie prin ftp. Deci întrebarea a fost, ce le-aș spune?

Aș fi putut spune: „Găsiți un prieten care este pe net și care vă va face o copie”. Sau aș fi putut face ceea ce am făcut cu Emacs-ul original PDP-10: spune-le: „Trimite-mi o bandă și un SASE și o voi trimite înapoi cu Emacs-ul.” Dar nu aveam de lucru și căutam modalități de a câștiga bani din software-ul liber. Așa că am anunțat că voi trimite prin poștă o casetă oricui vrea una, pentru o taxă de 150 de dolari. În acest fel, am început o afacere de distribuție de software gratuit, precursorul companiilor care distribuie astăzi distribuții întregi de sisteme GNU/Linux.

Este un program gratuit pentru fiecare utilizator?

Dacă un program este software liber atunci când părăsește mâinile autorului său, asta nu înseamnă neapărat că va fi software gratuit pentru toți cei care au o copie a acestuia. De exemplu, software-ul din domeniul public (software care nu este protejat prin drepturi de autor) este software liber; dar oricine poate face o versiune modificată a acesteia. De asemenea, multe programe gratuite sunt protejate prin drepturi de autor, dar sunt distribuite sub licențe permisive simple care permit versiuni modificate proprietare.

Exemplul paradigmatic al acestei probleme este sistemul X Window. Dezvoltat la MIT și lansat ca software gratuit cu o licență permisivă, a fost adoptat în curând de diverse companii de calculatoare. Ei au adăugat X la sistemele lor proprietare Unix, numai în formă binară și acoperiți de același acord de confidențialitate. Aceste copii ale lui X nu erau mai mult software liber decât Unix.

Dezvoltatorii sistemului X Window nu au considerat aceasta o problemă – se așteptau și intenționau să se întâmple asta. Scopul lor nu era libertatea, ci doar „succesul”, definit ca „a avea mulți utilizatori”. Nu le păsa dacă acești utilizatori au libertate, doar că ar trebui să fie numeroși.

Acest lucru a condus la o situație paradoxală în care două moduri diferite de a număra cantitatea de libertate au dat răspunsuri diferite la întrebarea „Este acest program gratuit?” Dacă ați judeca pe baza libertății oferite de termenii de distribuție ai versiunii MIT, ați spune că X este software liber. Dar dacă ai măsura libertatea utilizatorului mediu de X, ar trebui să spui că a fost software proprietar. Majoritatea utilizatorilor X rulau versiunile proprietare livrate cu sistemele Unix, nu versiunea gratuită.

Copyleft și GNU GPL

Scopul GNU a fost să ofere utilizatorilor libertate, nu doar să fie populari. Așa că trebuia să folosim termeni de distribuție care să împiedice transformarea software-ului GNU în software proprietar. Metoda pe care o folosim se numește „copyleft”.(1)

Copyleft folosește legea dreptului de autor, dar o răstoarnă pentru a servi opusul scopului său obișnuit: în loc de un mijloc de restricționare a unui program, devine un mijloc de a menține programul liber.

Ideea centrală a copyleft-ului este că dăm tuturor permisiunea de a rula programul, copia programul, modifica programul și distribuie versiuni modificate, dar nu permisiunea de a adăuga restricții proprii. Astfel, libertățile cruciale care definesc „software liber” sunt garantate tuturor celor care dețin o copie; devin drepturi inalienabile.

Pentru un copyleft eficient, versiunile modificate trebuie să fie, de asemenea, gratuite. Acest lucru asigură că lucrările bazate pe ale noastre devin disponibile pentru comunitatea noastră dacă sunt publicate. Când programatorii care au locuri de muncă ca programatori se oferă voluntari pentru a îmbunătăți software-ul GNU, copyleft-ul îi împiedică pe angajatori să spună: „Nu puteți împărtăși acele modificări, pentru că le vom folosi pentru a face versiunea noastră proprietară a programului”.

Cerința ca modificările să fie gratuite este esențială dacă dorim să asigurăm libertate pentru fiecare utilizator al programului. Companiile care au privatizat sistemul X Window au făcut de obicei unele modificări pentru a-l porta pe sistemele și hardware-ul lor. Aceste modificări au fost mici în comparație cu marea întindere a lui X, dar nu au fost banale. Dacă efectuarea de modificări ar fi o scuză pentru a refuza libertatea utilizatorilor, ar fi ușor pentru oricine să profite de scuză.

O problemă conexă se referă la combinarea unui program gratuit cu cod non-free. O astfel de combinație ar fi inevitabil neliberă; oricare dintre libertățile lipsesc pentru partea neliberă ar lipsi și pentru întreg. A permite astfel de combinații ar deschide o gaură suficient de mare pentru a scufunda o navă. Prin urmare, o cerință crucială pentru copyleft este să astupe această gaură: orice adăugat sau combinat cu un program copyleft trebuie să fie astfel încât versiunea combinată mai mare să fie, de asemenea, liberă și cu copyleft.

Implementarea specifică a copyleft-ului pe care o folosim pentru majoritatea software-ului GNU este GNU General Public License sau GNU GPL pe scurt. Avem alte tipuri de copyleft care sunt folosite în circumstanțe specifice. Manualele GNU sunt, de asemenea, copyleft, dar folosesc un tip mult mai simplu de copyleft, deoarece complexitatea GNU GPL nu este necesară pentru manuale.(2)

(1) În 1984 sau 1985, Don Hopkins (un tip foarte imaginativ) mi-a trimis o scrisoare prin poștă. Pe plic scrisese mai multe proverbe amuzante, inclusiv aceasta: „Copyleft – toate drepturile sunt inversate”. Am folosit cuvântul „copyleft” pentru a denumi conceptul de distribuție pe care îl dezvoltam în acel moment.

Angajații Free Software Foundation au scris și întreținut o serie de pachete software GNU. Două notabile sunt biblioteca C și shell-ul. Biblioteca GNU C este ceea ce folosește fiecare program care rulează pe un sistem GNU/Linux pentru a comunica cu Linux. A fost dezvoltat de un membru al personalului Free Software Foundation, Roland McGrath. Shell-ul folosit pe majoritatea sistemelor GNU/Linux este BASH, Bourne Again Shell(1), care a fost dezvoltat de angajatul FSF Brian Fox.

Am finanțat dezvoltarea acestor programe deoarece Proiectul GNU nu era doar despre instrumente sau despre un mediu de dezvoltare. Scopul nostru a fost un sistem de operare complet, iar aceste programe erau necesare pentru acest scop.

(1) „Bourne Again Shell” este o joacă cu numele „Bourne Shell”, care era shell-ul obișnuit pe Unix.

Suport software gratuit

Filosofia software-ului liber respinge o practică specifică de afaceri larg răspândită, dar nu este împotriva afacerilor. Când afacerile respectă libertatea utilizatorilor, le dorim succes.

Vânzarea de copii ale Emacs demonstrează un fel de afacere cu software gratuit. Când FSF a preluat această afacere, aveam nevoie de o altă modalitate de a-mi câștiga existența. L-am găsit în vânzarea de servicii legate de software-ul gratuit pe care l-am dezvoltat. Aceasta a inclus predare, pentru subiecte precum cum să programați GNU Emacs și cum să personalizați GCC și dezvoltarea de software, mai ales portarea GCC pe noi platforme.

Astăzi, fiecare dintre aceste tipuri de afaceri cu software liber este practicat de o serie de corporații. Unii distribuie colecții de software gratuit pe CD-ROM; alții vând asistență la niveluri care variază de la răspunsul la întrebările utilizatorilor, la remedierea erorilor și la adăugarea de noi funcții majore. Începem chiar să vedem companii de software liber bazate pe lansarea de noi produse software libere.

Atenție, totuși – o serie de companii care se asociază cu termenul „sursă deschisă” își bazează de fapt afacerea pe software non-liber care funcționează cu software liber. Acestea nu sunt companii de software liber, sunt companii de software proprietar ale căror produse ispitesc utilizatorii de la libertate. Ei numesc aceste programe „pachete cu valoare adăugată”, ceea ce arată valorile pe care și-ar dori să le adoptăm: confortul mai presus de libertate. Dacă prețuim mai mult libertatea, ar trebui să le numim pachete „scăderea libertății”.

obiective tehnice

Scopul principal al GNU este să fie software liber. Chiar dacă GNU nu ar avea niciun avantaj tehnic față de Unix, ar avea un avantaj social, permițând utilizatorilor să coopereze, și un avantaj etic, respectând libertatea utilizatorului.

Dar a fost firesc să se aplice standardele cunoscute de bună practică în muncă – de exemplu, alocarea dinamică a structurilor de date pentru a evita limitele arbitrare de dimensiune fixă ​​și gestionarea tuturor codurilor posibile de 8 biți oriunde avea sens.

În plus, am respins concentrarea Unix pe dimensiunea mică a memoriei, hotărând să nu acceptăm mașinile pe 16 biți (era clar că mașinile pe 32 de biți vor fi norma până la terminarea sistemului GNU) și să nu facem niciun efort. pentru a reduce utilizarea memoriei dacă nu depășește un megaoctet. În programele pentru care manipularea fișierelor foarte mari nu era crucială, am încurajat programatorii să citească un întreg fișier de intrare în nucleu, apoi să-i scaneze conținutul fără a fi nevoiți să-și facă griji cu privire la I/O.

Aceste decizii au permis multor programe GNU să depășească omologii lor Unix în fiabilitate și viteză.

calculatoare donate

Pe măsură ce reputația proiectului GNU a crescut, oamenii au început să se ofere să doneze mașini care rulau Unix pentru proiect.Acestea au fost foarte utile, deoarece cea mai simplă modalitate de a dezvolta componente ale GNU a fost să o faci pe un sistem Unix și să înlocuiești componentele acelui sistem. de unul.Dar ei au ridicat o problemă etică: dacă era corect ca noi să avem deloc o copie a Unix.

Unix a fost (și este) software proprietar, iar filosofia Proiectului GNU spunea că nu ar trebui să folosim software proprietar.Dar, aplicând același raționament care duce la concluzia că violența în autoapărare este justificată, am ajuns la concluzia că utilizarea este legitimă. un pachet proprietar atunci când acesta era crucial pentru dezvoltarea unui înlocuitor gratuit care să-i ajute pe alții să nu mai folosească pachetul proprietar.

Dar, chiar dacă acesta a fost un rău justificat, a fost totuși un rău. Astăzi nu mai avem nicio copie a Unix, deoarece le-am înlocuit cu sisteme de operare gratuite. Dacă nu am putut înlocui sistemul de operare al unei mașini cu unul gratuit, am înlocuit mașina.

Lista de sarcini GNU

Pe măsură ce proiectul GNU a continuat și un număr tot mai mare de componente de sistem au fost găsite sau dezvoltate, în cele din urmă a devenit util să se facă o listă cu golurile rămase. L-am folosit pentru a recruta dezvoltatori care să scrie piesele lipsă. Această listă a devenit cunoscută ca Lista de sarcini GNU. Pe lângă componentele Unix lipsă, am enumerat diverse alte programe utile și proiecte de documentare pe care, ne-am gândit, un sistem cu adevărat complet ar trebui să le aibă.

Astăzi (1), aproape nicio componentă Unix este lăsată în Lista de sarcini GNU — acele lucrări au fost făcute, în afară de câteva neesențiale. Dar lista este plină de proiecte pe care unii le-ar putea numi „aplicații”. Orice program care atrage mai mult decât o clasă restrânsă de utilizatori ar fi un lucru util de adăugat la un sistem de operare.

Chiar și jocurile sunt incluse în lista de sarcini – și au fost încă de la început. Unix a inclus jocuri, așa că, în mod natural, ar trebui și GNU. Dar compatibilitatea nu a fost o problemă pentru jocuri, așa că nu am urmat lista de jocuri pe care Unix le avea. În schimb, am enumerat un spectru de diferite tipuri de jocuri pe care utilizatorii le-ar putea plăcea.

(1) Asta a fost scris în 1998. În 2009 nu mai menținem o listă lungă de sarcini. Comunitatea dezvoltă software gratuit atât de repede încât nici măcar nu le putem urmări pe toate. În schimb, avem o listă de Proiecte cu prioritate înaltă, o listă mult mai scurtă de proiecte pe care dorim cu adevărat să încurajăm oamenii să scrie.

Biblioteca GNU GPL

Biblioteca GNU C folosește un tip special de copyleft numit GNU Library General Public License(1), care dă permisiunea de a lega software-ul proprietar cu biblioteca. De ce să facem această excepție?

Nu este o chestiune de principiu; nu există niciun principiu care să spună că produsele software proprietare au dreptul să includă codul nostru. (De ce să contribui la un proiect bazat pe refuzul de a împărtăși cu noi?) Utilizarea LGPL pentru biblioteca C, sau pentru orice bibliotecă, este o chestiune de strategie.

Biblioteca C face o treabă generică; fiecare sistem proprietar sau compilator vine cu o bibliotecă C. Prin urmare, a face biblioteca noastră C disponibilă numai pentru software-ul liber nu i-ar fi oferit niciun avantaj software-ului liber - ar fi doar descurajat utilizarea bibliotecii noastre.

Un sistem este o excepție de la aceasta: pe sistemul GNU (și acesta include GNU/Linux), biblioteca GNU C este singura bibliotecă C. Deci, termenii de distribuție ai bibliotecii GNU C determină dacă este posibil să compilați un program proprietar pentru sistemul GNU. Nu există niciun motiv etic pentru a permite aplicații proprietare pe sistemul GNU, dar din punct de vedere strategic se pare că interzicerea acestora ar descuraja mai mult utilizarea sistemului GNU decât pentru a încuraja dezvoltarea de aplicații gratuite. De aceea, utilizarea Bibliotecii GPL este o strategie bună pentru biblioteca C.

Pentru alte biblioteci, decizia strategică trebuie luată în considerare de la caz la caz. Când o bibliotecă face o treabă specială care poate ajuta la scrierea anumitor tipuri de programe, atunci lansarea acesteia sub GPL, limitându-l doar la programele gratuite, este o modalitate de a ajuta alți dezvoltatori de software liber, oferindu-le un avantaj față de software-ul proprietar.

Luați în considerare GNU Readline, o bibliotecă care a fost dezvoltată pentru a oferi editare în linie de comandă pentru BASH. Readline este lansat sub GNU GPL obișnuit, nu GPL Library. Acest lucru probabil reduce cantitatea de Readline utilizată, dar asta nu este o pierdere pentru noi. Între timp, cel puțin o aplicație utilă a fost creată de software gratuit, în mod specific, astfel încât să poată folosi Readline, iar acesta este un real câștig pentru comunitate.

Dezvoltatorii de software proprietar au avantajele oferite de bani; dezvoltatorii de software liber trebuie să-și aducă avantaje unii altora. Sper că într-o zi vom avea o colecție mare de biblioteci acoperite de GPL care nu au nicio paralelă disponibilă cu software-ul proprietar, oferind module utile care să servească drept blocuri de construcție în noul software liber și adăugând un avantaj major pentru dezvoltarea ulterioară a software-ului liber.

(1) Această licență se numește acum Licența publică generală minoră GNU, pentru a evita ideea că toate bibliotecile ar trebui să o folosească. Vedeți De ce nu ar trebui să utilizați GPL mai mic pentru următoarea bibliotecă pentru mai multe informații.

Scărpinat o mâncărime?

Eric Raymond spune că „Orice muncă bună de software începe prin a zgâria mâncărimea personală a dezvoltatorului”. Poate că asta se întâmplă uneori, dar multe piese esențiale de software GNU au fost dezvoltate pentru a avea un sistem de operare complet gratuit.

De exemplu, am dezvoltat biblioteca GNU C pentru că un sistem asemănător Unix are nevoie de o bibliotecă C, BASH pentru că un sistem asemănător Unix are nevoie de un shell și GNU tar pentru că un sistem asemănător Unix are nevoie de un program tar. Același lucru este valabil și pentru propriile mele programe — compilatorul GNU C, GNU Emacs, GDB și GNU Make.

Unele programe GNU au fost dezvoltate pentru a face față unor amenințări specifice la adresa libertății noastre. Astfel, am dezvoltat gzip pentru a înlocui programul Compress, care a fost pierdut pentru comunitate din cauza brevetelor LZW. Am găsit oameni care să dezvolte LessTif și, mai recent, am început GNOME și Harmony, pentru a rezolva problemele cauzate de anumite biblioteci proprietare (vezi mai jos). Dezvoltăm GNU Privacy Guard pentru a înlocui popularul software de criptare neliber, deoarece utilizatorii nu ar trebui să aleagă între confidențialitate și libertate.

Desigur, cei care scriau aceste programe au devenit interesați de lucrare și multe caracteristici le-au fost adăugate de către diverși oameni de dragul propriilor nevoi și interese. Dar nu de aceea există programele.

evoluții neașteptate

La începutul Proiectului GNU, mi-am imaginat că vom dezvolta întregul sistem GNU, apoi îl vom lansa ca întreg. Nu așa s-a întâmplat.

Deoarece fiecare componentă a sistemului GNU a fost implementată pe un sistem Unix, fiecare componentă putea rula pe sisteme Unix cu mult înainte de a exista un sistem GNU complet. Unele dintre aceste programe au devenit populare, iar utilizatorii au început să le extindă și să le porteze — la diferite versiuni incompatibile de Unix și, uneori, și la alte sisteme.

Procesul a făcut aceste programe mult mai puternice și a atras atât fonduri, cât și contribuitori la Proiectul GNU. Dar, probabil, a întârziat și finalizarea unui sistem minim de funcționare cu câțiva ani, deoarece dezvoltatorii GNU au avut timp pentru menținerea acestor porturi și adăugarea de caracteristici la componentele existente, mai degrabă decât să treacă la scrierea unei componente lipsă după alta.

GNU Hurd

Până în 1990, sistemul GNU era aproape complet; singura componentă majoră lipsă a fost nucleul. Am decis să implementăm nucleul nostru ca o colecție de procese de server care rulează pe Mach. Mach este un microkernel dezvoltat la Universitatea Carnegie Mellon și apoi la Universitatea din Utah; GNU Hurd este o colecție de servere (adică o turmă de GNU-uri) care rulează pe Mach și fac diferitele sarcini ale nucleului Unix. Începutul dezvoltării a fost amânat deoarece așteptam ca Mach să fie lansat ca software gratuit, așa cum fusese promis.

Un motiv pentru alegerea acestui design a fost acela de a evita ceea ce părea a fi cea mai grea parte a muncii: depanarea unui program kernel fără un depanator la nivel sursă cu care să o facă. Această parte a lucrării fusese deja făcută, în Mach, și ne așteptam să depanăm serverele Hurd ca programe de utilizator, cu GDB. Dar a durat mult pentru a face acest lucru posibil, iar serverele multithreaded care își trimit mesaje unul altuia s-au dovedit a fi foarte greu de depanat. A face ca Hurd să funcționeze solid s-a extins de mulți ani.

Alix

Nucleul GNU nu trebuia inițial să fie numit Hurd. Numele său inițial era Alix – numit după femeia care era iubita mea la acea vreme. Ea, un administrator de sistem Unix, a subliniat cum numele ei s-ar potrivi unui model comun de denumire pentru versiunile de sistem Unix; în glumă, le-a spus prietenilor ei: „Cineva ar trebui să numească un sâmbure după mine”. Nu am spus nimic, dar am decis să o surprind cu un nucleu pe nume Alix.

Nu a ramas asa. Michael (acum Thomas) Bushnell, principalul dezvoltator al nucleului, a preferat numele Hurd și a redefinit Alix pentru a se referi la o anumită parte a nucleului - partea care ar capta apelurile de sistem și le-ar gestiona prin trimiterea de mesaje către serverele Hurd.

Mai târziu, eu și Alix ne-am despărțit și ea și-a schimbat numele; independent, designul Hurd a fost modificat astfel încât biblioteca C să trimită mesaje direct către servere, iar acest lucru a făcut ca componenta Alix să dispară din design.

Dar înainte să se întâmple aceste lucruri, o prietenă de-a ei a dat peste numele Alix în codul sursă Hurd și i-a menționat-o. Așa că a avut șansa de a găsi un nucleu care poartă numele ei.

Linux și GNU/Linux

GNU Hurd nu este potrivit pentru utilizare în producție și nu știm dacă va fi vreodată. Designul bazat pe capabilități are probleme care rezultă direct din flexibilitatea designului și nu este clar dacă există soluții.

Din fericire, un alt nucleu este disponibil. În 1991, Linus Torvalds a dezvoltat un nucleu compatibil Unix și l-a numit Linux. A fost proprietar la început, dar în 1992, el a făcut-o software gratuit; combinarea Linux cu sistemul GNU nu complet a rezultat într-un sistem de operare complet gratuit. (Combinarea lor a fost o muncă substanțială în sine, desigur.) Datorită Linuxului, putem rula de fapt o versiune a sistemului GNU astăzi.

Provocări în viitorul nostru

Avem capacitatea noastră dovedită de a dezvolta un spectru larg de software liber. Asta nu înseamnă că suntem invincibili și de neoprit. Mai multe provocări fac viitorul software-ului liber incert; îndeplinirea lor va necesita un efort constant și rezistență, uneori durand ani de zile. Va necesita genul de determinare pe care oamenii o manifestă atunci când își prețuiesc libertatea și nu vor lăsa pe nimeni să i-o ia.

Următoarele patru secțiuni discută aceste provocări.

hardware secret

Producătorii de hardware tind din ce în ce mai mult să păstreze secrete specificațiile hardware. Acest lucru face dificilă scrierea de drivere gratuite, astfel încât Linux și XFree86 să poată suporta hardware nou. Avem sisteme complete gratuite astăzi, dar nu le vom avea mâine dacă nu putem suporta computerele de mâine.

Există două moduri de a face față acestei probleme. Programatorii pot face inginerie inversă pentru a afla cum să suporte hardware-ul. Ceilalți dintre noi putem alege hardware-ul care este suportat de software liber; pe măsură ce numărul nostru crește, secretul specificațiilor va deveni o politică auto-înfrângătoare.

Ingineria inversă este o treabă mare; vom avea programatori cu suficientă hotărâre să o întreprindă? Da, dacă ne-am creat un sentiment puternic că software-ul liber este o chestiune de principiu, iar driverele care nu sunt libere sunt intolerabile. Și vor cheltui un număr mare dintre noi bani în plus, sau chiar puțin timp în plus, astfel încât să putem folosi drivere gratuite? Da, dacă hotărârea de a avea libertate este răspândită.

(Notă 2008: această problemă se extinde și la BIOS. Există un BIOS gratuit, LibreBoot (o distribuție a coreboot); problema este obținerea de specificații pentru mașini, astfel încât LibreBoot să le poată susține fără „blobs” non-libere.)

biblioteci non-libere

O bibliotecă non-free care rulează pe sisteme de operare libere acționează ca o capcană pentru dezvoltatorii de software liber. Caracteristicile atractive ale bibliotecii sunt momeala; dacă folosiți biblioteca, cădeți în capcană, deoarece programul dvs. nu poate face util parte dintr-un sistem de operare liber. (Strict vorbind, am putea include programul dvs., dar va câștiga" t alerga cu biblioteca lipsă.) Și mai rău, dacă un program care folosește biblioteca proprietară devine popular, poate atrage în capcană alți programatori nebănuiți.

Prima instanță a acestei probleme a fost trusa de instrumente Motif, încă din anii 80. Deși nu existau încă sisteme de operare gratuite, era clar ce problemă le va cauza Motif mai târziu. Proiectul GNU a răspuns în două moduri: cerând proiectelor individuale de software liber să sprijine widget-urile gratuite X Toolkit, precum și Motif și cerând cuiva să scrie un înlocuitor gratuit pentru Motif. Lucrarea a durat mulți ani; LessTif, dezvoltat de Hungry Programers, a devenit suficient de puternic pentru a suporta majoritatea aplicațiilor Motif abia în 1997.

Între 1996 și 1998, o altă bibliotecă de instrumente GUI non-liberă, numită Qt, a fost folosită într-o colecție substanțială de software gratuit, desktop-ul KDE.

Sistemele gratuite GNU/Linux nu au putut folosi KDE, deoarece nu am putut folosi biblioteca. Cu toate acestea, unii distribuitori comerciali ai sistemelor GNU/Linux care nu au fost stricti în a rămâne cu software-ul liber au adăugat KDE sistemelor lor - producând un sistem cu mai multe capabilități, dar mai puțină libertate. Grupul KDE încuraja în mod activ mai mulți programatori să folosească Qt, iar milioane de noi „utilizatori de Linux” nu fuseseră niciodată expuși ideii că există o problemă în acest sens. Situația părea sumbră.

Comunitatea de software liber a răspuns la problemă în două moduri: GNOME și Harmony.

GNOME, GNU Network Object Model Environment, este proiectul desktop GNU, început în 1997 de Miguel de Icaza și dezvoltat cu sprijinul Red Hat Software, GNOME și-a propus să ofere facilități desktop similare, dar folosind exclusiv software gratuit. avantaje, de asemenea, cum ar fi suportarea unei varietăți de limbaje, nu doar C++.

Harmony este o bibliotecă de înlocuire compatibilă, concepută pentru a face posibilă rularea software-ului KDE fără a utiliza Qt.

În noiembrie 1998, dezvoltatorii Qt au anunțat o schimbare a licenței care, atunci când va fi realizată, ar trebui să facă Qt software gratuit. Nu există nicio modalitate de a fi sigur, dar cred că acest lucru s-a datorat parțial răspunsului ferm al comunității la problema pe care a pus-o Qt atunci când nu era liber. (Noua licență este incomodă și inechitabilă, așa că rămâne de dorit să se evite utilizarea Qt.)

Cum vom răspunde la următoarea bibliotecă tentantă non-liberă? Va înțelege întreaga comunitate nevoia de a rămâne departe de capcană? Sau mulți dintre noi vor renunța la libertate pentru comoditate și vor produce o problemă majoră? Viitorul nostru depinde de filozofia noastră.

Brevete de software

Cea mai mare amenințare cu care ne confruntăm vine din brevetele de software, care pot interzice algoritmii și funcțiile software-ului gratuit timp de până la douăzeci de ani. Brevetele algoritmului de compresie LZW au fost solicitate în 1983 și încă nu putem lansa software gratuit pentru a produce GIF-uri comprimate adecvate. În 1998, un program gratuit care producea audio comprimat MP3 a fost scos din distribuție sub amenințarea unui proces de brevet.

Există modalități de a face față brevetelor: putem căuta dovezi că un brevet este invalid și putem căuta modalități alternative de a face o treabă. Dar fiecare dintre aceste metode funcționează doar uneori; când ambele eșuează, un brevet poate forța tuturor software-ului gratuit să lipsească anumite caracteristici pe care utilizatorii le doresc. După o lungă așteptare, brevetele expiră (se așteaptă ca brevetele MP3 să fi expirat până în 2018), dar ce vom face până atunci?

Aceia dintre noi care prețuiesc software-ul liber de dragul libertății vor rămâne oricum cu software-ul liber. Vom reuși să ducem la bun sfârșit munca fără caracteristicile brevetate. Dar cei care prețuiesc software-ul gratuit pentru că se așteaptă ca acesta să fie superior din punct de vedere tehnic sunt probabil să-l numească un eșec atunci când un brevet îl reține.Astfel, deși este util să vorbim despre eficacitatea practică a modelului de dezvoltare „bazar” și despre fiabilitatea și puterea unor programe libere, nu trebuie să ne oprim aici.libertate și principii.

Documentatie gratuita

Cea mai mare deficiență a sistemelor noastre de operare gratuite nu se află în software - este lipsa unor manuale gratuite bune pe care le putem include în sistemele noastre. Documentația este o parte esențială a oricărui pachet software; atunci când un pachet de software gratuit important nu vine cu un manual gratuit bun, aceasta este o lacună majoră. Avem multe astfel de lacune astăzi.

Documentația gratuită, ca și software-ul liber, este o chestiune de libertate, nu de preț. Criteriul pentru un manual gratuit este aproape același ca și pentru software-ul liber: este vorba de a oferi tuturor utilizatorilor anumite libertăți. Redistribuirea (inclusiv vânzarea comercială) trebuie permisă, online și pe hârtie, astfel încât manualul să poată însoți fiecare copie a programului.

Permisiunea pentru modificare este de asemenea esențială. Ca regulă generală, nu cred că este esențial ca oamenii să aibă permisiunea de a modifica tot felul de articole și cărți.De exemplu, nu cred că tu sau eu suntem obligați să acordăm permisiunea de a modifica articole ca acesta. , care descriu acțiunile și opiniile noastre.

Dar există un motiv special pentru care libertatea de modificare este crucială pentru documentația pentru software liber. Când oamenii își exercită dreptul de a modifica software-ul și de a adăuga sau de a modifica caracteristicile acestuia, dacă sunt conștiincioși, vor schimba și manualul, astfel încât să poată furniza documentație precisă și utilizabilă cu programul modificat. Un manual negratuit, care nu permite programatorilor să fie conștiincioși și să termine treaba, nu satisface nevoile comunității noastre.

Unele tipuri de limite ale modului în care se efectuează modificările nu reprezintă nicio problemă. De exemplu, cerințele de păstrare a notificării de copyright a autorului original, a termenilor de distribuție sau a listei de autori sunt OK. De asemenea, nu este nicio problemă să ceri versiuni modificate care să includă notificarea că au fost modificate, chiar și pentru a avea secțiuni întregi care ar putea să nu să fie șterse sau modificate, atâta timp cât aceste secțiuni tratează subiecte netehnice. Cu alte cuvinte, nu împiedică comunitatea de software liber să folosească pe deplin manualul.

Cu toate acestea, trebuie să fie posibilă modificarea tuturor tehnic conținutul manualului, apoi distribuiți rezultatul în toate mediile obișnuite, prin toate canalele obișnuite; în caz contrar, restricțiile obstrucționează comunitatea, manualul nu este gratuit și avem nevoie de un alt manual.

Dezvoltatorii de software liber vor avea conștientizarea și determinarea de a produce un spectru complet de manuale gratuite? Încă o dată, viitorul nostru depinde de filozofie.

Trebuie să vorbim despre libertate

Se estimează astăzi că există zece milioane de utilizatori ai sistemelor GNU/Linux, cum ar fi Debian GNU/Linux și Red Hat „Linux”. Software-ul liber a dezvoltat atât de avantaje practice încât utilizatorii se îngrămădesc la el din motive pur practice.

Consecințele bune ale acestui lucru sunt evidente: mai mult interes pentru dezvoltarea de software liber, mai mulți clienți pentru afaceri cu software liber și mai multă capacitate de a încuraja companiile să dezvolte software comercial liber în loc de produse software proprietare.

Dar interesul pentru software crește mai repede decât conștientizarea filozofiei pe care se bazează, iar acest lucru duce la probleme. Capacitatea noastră de a face față provocărilor și amenințărilor de mai sus depinde de voința de a rămâne ferm pentru libertate. Pentru a ne asigura că comunitatea noastră are această voință, trebuie să răspândim ideea noilor utilizatori pe măsură ce intră în comunitate.

Dar nu reușim să facem acest lucru: eforturile de a atrage noi utilizatori în comunitatea noastră depășesc cu mult eforturile de a le învăța cunoștințele civice ale comunității noastre. Trebuie să le facem pe amândouă și trebuie să menținem cele două eforturi în echilibru.

"sursa deschisa"

Învățarea noilor utilizatori despre libertate a devenit mai dificilă în 1998, când o parte a comunității a decis să nu mai folosească termenul „software liber” și să spună în schimb „software open source”.

Unii care au favorizat acest termen au urmărit să evite confuzia „liber” cu „gratis” – un scop valabil. Alții, însă, și-au propus să lase deoparte spiritul de principiu care a motivat mișcarea software-ului liber și proiectul GNU și să atragă în schimb directori și utilizatori de afaceri, mulți dintre ei deținând o ideologie care plasează profitul mai presus de libertate, mai presus de comunitate, de mai sus. principii. Astfel, retorica „sursei deschise” se concentrează pe potențialul de a face software puternic de înaltă calitate, dar evită ideile de libertate, comunitate și principiu.

Revistele „Linux” sunt un exemplu clar în acest sens – sunt pline de reclame pentru software proprietar care funcționează cu GNU/Linux. Când apare următorul Motif sau Qt, aceste reviste îi vor avertiza pe programatori să stea departe de el sau vor difuza reclame pentru el?

sprijinul afacerilor poate contribui la comunitate în multe feluri; toate celelalte fiind egale, este util. dar câștigarea sprijinului lor vorbind și mai puțin despre libertate și principiu poate fi dezastruos; aceasta înrăutățește și mai mult dezechilibrul anterior dintre educație și educație civică.

„Free software” și „open source” descriu aceeași categorie de software, mai mult sau mai puțin, dar spun lucruri diferite despre software și despre valori. Proiectul GNU continuă să folosească termenul „software liber”, pentru a exprima ideea că libertatea, nu doar tehnologia, este importantă.

Încerca!

Aforismul lui Yoda („Nu există nicio „încercare”) sună frumos, dar nu funcționează pentru mine. Mi-am făcut cea mai mare parte a muncii în timp ce eram îngrijorat dacă aș putea face treaba și nu sunt sigur că ar fi suficient pentru a atinge obiectivul dacă aș face-o. Dar am încercat oricum, pentru că nu era nimeni în afară de mine între inamic și orașul meu. Surprinzându-mă, uneori am reușit.

Uneori am eșuat; unele din orașele mele au căzut. Apoi am găsit un alt oraș amenințat și m-am pregătit pentru o altă luptă. De-a lungul timpului, am învățat să caut amenințări și să mă pun între ele și orașul meu, chemând alți hackeri să vină să mi se alăture.

În ziua de azi, de multe ori „nu sunt singurul. Este o ușurare și o bucurie când văd un regiment de hackeri care săpă pentru a ține linia și îmi dau seama că acest oraș poate supraviețui – deocamdată. Dar pericolele sunt mai mari fiecare. anul, iar acum Microsoft a vizat în mod explicit comunitatea noastră. „Nu putem să luăm viitorul libertății de la sine înțeles. Nu o lua de la sine înțeles! Dacă vrei să-ți păstrezi libertatea, trebuie să fii pregătit să o aperi.

GNU General Public License (GNU General Public License sau GNU Open License Agreement) - poate cea mai populară licență de software liberă, creată ca parte a proiectului GNU în 1988. Este, de asemenea, prescurtată ca GNU GPL sau chiar doar GPL, dacă contextul are sens că vorbim despre această licență specială (există destul de multe alte licențe care conțin cuvintele „licență publică generală” în titlu). A doua versiune a acestei licențe a fost lansată în 1991, cea de-a treia versiune, după mulți ani de muncă și lungi discuții, în 2007. Licența publică generală minoră GNU (LGPL) este o versiune slăbită a GPL pentru anumite biblioteci de software. Licența publică generală GNU Affero este o versiune îmbunătățită a GPL pentru programe destinate să fie accesate prin rețea.

Scopul GNU GPL este de a acorda utilizatorului dreptul de a copia, modifica și distribui (inclusiv comercial) programe (care în mod implicit este interzis de legea drepturilor de autor) și de a se asigura că utilizatorii tuturor programelor derivate primesc drepturile de mai sus. Principiul „moștenirii” drepturilor se numește „copyleft” (o transliterare a „copyleft” în engleză) și a fost inventat de Richard Stallman. Spre deosebire de GPL, licențele software proprietare oferă foarte rar utilizatorului astfel de drepturi și de obicei, dimpotrivă, încearcă să le limiteze, de exemplu, interzicând restaurarea codului sursă.

GPL acordă destinatarilor programelor de calculator următoarele drepturi sau „libertăți”:

* libertatea de a rula programul în orice scop;
* libertatea de a studia modul în care funcționează programul și de a-l modifica (o condiție prealabilă pentru aceasta este accesul la codul sursă);
* libertatea de distribuire a copiilor;
* libertatea de a îmbunătăți programul și de a lansa îmbunătățiri în domeniul public (o condiție prealabilă pentru aceasta este accesul la codul sursă).
o sursă

GNU OS

GNU este un acronim recursiv pentru GNU's Not UNIX - „GNU is not Unix!”) este un sistem de operare gratuit asemănător UNIX dezvoltat de Proiectul GNU.

Dezvoltarea sistemului GNU a început pe 27 septembrie 1983, când Richard Stallman a postat un anunț despre proiect pe grupurile de știri net.unix-wizards și net.usoft. La 5 ianuarie 1984, Stallman a demisionat de la Massachusetts Institute of Technology pentru a-și dedica timpul scrierii unui sistem de operare gratuit și, de asemenea, pentru ca institutul să nu poată revendica niciun drept asupra codului sursă al sistemului. Primul program GNU a fost editorul de text Emacs.

În prezent, sistemul GNU/Linux, mai cunoscut ca doar Linux, este destul de comun (mai ales pe piața serverelor) și este destul de complet. Acesta constă dintr-un număr mare de programe de proiect GNU (în primul rând utilități de sistem și lanțul de instrumente GNU), nucleul Linux - partea a sistemului responsabilă cu rularea altor programe, inclusiv drivere de dispozitiv etc. - și o varietate de alte programe gratuite.

Vizualizări