Кратка информация за проекта gnu. Какво представляват GNU и GPL? UNIX се доставят от производителите на компютри

Първоначално публикувана в книгата Отворени източници... Ричард Столман беше, но допринесе за тази статия, така че идеите на движението за свободен софтуер да не отсъстват напълно от тази книга.

Първата общност за споделяне на софтуер

Когато започнах да работя в лабораторията за изкуствен интелект на MIT през 1971 г., станах част от общност за споделяне на софтуер, която съществува от много години. Споделянето на софтуер не беше ограничено до нашата конкретна общност; старо е колкото компютрите, точно както споделянето на рецепти е старо като готвенето. Но го направихме повече от повечето.

AI Lab използва операционна система за споделяне на време, наречена ITS (Несъвместима система за споделяне на време), която хакерите на лабораторията (1) са проектирали и написали на асемблер за Digital PDP -10, един от големите компютри на епохата Като член на тази общност, хакер на система за персонал на AI Lab, моята работа беше да подобря тази система.

Ние не нарекохме нашия софтуер „свободен софтуер“, защото този термин все още не съществуваше; но това беше. Всеки път, когато хора от друг университет или компания искат да пренесат и използват програма, ние с удоволствие им позволяваме. Ако видите някой да използва непозната и интересна програма, винаги можете да поискате да видите изходния код, за да можете да го прочетете, да го промените или да канибализирате части от него, за да създадете нова програма.

(1) Използването на „хакер“ за означаване на „нарушител на сигурността“ е объркване от страна на средствата за масова информация. Ние, хакерите, отказваме да разпознаем това значение и продължаваме да използваме думата за означаване на някой, който обича да програмира, някой, който се наслаждава на игривото умение или комбинацията от двете. Вижте моята статия за хакването.

Разпадането на общността

Ситуацията се промени драстично в началото на 80-те години, когато Digital прекрати серията PDP-10. Архитектурата му, елегантна и мощна през 60-те години, не можеше да се простира естествено до по-големите адресни пространства, които ставаха осъществими през 80-те. Това означаваше, че почти всички програми, съставящи ITS, са остарели.

Хакерската общност на AI Lab вече беше рухнала, не много преди това. През 1981 г. отделената компания Symbolics е наела почти всички хакери от AI Lab и обезлюдената общност не е в състояние да се поддържа. (Книгата Hackers, от Стив Леви, описва тези събития, както и дава ясна картина на тази общност в разцвета си.) Когато AI Lab закупи нов PDP-10 през 1982 г., нейните администратори решиха да използват Digital " s несвободна система за споделяне на време вместо ITS.

Съвременните компютри от епохата, като VAX или 68020, имаха свои собствени операционни системи, но нито една от тях не беше безплатен софтуер: трябваше да подпишеш споразумение за неразкриване, дори за да получиш изпълнимо копие.

Това означаваше, че първата стъпка в използването на компютър е да обещаеш да не помагаш на съседа си. Сътрудничещата общност беше забранена. Правилото, въведено от собствениците на собствен софтуер, беше: „Ако споделяш със съседа си, ти си пират. Ако искате някакви промени, молете ни да ги направим."

Идеята, че социалната система на собствения софтуер – системата, която казва, че нямате право да споделяте или променяте софтуер – е антисоциална, че е неетична, че е просто погрешна, може да бъде изненада за някои читатели. Но какво друго бихме могли да кажем за система, основана на разделяне на обществото и поддържане на потребителите безпомощни? Читателите, които намират идеята за изненадваща, може би са приели социалната система на собствен софтуер като даденост или са я преценили според условията, предложени от фирмите със собствен софтуер. Издателите на софтуер са работили дълго и упорито, за да убедят хората, че има само един начин да погледнат на проблема.

Когато софтуерните издатели говорят за „налагане“ на своите „права“ или „спиране на пиратството“, какво всъщност казваме вторичен. Истинското послание на тези изявления е в неизказаните предположения, които те приемат за даденост, които обществеността е помолена да приеме без проверка. Затова нека ги разгледаме.

Едно от предположенията е, че софтуерните компании имат неоспоримо естествено право да притежават софтуер и по този начин да имат власт над всички негови потребители. (Ако това беше естествено право, то без значение колко вреда нанася на обществото, не бихме могли да възразим.) Интересното е, че Конституцията на САЩ и правната традиция отхвърлят това мнение; Авторското право не е естествено право, а изкуствен монопол, наложен от правителството, който ограничава „естественото право на копиране“ на потребителите.

Друго неизразено предположение е, че единственото важно нещо за софтуера е каква работа ви позволява да вършите – че ние, потребителите на компютри, не трябва да се интересуваме какво общество ни е позволено да имаме.

Трето предположение е, че не бихме имали използваем софтуер (или никога нямаше да имаме програма, която да върши тази или онази конкретна работа), ако не предложихме власт на компанията над потребителите на програмата. Това предположение може да е изглеждало правдоподобно, преди движението за свободен софтуер да демонстрира, че можем да създадем много полезен софтуер, без да поставяме вериги върху него.

Ако откажем да приемем тези предположения и преценим тези въпроси въз основа на обикновения морал на здравия разум, като поставяме потребителите на първо място, стигаме до много различни заключения. Потребителите на компютри трябва да имат свобода да променят програмите си, за да отговарят на техните нужди, и да споделят софтуер, защото помагането на други хора е основата на обществото.

Строг морален избор

След като моята общност си отиде, да продължа както преди беше невъзможно. Вместо това се изправих пред категоричен морален избор.

Лесният избор беше да се присъединя към света на собствения софтуер, подписвайки споразумения за неразкриване на информация и обещавайки да не помагам на моя колега хакер. Най-вероятно щях да разработвам и софтуер, който беше пуснат по силата на споразумения за неразкриване, като по този начин усили натиска върху други хора също да предадат своите събратя.

Можех да направя пари по този начин и може би да се забавлявам да пиша код. Но знаех, че в края на кариерата си ще погледна назад към годините на изграждане на стени, за да разделя хората, и ще почувствам, че съм прекарал живота си, правейки света по-лошо място.

Вече бях преживял, че получавам споразумение за неразкриване, когато някой отказа да ми даде и на MIT AI Lab изходния код за контролната програма за нашия принтер. (Липсата на определени функции в тази програма направи използването на принтера изключително разочароващо.) Така че не можех да си кажа, че споразуменията за неразкриване на информация са невинни. Бях много ядосан, когато той отказа да сподели с нас; Не можех да се обърна и да направя същото с всички останали.

Друг избор, лесен, но неприятен, беше да напусна компютърното поле. По този начин уменията ми няма да бъдат злоупотребени, но пак ще бъдат пропилени. Не бих бил виновен за разделянето и ограничаването на компютърните потребители, но въпреки това ще се случи.

Затова потърсих начин, по който програмист може да направи нещо за добро. Запитах се, има ли програма или програми, които мога да напиша, така че да направя една общност възможна отново?

Отговорът беше ясен: първо трябваше операционна система. Това е основният софтуер за започване на използване на компютър. С операционна система можете да правите много неща; без такъв изобщо не можете да стартирате компютъра. С безплатна операционна система отново бихме могли да имаме общност от сътрудничещи си хакери - и да поканим всеки да се присъедини. И всеки би могъл да използва компютър, без да започне, като заговорничи да лиши приятелите си.

Като разработчик на операционна система имах необходимите умения за тази работа. Така че, въпреки че не можех да приема успеха за даденост, осъзнах, че съм избран да върша работата. Избрах да направя системата съвместима с Unix, така че да бъде преносима и така че потребителите на Unix да могат лесно да преминат към нея. Името GNU беше избрано, следвайки традицията на хакерите, като рекурсивно съкращение за „GNU“ е Not Unix. Произнася се като една сричка с твърдо g.

Операционна система не означава само ядро, което едва е достатъчно за стартиране на други програми. През 70-те години на миналия век всяка операционна система, достойна за името, включваше командни процесори, асемблери, компилатори, интерпретатори, дебъгери, текстови редактори, мейлери и много други. ITS ги имаше, Multics ги имаше, VMS ги имаше и Unix ги имаше. Операционната система GNU също ще ги включва.

По-късно чух тези думи, приписвани на Хилел (1):

Ако не съм за себе си, кой ще бъде за мен?
Ако съм само за себе си, какво съм?
Ако не сега, кога?

Решението за стартиране на проекта GNU се основава на подобен дух.

(1) Като атеист, аз „не следвам никакви религиозни водачи, но понякога откривам, че се възхищавам на нещо, което някой от тях е казал.

Свободен като в свободата

Терминът „свободен софтуер“ понякога се разбира погрешно – няма нищо общо с цената. Става дума за свободата. Ето, следователно, определението за свободен софтуер.

Една програма е безплатен софтуер за вас, конкретен потребител, ако:

  • Имате свободата да стартирате програмата, както желаете, за всякакви цели.
  • Имате свободата да модифицирате програмата според вашите нужди. (За да направите тази свобода ефективна на практика, трябва да имате достъп до изходния код, тъй като извършването на промени в програма без изходния код е изключително трудно.)
  • Имате свободата да разпространявате копия безплатно или срещу заплащане.
  • Имате свободата да разпространявате модифицирани версии на програмата, така че общността да може да се възползва от вашите подобрения.

Тъй като „безплатно“ се отнася до свободата, а не до цената, няма противоречие между продажбата на копия и безплатния софтуер. Всъщност свободата да се продават копия е от решаващо значение: колекциите от безплатен софтуер, продавани на CD-ROM, са важни за общността и продажбата им е важен начин за набиране на средства за разработка на безплатен софтуер. Следователно програма, която хората не могат свободно да включват в тези колекции, не е безплатен софтуер.

Поради неяснотата на „безплатно“, хората отдавна търсят алтернативи, но никой не е намерил по-добър термин. Английският език има повече думи и нюанси от всеки друг, но му липсва проста, недвусмислена дума, която означава „свободен“, както в свободата – „неограничен“ е думата, която се доближава най-много по значение. Такива алтернативи като „освободен“, „свобода“ и „отворен“ имат или погрешно значение, или някакъв друг недостатък.

GNU софтуер и системата GNU

Разработването на цяла система е много голям проект. За да го достигна, реших да адаптирам и използвам съществуващите части от безплатен софтуер, където е възможно. Например, реших в самото начало да използвам TeX като основен формататор на текст; няколко години по-късно реших да използвам X Window System, вместо да пиша друга прозоречна система за GNU.

Поради тези решения и други подобни, системата GNU не е същата като колекцията от целия софтуер на GNU. Системата GNU включва програми, които не са софтуер на GNU, програми, които са разработени от други хора и проекти за собствени цели, но които можем да използваме, защото са свободен софтуер.

Стартиране на проекта

През януари 1984 г. напуснах работата си в MIT и започнах да пиша софтуер за GNU. Напускането на MIT беше необходимо, за да не може MIT да пречи на разпространението на GNU като свободен софтуер. Ако бях останал в персонала, MIT можеше да твърди, че притежава работата и можеше да наложи свои собствени условия за разпространение или дори да превърне работата в собствен софтуерен пакет. Нямах намерение да върша голямо количество работа, само за да видя, че става безполезен за предназначението си: създаване на нова общност за споделяне на софтуер.

Въпреки това професор Уинстън, тогава ръководител на лабораторията за изкуствен интелект в MIT, любезно ме покани да продължа да използвам съоръженията на лабораторията.

Първите стъпки

Малко преди да започна проекта GNU, чух за комплекта за компилатор на безплатния университет, известен също като VUCK. (Холандската дума за „безплатно“ се пише с a v.) Това беше компилатор, предназначен да обработва множество езици, включително C и Pascal, и да поддържа множество целеви машини. Писах до автора му с въпрос дали GNU може да го използва.

Той отговори насмешливо, заявявайки, че университетът е безплатен, но компилаторът не. Затова реших, че първата ми програма за проекта GNU ще бъде многоезичен, мултиплатформен компилатор.

Надявайки се да избегна необходимостта да напиша целия компилатор сам, получих изходния код за компилатора Pastel, който беше мултиплатформен компилатор, разработен в Lawrence Livermore Lab. Той поддържаше и беше написан на разширена версия на Pascal, проектирана да бъде език за системно програмиране. Добавих преден край на C и започнах да го пренасям към компютъра Motorola 68000. Но трябваше да се откажа от това, когато открих, че компилаторът се нуждае от много мегабайти пространство на стека, а наличната 68000 Unix система ще позволи само 64k.

Тогава разбрах, че компилаторът Pastel функционира, като анализира целия входен файл в синтактично дърво, преобразува цялото синтактично дърво във верига от „инструкции“ и след това генерира целия изходен файл, без изобщо да освобождава каквото и да било място за съхранение. В този момент стигнах до заключението, че ще трябва да напиша нов компилатор от нулата. Този нов компилатор вече е известен като GCC; в него не се използва нито един компилатор на Pastel, но успях да адаптирам и използвам предния край на C, който бях написал. Но това беше няколко години по-късно; първо, работих върху GNU Emacs.

GNU Emacs

Започнах да работя върху GNU Emacs през септември 1984 г. и в началото на 1985 г. той започна да се използва. Това ми позволи да започна да използвам Unix системи за редактиране; тъй като нямах интерес да се науча да използвам vi или ed, дотогава бях редактирал на други видове машини.

В този момент хората започнаха да искат да използват GNU Emacs, което повдигна въпроса как да го разпространяват. Разбира се, поставих го на анонимния ftp сървър на компютъра на MIT, който използвах. (Този компютър, prep.ai.mit.edu, по този начин се превърна в основния сайт за ftp разпространение на GNU; когато беше изведен от експлоатация няколко години по-късно, прехвърлихме името на нашия нов ftp сървър.) Но по това време много от заинтересованите хората не бяха в интернет и не можеха да получат копие по ftp. Така че въпросът беше какво да им кажа?

Бих могъл да кажа: „Намерете приятел, който е в мрежата и който ще направи копие за вас.“ Или можех да направя това, което направих с оригиналния PDP-10 Emacs: да им кажа: „Изпращам ми една лента и SASE и ще го изпратя обратно с Emacs върху него.“ Но нямах работа и търсех начини да печеля пари от безплатен софтуер. Затова обявих, че ще изпратя касета на всеки, който иска, срещу такса от 150 долара. По този начин започнах бизнес за разпространение на безплатен софтуер, предшественик на компаниите, които днес разпространяват цели дистрибуции на GNU/Linux.

Безплатна ли е програма за всеки потребител?

Ако дадена програма е свободен софтуер, когато напусне ръцете на своя автор, това не означава непременно, че ще бъде безплатен софтуер за всеки, който има копие от нея. Например софтуерът с обществено достояние (софтуер, който не е защитен с авторски права) е безплатен софтуер; но всеки може да направи собствена модифицирана версия на него. По същия начин много безплатни програми са защитени с авторски права, но се разпространяват под прости разрешителни лицензи, които позволяват собствени модифицирани версии.

Парадигматичният пример за този проблем е X Window System. Разработен в Масачузетския технологичен институт и пуснат като безплатен софтуер с разрешителен лиценз, той скоро беше приет от различни компютърни компании. Те добавиха X към своите собствени Unix системи, само в двоична форма и обхванати от същото споразумение за неразкриване. Тези копия на X не бяха по-свободен софтуер от Unix.

Разработчиците на X Window System не смятаха това за проблем - те очакваха и възнамеряваха това да се случи. Тяхната цел не беше свобода, а просто „успех“, дефиниран като „да имат много потребители“. Не ги интересуваше дали тези потребители имат свобода, само че трябва да са многобройни.

Това доведе до парадоксална ситуация, при която два различни начина за преброяване на количеството свобода дадоха различни отговори на въпроса „Безплатна ли е тази програма?“ Ако прецените въз основа на свободата, предоставена от условията за разпространение на изданието на MIT, бихте казали, че X е свободен софтуер. Но ако измерите свободата на средния потребител на X, ще трябва да кажете, че това е собствен софтуер. Повечето потребители на X работеха със собствените версии, които идваха с Unix системите, а не с безплатната версия.

Copyleft и GNU GPL

Целта на GNU беше да даде на потребителите свобода, а не просто да бъде популярен. Така че трябваше да използваме условия за разпространение, които биха попречили на софтуера на GNU да бъде превърнат в собствен софтуер. Методът, който използваме, се нарича "copyleft". (1)

Copyleft използва закона за авторското право, но го преобръща, за да служи обратното на обичайната му цел: вместо средство за ограничаване на програма, той се превръща в средство за запазване на програмата безплатна.

Основната идея на copyleft е, че ние даваме на всеки разрешение да стартира програмата, да копира програмата, да променя програмата и да разпространява модифицирани версии - но не и разрешение да добавя собствени ограничения. По този начин основните свободи, които определят „свободен софтуер“, са гарантирани на всеки, който има копие; те стават неотменими права.

За ефективен copyleft модифицираните версии също трябва да са безплатни. Това гарантира, че работата, базирана на нашата, става достъпна за нашата общност, ако бъде публикувана. Когато програмисти, които имат работа като програмисти, доброволно се заемат да подобрят софтуера на GNU, това е copyleft, който пречи на техните работодатели да кажат: „Не можете“ да споделяте тези промени, защото ние ще ги използваме, за да направим нашата собствена версия на програмата.

Изискването, че промените трябва да са безплатни, е от съществено значение, ако искаме да осигурим свобода за всеки потребител на програмата. Компаниите, които приватизираха X Window System, обикновено правеха някои промени, за да я пренесат към своите системи и хардуер. Тези промени бяха малки в сравнение с големия размер на X, но не бяха тривиални. Ако правенето на промени беше извинение за отказ на свободата на потребителите, за всеки би било лесно да се възползва от извинението.

Свързан въпрос се отнася до комбинирането на безплатна програма с несвободен код. Такава комбинация неизбежно би била несвободна; каквито свободи липсват за несвободната част, ще липсват и за цялото. Допускането на такива комбинации би отворило достатъчно голяма дупка, за да потопи кораб. Следователно, решаващо изискване за copyleft е да се запуши тази дупка: всичко, добавено към или комбинирано с copyleft програма, трябва да бъде такова, че по-голямата комбинирана версия също е безплатна и с copyleft.

Специфичната реализация на copyleft, която използваме за повечето софтуери на GNU, е GNU General Public License или накратко GNU GPL. Имаме и други видове copyleft, които се използват при специфични обстоятелства. Ръководствата на GNU също са с копилефт, но използвайте много по-прост вид копилефт, тъй като сложността на GNU GPL не е необходима за ръководствата. (2)

(1) През 1984 или 1985 г. Дон Хопкинс (много въображение) ми изпрати писмо. Върху плика той беше написал няколко забавни поговорки, включително тази: „Copyleft — всички права са обърнати“. Използвах думата „copyleft“, за да назова концепцията за разпространение, която разработвах по това време.

Служителите на Free Software Foundation са написали и поддържали редица софтуерни пакети на GNU. Две забележителни от тях са C библиотеката и обвивката. Библиотеката GNU C е това, което всяка програма, работеща на GNU / Linux система, използва за комуникация с Linux. Той е разработен от член на екипа на Фондация за свободен софтуер, Роланд Макграт. Обвивката, използвана в повечето GNU/Linux системи, е BASH, Bourne Again Shell (1), която е разработена от служителя на FSF Брайън Фокс.

Ние финансирахме разработването на тези програми, защото проектът GNU не беше само за инструменти или среда за разработка. Нашата цел беше цялостна операционна система и тези програми бяха необходими за тази цел.

(1) “Bourne Again Shell” е игра на името “Bourne Shell”, което беше обичайната обвивка в Unix.

Безплатна софтуерна поддръжка

Философията на свободния софтуер отхвърля специфична широко разпространена бизнес практика, но не е против бизнеса. Когато бизнесът уважава свободата на потребителите, ние им желаем успех.

Продажбата на копия на Emacs демонстрира един вид бизнес със свободен софтуер. Когато FSF пое този бизнес, имах нужда от друг начин да си изкарвам прехраната. Намерих го в продажбата на услуги, свързани с безплатния софтуер, който разработих. Това включваше преподаване за предмети като как да се програмира GNU Emacs и как да се персонализира GCC, както и разработка на софтуер, най-вече пренасяне на GCC към нови платформи.

Днес всеки от тези видове бизнес със свободен софтуер се практикува от редица корпорации. Някои разпространяват колекции от безплатен софтуер на CD-ROM; други продават поддръжка на нива, вариращи от отговаряне на потребителски въпроси, до коригиране на грешки, до добавяне на основни нови функции. Дори започваме да виждаме компании за безплатен софтуер, базирани на пускането на нови продукти за безплатен софтуер.

Внимавайте обаче – редица компании, които се свързват с термина „отворен код“, всъщност базират бизнеса си на несвободен софтуер, който работи със свободен софтуер. Това не са компании за безплатен софтуер, те са собствени софтуерни компании, чиито продукти изкушават потребителите далеч от свободата. Те наричат ​​тези програми „пакети с добавена стойност“, което показва ценностите, които биха искали да приемем: удобството над свободата. Ако ценим свободата повече, трябва да ги наречем пакети, извадени от свободата.

Технически цели

Основната цел на GNU е да бъде свободен софтуер. Дори ако GNU няма техническо предимство пред Unix, той ще има социално предимство, позволявайки на потребителите да си сътрудничат, и етично предимство, зачитайки свободата на потребителя.

Но беше естествено да се прилагат известните стандарти за добра практика към работата – например, динамично разпределяне на структури от данни, за да се избегнат произволни фиксирани ограничения на размера и обработка на всички възможни 8-битови кодове, където това има смисъл.

В допълнение, ние отхвърлихме фокуса на Unix върху малкия размер на паметта, като решихме да не поддържаме 16-битови машини (беше ясно, че 32-битовите машини ще бъдат норма, когато системата GNU бъде завършена) и да не полагаме усилия за намаляване на използването на памет, освен ако не надвишава мегабайт. В програми, за които обработката на много големи файлове не е от решаващо значение, ние насърчавахме програмистите да прочетат цял ​​входен файл в ядрото, след което да сканират съдържанието му, без да се притесняват за I/O.

Тези решения позволиха на много програми на GNU да надминат своите Unix колеги по надеждност и скорост.

Дарени компютри

С нарастването на репутацията на GNU Project, хората започнаха да предлагат да даряват на проекта машини, работещи под управлението на Unix. Те бяха много полезни, защото най-лесният начин за разработване на компоненти на GNU беше да го направите на Unix система и да замените компонентите на тази система една по една. Но те повдигнаха етичен въпрос: дали е правилно изобщо да имаме копие на Unix.

Unix беше (и е) собствен софтуер и философията на GNU Project казваше, че не трябва да използваме собствен софтуер. Но, прилагайки същите разсъждения, които водят до заключението, че насилието при самозащита е оправдано, стигнах до заключението, че е легитимно да използвате собствен пакет, когато това беше от решаващо значение за разработването на безплатен заместител, който ще помогне на другите да спрат да използват собствения пакет.

Но дори и това да беше оправдано зло, пак беше зло. Днес вече нямаме никакви копия на Unix, защото ги заменихме с безплатни операционни системи. Ако не можехме да заменим операционната система на машината с безплатна, вместо това сменяхме машината.

Списъкът със задачи на GNU

Тъй като проектът GNU продължаваше и нарастващият брой системни компоненти бяха открити или разработени, в крайна сметка стана полезно да се направи списък на останалите пропуски. Използвахме го, за да набираме разработчици да напишат липсващите парчета. Този списък стана известен като GNU Task List. В допълнение към липсващите компоненти на Unix, ние изброихме различни други полезни софтуерни и документационни проекти, които според нас трябва да има една наистина пълна система.

Днес (1) почти никакви компоненти на Unix не са останали в списъка със задачи на GNU — тези задачи бяха свършени, освен няколко несъществени. Но списъкът е пълен с проекти, които някои биха могли да нарекат „приложения“. Всяка програма, която се харесва на повече от тесен клас потребители, би било полезно нещо за добавяне към операционна система.

Дори игрите са включени в списъка със задачи - и са от самото начало. Unix включва игри, така че естествено GNU също трябва. Но съвместимостта не беше проблем за игрите, така че не следвахме списъка с игри, които Unix имаше. Вместо това изброихме спектър от различни видове игри, които потребителите биха могли да харесат.

(1) Това е написано през 1998 г. През 2009 г. вече не поддържаме дълъг списък със задачи. Общността разработва безплатен софтуер толкова бързо, че ние дори не можем да следим всичко. Вместо това имаме списък с проекти с висок приоритет, много по-кратък списък с проекти, които наистина искаме да насърчим хората да пишат.

Библиотеката GNU GPL

Библиотеката GNU C използва специален вид copyleft, наречен GNU Library General Public License (1), който дава разрешение за свързване на собствен софтуер с библиотеката. Защо да правим това изключение?

Не е въпрос на принцип; няма принцип, който да казва, че патентованите софтуерни продукти имат право да включват нашия код. (Защо да допринасяте за проект, основан на отказ да споделите с нас?) Използването на LGPL за библиотеката C или за всяка библиотека е въпрос на стратегия.

C библиотеката върши обща работа; всяка собствена система или компилатор идва с библиотека C. Следователно, да направим нашата библиотека C достъпна само за свободен софтуер, не би дало на свободния софтуер никакво предимство - това само би обезкуражило използването на нашата библиотека.

Една система е изключение от това: в системата GNU (и това включва GNU / Linux), библиотеката GNU C е единствената C библиотека. Така условията за разпространение на библиотеката GNU C определят дали е възможно да се компилира собствена програма за системата GNU. Няма етична причина да се разрешават патентовани приложения в системата GNU, но от стратегическа гледна точка изглежда, че забраняването им би направило повече за обезкуражаване на използването на GNU системата, отколкото за насърчаване на разработването на безплатни приложения. Ето защо използването на библиотеката GPL е добра стратегия за библиотеката C.

За други библиотеки стратегическото решение трябва да се разглежда за всеки отделен случай. Когато една библиотека върши специална работа, която може да помогне за писането на определени видове програми, тогава пускането й под GPL, ограничавайки само до безплатни програми, е начин да се помогне на други разработчици на безплатен софтуер, като им се даде предимство пред собствения софтуер.

Помислете за GNU Readline, библиотека, която е разработена да предоставя редактиране от командния ред за BASH. Readline се издава под обикновения GNU GPL, а не под GPL за библиотеката. Това вероятно намалява количеството, което се използва Readline, но това не е загуба за нас. Междувременно поне едно полезно приложение е създадено като безплатен софтуер специално, за да може да използва Readline и това е истинска печалба за общността.

Разработчиците на собствен софтуер имат предимствата, които парите предоставят; разработчиците на свободен софтуер трябва да правят предимства един за друг. Надявам се някой ден да имаме голяма колекция от библиотеки, обхванати от GPL, които нямат наличен паралел на собствен софтуер, предоставяйки полезни модули, които да служат като градивни елементи в новия безплатен софтуер и добавяйки до голямо предимство за по-нататъшно разработване на безплатен софтуер.

(1) Този лиценз сега се нарича GNU Lesser General Public License, за да се избегне идеята, че всички библиотеки трябва да го използват. Вижте защо не трябва да използвате по-малката GPL за следващата си библиотека за повече информация.

Почесване на сърбеж?

Ерик Реймънд казва, че „Всяка добра работа на софтуера започва с надраскване на личния сърбеж на разработчика.“ Може би това се случва понякога, но много основни части от софтуера на GNU бяха разработени, за да има пълна безплатна операционна система. Те идват от визия и план, а не от импулс.

Например, ние разработихме библиотеката GNU C, защото една Unix-подобна система се нуждае от C библиотека, BASH, защото подобна на Unix система се нуждае от обвивка, и GNU tar, защото подобна на Unix система се нуждае от tar програма. Същото важи и за моите собствени програми — компилатора на GNU C, GNU Emacs, GDB и GNU Make.

Някои програми на GNU бяха разработени, за да се справят със специфични заплахи за нашата свобода. Така разработихме gzip, за да замени програмата Compress, която беше загубена за общността поради патентите на LZW. Намерихме хора, които да разработят LessTif, а наскоро стартирахме GNOME и Harmony, за да се справим с проблемите, причинени от определени собствени библиотеки (вижте по-долу). Ние разработваме GNU Privacy Guard, за да замени популярния несвободен софтуер за криптиране, тъй като потребителите не трябва да избират между поверителност и свобода.

Разбира се, хората, пишещи тези програми, се заинтересуваха от работата и много функции бяха добавени към тях от различни хора в името на техните собствени нужди и интереси. Но не затова съществуват програмите.

Неочаквани развития

В началото на проекта GNU си представях, че ще разработим цялата система на GNU, след което ще я пуснем като цяло. Не така се случи.

Тъй като всеки компонент на системата GNU беше внедрен в Unix система, всеки компонент можеше да работи на Unix системи много преди да съществува пълна GNU система. Някои от тези програми станаха популярни и потребителите започнаха да ги разширяват и пренасят – към различните несъвместими версии на Unix, а понякога и към други системи.

Процесът направи тези програми много по-мощни и привлече както средства, така и сътрудници към проекта GNU. Но това вероятно също забави завършването на минимална работеща система с няколко години, тъй като разработчиците на GNU „вложиха време в поддържането на тези портове и добавянето на функции към съществуващите компоненти, вместо да се премести да пишат един липсващ компонент след друг.

GNU Hurd

До 1990 г. системата GNU беше почти завършена; единственият основен липсващ компонент беше ядрото. Решихме да внедрим нашето ядро ​​като колекция от сървърни процеси, работещи върху Mach. Mach е микроядро, разработено в университета Карнеги Мелън и след това в Университета на Юта; GNU Hurd е колекция от сървъри (т.е. стадо от GNU), които работят върху Mach и изпълняват различните задачи на ядрото на Unix. Началото на разработката беше забавено, тъй като чакахме Mach да бъде пуснат като безплатен софтуер, както беше обещано.

Една от причините за избора на този дизайн беше да се избегне това, което изглеждаше най-трудната част от работата: отстраняване на грешки в програма на ядрото без дебъгер на ниво източник, който да го направи. Тази част от работата вече беше свършена в Mach и очаквахме да отстраним грешките на сървърите на Hurd като потребителски програми с GDB. Но отне много време, за да стане възможно това, а многонишковите сървъри, които изпращат съобщения един към друг, се оказаха много трудни за отстраняване на грешки. Накарането на Hurd да работи стабилно е продължило много години.

Аликс

Първоначално ядрото на GNU не е трябвало да се нарича Hurd. Първоначалното му име беше Аликс - кръстено на жената, която беше моята любима по това време. Тя, системен администратор на Unix, беше посочила как името й ще отговаря на обичайния модел на именуване за системните версии на Unix; на шега тя каза на приятелите си: „Някой трябва да кръсти ядрото на мен“. Не казах нищо, но реших да я изненадам с ядро ​​на име Alix.

Не остана така. Майкъл (сега Томас) Бушнел, основният разработчик на ядрото, предпочете името Hurd и предефинира Alix, за да се отнася до определена част от ядрото - частта, която ще улавя системни повиквания и ги обработва чрез изпращане на съобщения до сървърите на Hurd.

По-късно Аликс и аз се разделихме и тя смени името си; Дизайнът на Hurd беше променен, така че библиотеката C да изпраща самостоятелно съобщения директно до сървърите и това накара компонента Alix да изчезне от дизайна.

Но преди да се случат тези неща, нейна приятелка се натъкна на името Аликс в изходния код на Хърд и й го спомена. Така че тя наистина имаше шанса да намери ядро, кръстено на нея.

Linux и GNU / Linux

GNU Hurd не е подходящ за производствена употреба и не знаем дали някога ще бъде. Дизайнът, базиран на възможности, има проблеми, които са пряко резултат от гъвкавостта на дизайна и не е ясно дали съществуват решения.

За щастие има друго ядро. През 1991 г. Линус Торвалдс разработи Unix-съвместимо ядро ​​и го нарече Linux. Първоначално беше собственост, но през 1992 г. той го направи свободен софтуер; комбинирането на Linux с не съвсем завършената система GNU доведе до пълна безплатна операционна система. (Комбинирането им беше сериозна работа само по себе си, разбира се.) Благодарение на Linux ние всъщност можем да стартираме версия на системата GNU днес.

Предизвикателства в нашето бъдеще

Доказахме способността си да разработваме широк спектър от безплатен софтуер. Това не означава, че сме непобедими и неудържими. Няколко предизвикателства правят бъдещето на свободния софтуер несигурно; срещата им ще изисква непоколебими усилия и издръжливост, понякога траещи години. Това ще изисква решителността, която хората проявяват, когато ценят свободата си и няма да позволят на никого да я отнеме.

Следващите четири раздела обсъждат тези предизвикателства.

Секретен хардуер

Производителите на хардуер са все по-склонни да пазят хардуерните спецификации в тайна. Това затруднява писането на безплатни драйвери, така че Linux и XFree86 да поддържат нов хардуер. Днес имаме напълно безплатни системи, но няма да ги имаме утре, ако не можем да поддържаме компютрите на утрешния ден.

Има два начина за справяне с този проблем. Програмистите могат да правят обратен инженеринг, за да разберат как да поддържат хардуера. Останалите от нас могат да избират хардуера, който се поддържа от безплатен софтуер; тъй като броят ни се увеличава, секретността на спецификациите ще се превърне в политика на самоунищожение.

Обратното инженерство е голяма работа; ще имаме ли програмисти с достатъчно решителност да го предприемат? Да — ако сме изградили силно усещане, че безплатният софтуер е въпрос на принцип и несвободните драйвери са непоносими. И ще похарчат ли голям брой от нас допълнителни пари или дори малко допълнително време, за да можем да използваме безплатни драйвери? Да, ако решимостта да имаш свобода е широко разпространена.

(Забележка от 2008 г.: този проблем се простира и до BIOS. Има безплатен BIOS, LibreBoot (разпределение на coreboot); проблемът е получаването на спецификации за машини, така че LibreBoot да може да ги поддържа без несвободни „блобове“.)

Несвободни библиотеки

Несвободна библиотека, която работи на безплатни операционни системи, действа като капан за разработчиците на безплатен софтуер. Атрактивните характеристики на библиотеката са примамката; ако използвате библиотеката, попадате в капана, защото вашата програма не може да бъде полезно част от безплатна операционна система. (Строго погледнато, бихме могли да включим вашата програма, но тя не печели) бягайс липсваща библиотека.) Още по-лошо, ако програма, която използва собствената библиотека, стане популярна, тя може да примами други нищо неподозиращи програмисти в капана.

Първият случай на този проблем беше инструментариумът Motif през 80-те години. Въпреки че все още нямаше безплатни операционни системи, беше ясно какъв проблем ще им създаде Motif по-късно. Проектът GNU отговори по два начина: като поиска отделни проекти за безплатен софтуер да поддържат безплатните джаджи X Toolkit, както и Motif, и като поиска някой да напише безплатен заместител на Motif. Работата отне много години; LessTif, разработен от Hungry Programmers, стана достатъчно мощен, за да поддържа повечето приложения на Motif едва през 1997 г.

Между 1996 и 1998 г. друга несвободна библиотека с GUI инструментариум, наречена Qt, беше използвана в значителна колекция от безплатен софтуер, настолния KDE.

Свободните GNU/Linux системи не можаха да използват KDE, защото не можехме да използваме библиотеката. Въпреки това, някои търговски дистрибутори на GNU/Linux системи, които не бяха стриктни към свободния софтуер, добавиха KDE към своите системи – създавайки система с повече възможности, но по-малко свобода. Групата на KDE активно насърчаваше повече програмисти да използват Qt и милиони нови „потребители на Linux“ никога не са били изложени на идеята, че има проблем в това. Ситуацията изглеждаше мрачна.

Общността на свободния софтуер отговори на проблема по два начина: GNOME и Harmony.

GNOME, GNU Network Object Model Environment, е настолен проект на GNU. Започен през 1997 г. от Miguel de Icaza и разработен с подкрепата на Red Hat Software, GNOME има за цел да предостави подобни съоръжения за настолни компютри, но използва изключително безплатен софтуер. има и технически предимства, като например поддръжка на различни езици, не само C ++ Но основната му цел беше свободата: да не изисква използването на какъвто и да е несвободен софтуер.

Harmony е съвместима заместваща библиотека, предназначена да направи възможно стартирането на софтуера на KDE без използване на Qt.

През ноември 1998 г. разработчиците на Qt обявиха промяна на лиценза, която, когато бъде извършена, трябва да направи Qt свободен софтуер. Няма начин да сме сигурни, но мисля, че това отчасти се дължи на твърдата реакция на общността към проблема, който Qt постави, когато беше несвободен. (Новият лиценз е неудобен и несправедлив, така че остава желателно да се избягва използването Qt.)

Как ще отговорим на следващата изкусителна несвободна библиотека? Ще разбере ли цялата общност необходимостта да остане далеч от капана? Или много от нас ще се откажат от свободата за удобство и ще създадат голям проблем? Нашето бъдеще зависи от нашата философия.

Софтуерни патенти

Най-лошата заплаха, пред която сме изправени, идва от софтуерните патенти, които могат да поставят алгоритмите и функциите извън границите на свободния софтуер за период до двадесет години. Патентите на алгоритъма за компресия на LZW бяха заявени през 1983 г. и все още не можем да пуснем безплатен софтуер за създаване на правилни компресирани GIF файлове. През 1998 г. безплатна програма за производство на MP3 компресиран аудио беше премахната от разпространение под заплаха от патентен иск.

Има начини да се справим с патентите: можем да търсим доказателства, че патентът е невалиден, и можем да търсим алтернативни начини да свършим работа. Но всеки от тези методи работи само понякога; когато и двете се провалят, патентът може да принуди целия безплатен софтуер да няма някаква функция, която потребителите искат. След дълго чакане патентите изтичат (очаква се патентите за MP3 да изтекат до 2018 г.), но какво ще правим дотогава?

Тези от нас, които ценят свободния софтуер в името на свободата, така или иначе ще останат със свободния софтуер. Ще успеем да свършим работата без патентованите функции. Но тези, които ценят безплатния софтуер, защото очакват да бъде технически по-добър, вероятно ще го нарекат провал, когато патентът го задържа. Така че, макар да е полезно да говорим за практическата ефективност на модела на разработка на „базара“ и за надеждността и мощта на някои свободни софтуери, не трябва да спираме дотук. Трябва да говорим за свобода и принцип.

Безплатна документация

Най-големият недостатък в нашите безплатни операционни системи не е в софтуера – това е липсата на добри безплатни ръководства, които можем да включим в нашите системи. Документацията е съществена част от всеки софтуерен пакет; когато важен безплатен софтуерен пакет не идва с добро безплатно ръководство, това е голяма пропуск. Днес имаме много такива пропуски.

Безплатната документация, подобно на безплатния софтуер, е въпрос на свобода, а не на цена. Критерият за безплатно ръководство е почти същият като за безплатния софтуер: това е въпрос на предоставяне на определени свободи на всички потребители. Преразпространението (включително търговска продажба) трябва да бъде разрешено, онлайн и на хартия, така че ръководството да може да придружава всяко копие на програмата.

Разрешението за модификация също е от решаващо значение. Като общо правило, аз „не вярвам, че е от съществено значение хората да имат разрешение да променят всякакви статии и книги. Например, не смятам, че вие ​​или аз сме задължени да даваме разрешение за промяна на статии като тази , които описват нашите действия и възгледите ни.

Но има конкретна причина, поради която свободата на модифициране е от решаващо значение за документацията за свободния софтуер. Когато хората упражнят правото си да модифицират софтуера и да добавят или променят неговите функции, ако са съвестни, те ще променят и ръководството – за да могат да предоставят точна и използваема документация с модифицираната програма. Несвободен наръчник, който не позволява на програмистите да бъдат съвестни и да довършат работата, не задоволява нуждите на нашата общност.

Някои видове ограничения за това как се правят модификации не представляват проблем. Например, изискванията за запазване на известието за авторски права на оригиналния автор, условията за разпространение или списъка с автори са ОК. Също така не е проблем да се изискват модифицирани версии да включват известие, че са били променени, дори да има цели раздели, които не могат да бъдат изтрити или променени, стига тези раздели да се занимават с нетехнически теми. Тези видове ограничения не са проблем, защото не спират съвестния програмист да адаптира ръководството, за да пасне на модифицираната програма. С други думи, те „не блокират общността на свободния софтуер да използва пълноценно ръководството.

Трябва обаче да е възможно да се променят всички техническисъдържанието на ръководството и след това разпространявайте резултата във всички обичайни медии, чрез всички обичайни канали; в противен случай ограниченията възпрепятстват общността, ръководството не е безплатно и имаме нужда от друго ръководство.

Ще имат ли разработчиците на свободен софтуер осъзнатостта и решимостта да създадат пълен спектър от безплатни ръководства? Отново бъдещето ни зависи от философията.

Трябва да говорим за свободата

Прогнозите днес са, че има десет милиона потребители на GNU/Linux системи като Debian GNU/Linux и Red Hat “Linux”. Свободният софтуер е разработил такива практически предимства, че потребителите се тълпят към него по чисто практически причини.

Добрите последици от това са очевидни: по-голям интерес към разработването на безплатен софтуер, повече клиенти за бизнеса със свободен софтуер и повече възможности за насърчаване на компаниите да разработват комерсиален безплатен софтуер вместо собствени софтуерни продукти.

Но интересът към софтуера нараства по-бързо от осъзнаването на философията, на която се основава, и това води до проблеми. Способността ни да посрещнем предизвикателствата и заплахите, описани по-горе, зависи от волята да отстояваме твърда свобода. За да сме сигурни, че нашата общност има тази воля, трябва да разпространим идеята сред новите потребители, когато те идват в общността.

Но ние не успяваме да го направим: усилията за привличане на нови потребители в нашата общност далеч изпреварват усилията да ги научим на гражданските принципи на нашата общност. Трябва да направим и двете и трябва да поддържаме баланс между двете усилия.

"Отворен код"

Обучаването на новите потребители за свободата стана по-трудно през 1998 г., когато част от общността реши да спре да използва термина „свободен софтуер“ и вместо това да каже „софтуер с отворен код“.

Някои, които предпочитаха този термин, имаха за цел да избегнат объркването на „безплатно“ с „безплатно“ — валидна цел. Други обаче имаха за цел да оставят настрана принципния дух, който мотивира движението за свободен софтуер и проекта GNU, и вместо това да се обърнат към ръководителите и бизнес потребителите, много от които поддържат идеология, която поставя печалбата над свободата, над общността, над принцип. По този начин реториката на „отворения код“ се фокусира върху потенциала за създаване на висококачествен, мощен софтуер, но избягва идеите за свобода, общност и принцип.

Списанията "Linux" са ясен пример за това - те са пълни с реклами за собствен софтуер, който работи с GNU / Linux. Когато се появи следващият мотив или Qt, тези списания ще предупреждават ли програмистите да стоят далеч от него или ще пускат реклами за него?

Подкрепата на бизнеса може да допринесе за общността по много начини; при равни други условия е полезно. Но спечелването на тяхната подкрепа, като говорим още по-малко за свободата и принципите, може да бъде пагубно; това прави предишния дисбаланс между аутрич и гражданско образование още по-лош.

„Безплатен софтуер“ и „отворен код“ описват една и съща категория софтуер, повече или по-малко, но казват различни неща за софтуера и за ценностите. Проектът GNU продължава да използва термина „свободен софтуер“, за да изрази идеята, че свободата, а не само технологията, е важна.

Опитвам!

Афоризмът на Йода („Няма „опит“) звучи добре, но не работи за мен. Свърших по-голямата част от работата си, докато се тревожа дали мога да свърша работата и не съм сигурен, че ще бъде достатъчно, за да постигна целта, ако го направя. Но все пак опитах, защото между врага и моя град нямаше никой освен мен. Изненадвайки себе си, понякога успявах.

Понякога не успявах; някои от моите градове паднаха. Тогава намерих друг застрашен град и се приготвих за нова битка. С течение на времето се научих да търся заплахи и да се поставям между тях и моя град, призовавайки други хакери да дойдат и да се присъединят към мен.

В днешно време често "не съм единственият. Облекчение и радост е, когато видя полк от хакери, които копаят, за да задържат линията, и осъзнавам, че този град може да оцелее - засега. Но опасностите са по-големи всеки година, а сега Microsoft изрично се насочи към нашата общност. Не можем да приемаме бъдещето на свободата за даденост. Не го приемайте за даденост! Ако искате да запазите свободата си, трябва да сте готови да я защитите.

ОСНОВНИ СТАНДАРТИ

UNIX се доставят от производителите на компютри

Кола Операционна система "оригинал"
нд 1,2,10,... SunOS 4.1.2 BSD 4.3
нд 10,20,1000 SunOS 5.5 SVR4.0
IBM RS / 6000 Aix SV 3.2
HP Apollo 900 HP / UX 10 BSD 4.2 и SV 3.2
Последователно Dynix SV 4.0
Motorola 922 SVR4 / 88 SVR4.0
Беста-88 Bestix SV 3.1
ДЕК Ultrix BSD 4.2
DEC Alpha AXP OSF / 1 BSD 4.3
SGCS Silicon Graphic IRIX 6.0

Когато изберем платформа, ние автоматично получаваме "своя" UNIX с нея. Може би, от гледна точка на удобството и целостта на потребителската и административната среда, най-приятният от всички е AIX. И най-разпространеният е Solaris 2.5 (разбира се).

Именно появата на комерсиални Unix реализации предизвика така наречените Unix войни. Всяка една от фирмите, в стремежа си да постигне превъзходство на пазара, включва в своята система някои характеристики, свои собствени модификации и подобрения, понякога дори с пряка цел да изолира системата си от другите на пазара. Фирмите за развитие, в усилията си да спечелят предимство пред конкурентите, направиха промени дори в интерфейс за програмиране на приложения(API- Applications Programmer "s Interface), спецификация на набор от функции, към които разработчиците на софтуер трябва да се придържат за съвместимост на своите програми с операционната система. Това допълнително увеличи несъвместимостта на различните версии на Unix и доведе до несъвместимост на софтуера, разработен от различни (включително независими) доставчици.

Но много по-лошото следствие от войните между различните версии на Unix беше, че свободният обмен на изходен код, който допринесе толкова много за бързото подобряване на Unix в ранните му етапи, престана да съществува. Не знаейки за друг модел за правене на пари от софтуер, различен от запазването му в тайна и пълен контрол върху развитието на търговски продукт, AT&T строго забрани разпространението на изходен код. Заплахата от съдебно преследване за незаконно разпространение на Unix ленти привлече малко хора. Потокът от нови идеи от университетите пресъхна.

Бяха направени няколко опита за стандартизиране на Unix, за да се преодолее този проблем.

Първите сериозни усилия за стандартизиране на версиите на API (програмен интерфейс), разработени за System V и Berkeley, бяха направени през 1983 г. от инициативна група, наречена /usr/group. Въпреки това, с увеличаването на броя на версиите на операционната система, ефективността на стандарта намалява и година по-късно, през 1985 г., е създаден стандартът POSIX (Portable Operating System Interface for Computing Environment).



През 1988 г. е разработен стандартът POSIX 1003.1-1988, който дефинира интерфейса за програмиране на приложения. Този стандарт е намерил широко приложение в много операционни системи, включително тези с архитектура, различна от UNIX. Две години по-късно стандартът е приет като IEEE стандарт (Институт на електротехническите и електронни инженери, все още съществуващ) IEEE 1003.1-1990. Стандартът дефинира само интерфейса и е конкретна организация, така че не прави разлика между системни повиквания и библиотечни функции, като извиква всички елементи на програмния интерфейс просто функции.

Всички по-късни стандарти на Unix включват POSIX и всички следващи версии на Unix се придържат към този стандарт. Единствените големи допълнения, които по-късно дойдоха в ядрото на Unix, бяха сокети, които идваха от BSD.

Организация с нестопанска цел - консорциумът X / Open (по-късно Open Group), създаден през 1984 г. от редица европейски компании, пое разработването на общ набор от интерфейси на операционната система, договорени между различни производители, и създаването на наистина отворени системи, за които цената на преносимост на приложенията би била минимална. ...

През 1992 г. се появява документ, известен като X / OpenPortable Guide версия 3 (XPG3), който включва POSIX 1003.1-1988 и графичния стандарт X Windows System, разработен в Масачузетския технологичен институт (САЩ). 1994 - XPG4.2.

През 1996 г. сливането на X / Open и OSF доведе до създаването на консорциума The Open Group, който продължи развитието в областта на отворените системи, например по-нататъшното развитие на потребителския интерфейс на Common Desktop Environment, интерфейси за разпределените Изчислителна среда - DCE и др.

(Американски национален институт за стандарти)

През 1989 г. Американският национален институт по стандарти одобри стандарта X3.159-1989 за езика за програмиране C. Стандартът дефинира синтаксиса, семантиката и съдържанието на стандартната библиотека.

GNU е асоциация на разработчици, които създават безплатен софтуер от всякакъв вид.

GNU е проект, който създаде много безплатен софтуер като част от стратегия с отворен код.

В същото време тези програми са в състояние да правят всичко - от работа с файлове до обработка на думи, а компилаторът gcc (GNU C) е един от най-надеждните и ефективни компилатори за UNIX. Това дава възможност да се оборудва почти всяка UNIX-подобна ОС с безплатен софтуер.

Какво е GNU/Linux?

Тъй като Linux е просто ядро, този вид хардуер е от съществено значение. Ядрото отговаря за работата с памет, дискове, вътрешни устройства, но то например няма текстов редактор. Но той знае как да стартира други програми. Следователно добавянето на безплатно ядро ​​с набор от безплатни програми изглежда много естествено. Резултатът е тандемът GNU / Linux.

"Съкращението GNU означава" GNU не е UNIX. " свобода да си сътрудничим и да контролираме компютрите си. За да станем общност, свободна да използва нашите компютри, ни трябваше безплатна операционна система. Нямахме достатъчно пари, за да изкупим и освободим която и да е от съществуващите системи, но имахме знанията и уменията да създадем нова. Изграждането на GNU беше огромна работа. Направихме го в името на нашата свобода, както и на вашата."

През 1985 г. Р. Столман написа прочутия си манифест на GNU (публикуван е в изданието на Dr. Dobb's Journal от март 1985 г.) и основа Free Software Foundation (FSF), благотворителна фондация за разработване на свободен софтуер. Самият той разпространява Emacs касети; по-късно той започва да разпространява друг безплатен софтуер (както в рамките на проекта GNU, така и извън него) и да продава ръководства за тях. Това осигурява средства за развитието на проекта GNU. FSF приема дарения, но по-голямата част от приходите винаги идват от продажбата на копия на безплатен софтуер и свързани услуги.

Разработването на свободен софтуер беше много важна стъпка, но трябва да се признае още по-голямата заслуга на Р. Столман за създаването на GNU General Public License (GNU General Public License, или GPL). Различните автори превеждат това име на руски по различни начини - Общият публичен лиценз, Обобщен обществен лиценз и т.н. Но се смята, че само английската версия на този лиценз е правно обвързваща... Основната идея на GPL е, че потребителят трябва да има следните четири права (или четири свободи):

Правото на стартиране на програмата за всякакви цели (свобода 0)

· Правото да изучават структурата на програмата и да я адаптират към своите нужди (свобода 1), което предполага достъп до изходния код на програмата.

· Правото да разпространявате програмата, като можете да помагате на другите (свобода 2).

· Правото за подобряване на програмата и публикуване на подобрения, в полза на цялата общност (свобода 3), което също предполага достъп до изходния код на програмата.

Софтуерът, разпространяван под този лиценз, може да бъде използван, копиран, модифициран, модифициран, прехвърлян или продаван модифицирани (или немодифицирани) версии на други по какъвто и да е начин, при условие че резултатът от такава обработка също се разпространява под лиценза на GPL. Последното условие е най-важното и определящо в този лиценз. Той гарантира, че резултатите от усилията на разработчиците на свободен софтуер остават с отворен код и не стават част от конвенционално лицензиран продукт. Той също така отличава свободния софтуер от свободния софтуер. Едно от изискванията на този лиценз е, че когато продавате софтуер под GPL, трябва да предоставите изходния код за този софтуер на всеки, който иска да има достъп до него. По думите на създателите на FSF, GPL „прави софтуера безплатен и гарантира, че той остава безплатен“.

Основната цел на GPL е да защити свободния софтуер от "приватизация". Но трябва да се отбележи, че той е проектиран по такъв начин, че да позволява всички "честни" начини за печелене на пари от безплатен софтуер.Това е много важен момент, на който трябва да се обърне специално внимание. Когато за първи път се запознаете с GPL, може да получите погрешното схващане, че този лиценз по принцип забранява всякакъв начин да се правят пари от софтуер или неговата разработка. Всъщност GPL в частност и FSF като цяло директно насърчават бизнеса, свързан с предоставянето на свързани услуги – обучение, консултации и разпространение на търговски софтуер. Това ни позволява да привлечем към сътрудничество както корпорации, така и хора, за които материалният интерес е по-важен от моралните стимули.

Всеки потребител, който е започнал да разбира света на UNIX-подобните операционни системи и безплатния софтуер, със сигурност ще срещне съкращенията в заглавието.

GNU означава „GNU не е UNIX“ и означава мащабен проект, който разработва различни системни библиотеки и приложения. Всичко създадено в рамките на този проект е с отворен код. Това означава, че всеки с подходящи познания по програмиране може да вземе този код като основа за собствена разработка, като има пълното право да го променя и разпространява.

Разработените в рамките на проекта софтуерни продукти, допълнени от ядрото на системата GNU Hard, формираха основата на пълноценна операционна система, която също беше обозначена с термина GNU. Но създаването му, което датира от 1990 г., все още не е завършено. Но през 1991 г. се появява идеята на Линус Торвалдс - ядрото на Linux. И тук проектът GNU изигра огромна роля в развитието на Linux като операционна система. В крайна сметка системата е не само ядро, а интегрална колекция от системен софтуер, която включва библиотеки, помощни програми, драйвери и много други. И именно разработките на участниците в GNU, които бяха използвани във връзка с ядрото на Linux, показаха на света самия продукт, който сега успешно се конкурира с Windows и MacOS. И се нарича "GNU / Linux", а първата част най-често се изхвърля, което като цяло е погрешно.

В допълнение към софтуера, проектът GNU създаде Общия публичен лиценз (GNU GPL), който стана основен в света на отворения код и беше широко използван. Той регулира разпространението на безплатен софтуер и е изключително демократичен. В него се посочва, че всеки потребител има право да променя, разпространява и използва в своите проекти изходния код на приложенията, маркирани с този лиценз. В същото време всички помощни програми също ще бъдат обхванати от GPL. Това означава, че разработчик, използващ отворен код, също произвежда отворен код и по този начин самият лиценз се наследява. Това е задължително правило, но има начини да заобиколите GPL и да затворите собствените си кодове въз основа на използвания отворен код.

Създаденият от него GNU и GPL оказаха голямо влияние върху технологичната индустрия. Свободният софтуер привлече огромен брой талантливи програмисти в своята индустрия, които съставляват най-голямата общност. Продуктите, създадени под GPL, не само получиха широко практическо приложение, но и станаха, благодарение на висококачествения и достъпен код, отлична образователна платформа за милиони начинаещи разработчици. Концепцията за такъв обмен на информация и най-шумната алтернатива на обичайното авторско право, макар и да не е очевидна, направи възможно разработването на софтуер и сега набира скорост.

GNU 3DLDF поддържа 3D рисуване с извеждане във формат MetaPost чрез език, подобен на Metafont. Основно е предназначен да осигури средство за създаване на 3D съдържание за TeX документи, но може също да създава анимации, съдържащи текст, набран от TeX. (док.)

8sync

8sync (произнася се eight-sync) е библиотека за асинхронно програмиране за GNU Guile. Той използва продължения с ограничени граници, за да избегне бъркотията от обратни извиквания, което води до чист, лесен за четене, неблокиращ код. (док.)

a2ps

GNU a2ps преобразува почти всичко в PostScript файл, готов за печат. Той постига това, като може да делегира файлове на външни манипулатори, като Groff и Gzip. Той обработва толкова стъпки, колкото е необходимо, за да създаде красиво отпечатан файл. Той също така включва някои допълнителни способности за специални случаи, като например изход за красив печат --help. (док.)

Акт

GNU acct предоставя средство за системните администратори да определят моделите на използване на системата. Той предоставя информация за, например, връзки, изпълнявани програми и използвани системни ресурси. (док.)

Acm

GNU ACM е симулатор на полети, в който играчите могат да се състезават във въздушни битки от различни компютри, пилотирайки добре оборудван реактивен самолет, подобен на F-16C Falcon или MiG-29 Fulcrum. (док.)

Adns

GNU adns е C библиотека, която предоставя лесна за използване функционалност за разделяне на DNS. Библиотеката е асинхронна и позволява няколко едновременни повиквания. Пакетът включва също няколко помощни програми от командния ред за използване в скриптове. (док.)

жив

GNU Alive изпраща периодични пингове към сървър, обикновено за поддържане на връзката жива. (документ)

Анубис

Anubis е демон, който седи между Mail User Agent (MUA) и Mail Transfer Agent (MTA). Когато имейл е изпратен от потребител в MUA, той първо се предава на Anubis, който извършва допълнителна обработка на съобщението, преди да го предаде за доставка от MTA. Анубис може например да промени заглавките или тялото на съобщението, или да криптира или подпише съобщението. (док.)

APL

GNU APL е безплатен интерпретатор за езика за програмиране APL. Това е изпълнение на стандарт ISO 13751. (doc)

Архимед

Archimedes е безплатен пакет за симулации на полупроводникови устройства. Той е предназначен да подпомага инженерите при проектирането и симулирането на субмикронни и мезоскопични полупроводникови устройства, базирани на метода на Ансамбъл Монте Карло. Той е в състояние да се справи с голямо разнообразие от материали и структури, които са описани чрез прости скриптове. (док.)

Арис

Aris е програма за извършване на логически доказателства. Той поддържа пропозиционална и предикатна логика, както и булева алгебра и аритметична логика. В допълнение към своите предварително дефинирани правила за извод и еквивалентност, Aris също поддържа препратки към по-стари доказателства. Използването на стандартни логически символи и естествения му интерфейс за дедукция го правят лесен за използване от начинаещи. (док.)

Артанис

GNU Artanis е рамка за уеб приложения, написана на схема Guile. Рамката за уеб приложения (WAF) е софтуерна рамка, която е предназначена да поддържа разработването на динамични уебсайтове, уеб приложения, уеб услуги и уеб ресурси. Рамката има за цел да облекчи режийните разходи, свързани с общи дейности, извършвани в уеб разработката. Artanis предоставя няколко инструмента за уеб разработка: достъп до база данни, рамки за шаблони, управление на сесиите, пренасочване на URL за RESTful, кеширане на страници и др. (док.)

Заклинание

Aspell е програма за проверка на правописа, която може да се използва или като библиотека, или като самостоятелна програма. Забележителните характеристики на Aspell включват пълната му поддръжка на документи, написани в UTF-8 кодиране и способността му да използва множество речници, включително лични. (док.)

AUCTeX

AUCTeX е интегрирана среда за създаване на TeX документи в Emacs. Позволява много различни стандартни TeX макроси да бъдат вмъкнати с прости натискания на клавиши или избор на меню. Той предлага интерфейс към външни програми, което ви позволява да компилирате или преглеждате вашите документи от Emacs. AUCTeX също така разполага с възможността за поставяне на вградени визуализации на сложни TeX изрази като математическа формула. (документ)

Autoconf

Autoconf предлага на разработчика стабилен набор от M4 макроси, които се разширяват в шел код, за да тестват характеристиките на Unix-подобни системи и да адаптират автоматично своя софтуерен пакет към тези системи. Получените шел скриптове са самостоятелни и преносими, освобождавайки потребителя от необходимостта да знае нещо за Autoconf или M4. (док.)

Autoconf-архив

Autoconf Archive е колекция от над 450 нови макроса за Autoconf, които значително разширяват областта на неговата функционалност. Тези макроси са предоставени като безплатен софтуер от общността. (док.)

Автоген

AutoGen е програма за улесняване на поддръжката на програми, които съдържат големи количества повтарящ се текст. Той автоматизира изграждането на тези секции от кода, опростявайки задачата за поддържане на текста в синхрон. Той също така включва допълнителен пакет, наречен AutoOpts, който е специализиран за поддръжка и документиране на опциите на програмата. (док.)

Automake

Автоматично направете част от системата за изграждане на GNU за създаване на съвместими със стандартите Makefiles. Изискванията за изграждане се въвеждат в интуитивен формат и след това Automake работи с Autoconf, за да създаде стабилен Makefile, опростявайки целия процес за разработчика. (док.)

Avl

libavl предоставя голяма колекция от двоично дърво за търсене и балансирани дървесни процедури за C. Тези дървета предлагат поне O (log n) производителност за обикновено скъпи операции като търсене, вмъкване или изтриване на елементи от структура от данни. (док.)

Топка и гребло

Ball and Paddle е класическа аркадна игра, в която използвате гребло в долната част на екрана, за да отскачате топка срещу тухли в горния регион, елиминирайки тухлите, когато бъдат ударени. Като нов обрат, събитията и атрибутите на всички обекти (тухли, топка и т.н.) могат да бъдат скриптирани с GNU Guile. (док.)

Баркод

GNU Barcode е гъвкав инструмент за производство на отпечатани баркодове от текстови низове. Той поддържа различни стандарти за кодиране и измервания на размера. Баркодовете могат да се извеждат във формати PostScript или Encapsulated PostScript. (док.)

Баш

Bash е обвивката или интерпретаторът на командния ред на системата GNU. Той е съвместим с Bourne Shell, но също така интегрира полезни функции от Korn Shell и C Shell и нови собствени подобрения. Той позволява редактиране от командния ред, неограничена история на командите, функции на обвивката и псевдоними и контрол на заданията, като същевременно позволява повечето sh скриптове да се изпълняват без промяна. (док.)

Байон

Bayonne е телефонният сървър на проекта GNU Telephony. Той предлага мащабируема среда за разработване и внедряване на телефонни решения, с акцент върху SIP. (док.)

Базар

GNU Bazaar е система за контрол на версиите, която ви позволява да записвате промени в проектните файлове с течение на времето. Той поддържа както разпределен работен поток, така и класическия централизиран работен поток. (док.)

bc е език за цифрова обработка с произволна точност. Включва интерактивна среда за оценка на математически твърдения. Синтаксисът му е подобен на този на C, така че основната употреба е позната. Той също така включва dc, калкулатор за обратно полиране. (док.)

Bfd

Бинутили

GNU Binutils е колекция от инструменти за работа с двоични файлове. Може би най-забележителните са ld, линкер и as, асемблер. Други инструменти включват програми за показване на информация за двоично профилиране, изброяване на низовете в двоичен файл и помощни програми за работа с архиви. Включена е и библиотеката bfd за работа с изпълними и обектни формати. (док.)

Бизон

GNU Bison е генератор на парсер с общо предназначение. Той може да изгради детерминиран или обобщен LR анализатор от анотирана, свободна от контекст граматика. Той е достатъчно гъвкав, за да има много приложения, от анализатори за прости инструменти до сложни езици за програмиране. (док.)

Бул

GNU Bool е помощна програма за извършване на текстово търсене на файлове с помощта на булеви изрази. Например, търсене на hello AND world ще върне файл, съдържащ фразата Hello, world! ... Той поддържа както изрази И, така и ИЛИ, както и оператора NEAR за търсене на появата на думи в непосредствена близост една до друга. Той се справя изящно с контекста, като отчита новите редове и промените в абзаците. Той също така има стабилна поддръжка за синтактичен анализ на HTML файлове. (док.)

BPEL2oWFN

GNU BPEL2oWFN превежда уеб услуга, изразена на език за изпълнение на бизнес процеси на уеб услуги (WS-BPEL) в отворена мрежа за работни потоци (oWFN). Може допълнително да преобразува хореография BPEL4Chor в модел на Petri Net. Свойствата на мрежите на Петри могат да бъдат анализирани ефективно, поради използването на статичен анализ, за ​​да се направят моделите компактни. Налични са контрол и анализ на потока от данни, както и основни проверки за блокиране и други подобни свойства. (документ)

C-графика

GNU C-Graph е инструмент за демонстриране на теорията на конволюцията. По този начин може да послужи като отлична помощ на студентите по теория на сигналите и системите при визуализиране на процеса на навиване. Вместо да принуждава ученика да пише код, програмата предлага интуитивен интерфейс с интерактивни диалози, които да ги насочват. (док.)

ccАудио

GNU ccAudio2 е преносим C ++ клас за работа с аудио данни от диск. Класовете са както на байт, така и на съдържанието; вместо да третира аудиото като двоични данни, тази библиотека го третира като последователност от проби. Може също да обработва информация за метаданни. ccAudio2 поддържа слънчево аудио, необработени проби и RIFF кодирани аудио данни. (документ)

Ccd2cue

GNU ccd2cue е препроцесор за софтуер за запис на CD, който позволява преобразуването на собствения CCD формат във формат CUE, който се поддържа добре от свободния софтуер. Тези файлове обикновено се разпространяват с CD изображения и се използват за описване на това как песните са разположени върху изображението. (документ)

Ccide

GNU Ccide е генератор на код за таблица с решения за езика C. Това помага да се избегнат неуправляеми и податливи на грешки вериги от вложени оператори if-else. Вместо това таблиците за решения се въвеждат в интуитивен и лесен за четене формат, който след това се разширява в преносим C код. (документ)

ccRTP

GNU ccRTP е реализация на RTP, транспортния протокол в реално време от IETF. Подходящ е както за сървъри с голям капацитет, така и за персонални клиентски приложения. Той е гъвкав в своя дизайн, което му позволява да функционира като рамка за рамката, а не просто като библиотека за манипулиране на пакети. (док.)

ccScript

GNU ccScript3 е библиотека за добавяне на система за изпълнение на виртуална машина за използване с/като скриптов или асемблер за системи в реално време, управлявани от преход на състояние. (док.)

Cflow

GNU cflow анализира изходните файлове на C и създава графика, начертаваща контролния поток на програмата. Той може да изведе графиката в няколко стила и във формат POSIX, или в разширен GNU формат. cflow също така включва основен режим за Emacs за изследване на блок-схемите, които произвежда. (док.)

Cgicc

GNU cgicc е ANSI-съвместима C ++ библиотека за писане на CGI приложения, включваща поддръжка за FastCGI. Библиотеката поддържа няколко функции, включително обработка както на GET, така и на POST данни, работа с различни типове данни за формуляри и генериране на HTML в движение. (док.)

Шах

GNU Chess е двигател за шах. Тя ви позволява да се състезавате срещу компютъра в игра на шах, или чрез интерфейса на терминала по подразбиране, или чрез външен визуален интерфейс като GNU XBoard. (документ)

Cim

Cim е компилаторът на GNU за Simula, първия обектно-ориентиран език за програмиране. (док.)

Classpath

GNU Classpath предоставя основни библиотеки за виртуални машини и компилатори на Java. Той е съвместим с голям процент от спецификациите на езиковия API и предоставя широк спектър от функционалности. (док.)

CLISP

GNU CLISP е реализация на ANSI Common Lisp. Common Lisp е обектно-ориентиран функционален език за програмиране от високо ниво. CLISP включва интерпретатор, компилатор, дебъгер и много други. (док.)

Комбинирайте

GNU комбинира работи за сливане на файлове въз основа на общ ключ в хеш таблица. Може да се разглежда като подобна, макар и много по-мощна от стандартната помощна програма за присъединяване. За разлика от присъединяването, произволен брой файлове могат да бъдат обединени въз основа на намерените съвпадения. Combin има и други разширени функции, като анализ на дата и обхождане на директория. (док.)

[u] Общ C ++

GNU Common C ++ е преносима, оптимизирана класова рамка за приложения с нишки, поддържаща едновременна синхронизация, междупроцесни комуникации чрез сокети и различни методи за обработка на данни, като сериализация и XML синтактичен анализ. Той включва библиотеката uCommon C ++, по-малка повторна реализация. (док.)

Сложност

Сложността на GNU предоставя инструменти за намиране на процедури, които са заплетени, прекалено дълги или по друг начин трудни за разбиране. Това може да ви помогне да научите или прегледате непознат код или може би да подчертаете собствения си код, който изглеждаше разбираем, когато сте го написали. (док.)

Конфиг

Скриптът config.guess се опитва да отгатне тройна канонична система, а config.sub потвърждава и канонизира. Те се използват като част от конфигурацията в почти всички пакети на GNU (и много други). (док.)

Coreutils

GNU Coreutils включва всички основни инструменти на командния ред, които се очакват в POSIX система. Те осигуряват основните функции за манипулиране на файлове, обвивка и текст на системата GNU. Повечето от тези инструменти предлагат разширена функционалност отвъд тази, която е описана в стандарта POSIX. (док.)

Cpio

GNU cpio копира файлове в или извън cpio или tar архиви. Всъщност се поддържат много формати, включително наследени формати. Форматът се определя автоматично от програмата и се обработва по подходящ начин. Освен това местоположението на архива не е важно. Това може да бъде друг файл на устройството, лента или данни на тръба. (док.)

Cppi

GNU Cppi обработва файловете с изходен код на C, за да отстъпи правилно директивите на препроцесора, за да отрази тяхното влагане. Той също така извършва други стандартизации, като коригиране на броя на интервалите между директивите и текста, който ги следва. (док.)

CSSC

GNU CSSC осигурява заместител на наследената система за контрол на изходния код на Unix SCCS. Това позволява достъп до стария код, който все още е в тази система, и мигрира в съвременните системи. (док.)

Cursynth

GNU cursynth е полифоничен синтезатор, който работи графично в терминала. Той е изграден върху пълнофункционален двигател за изваждане на синтез. Бележки и промени в параметрите могат да се въвеждат чрез MIDI или клавиатурата на компютъра. (Doc)

Dap

GNU Dap е статистически и графичен пакет. Може да чете програми, написани за собствената статистическа система SAS. Синтаксисът му е подобен, но по-опростен от C, което прави изпълнението на повечето задачи сравнително лесно, като същевременно осигурява разширени графични възможности. (док.)

Datamash

Извършвайте основни цифрови, текстови и статистически операции върху обикновени текстови файлове. Проектиран да работи в рамките на стандартни тръбопроводи без допълнителен код. (док.)

DDD

GNU DDD, дебъгерът за показване на данни, е графичен преден край за дебъгери от командния ред. Поддържат се много back-end дебъгери, по-специално дебъгерът на GNU, GDB. В допълнение към обичайните функции за отстраняване на грешки, като например преглед на изходните файлове, DDD има допълнителни графични, интерактивни функции за подпомагане на отстраняването на грешки. (док.)

ddrescue

GNU ddrescue е напълно автоматизиран инструмент за възстановяване на данни. Той копира данни от един файл в друг, като работи за спасяване на данни в случай на грешки при четене. Програмата включва и инструмент за манипулиране на нейните лог файлове, които се използват за по-ефективно възстановяване на данни само чрез четене на необходимите блокове. (док.)

DejaGnu

DejaGnu е рамка за тестване на софтуер. Всъщност той служи като преден край за всички тестове, написани за програма. По този начин всяка програма може да има множество тестови пакета, които след това се управляват от един сноп. (док.)

Денемо

GNU Denemo е редактор на музикални нотации, който предоставя удобен интерфейс към мощната програма за гравиране на музика Lilypond. Музиката може да се въвежда с помощта на компютърната клавиатура, да се възпроизвежда с помощта на MIDI клавиатура или дори да се въвежда чрез микрофон, свързан към звуковата карта. Крайният продукт е музикална нотация с качество на публикация, която непрекъснато се генерира във фонов режим, докато работите. (док.)

Диа

Дико

GNU Dico внедрява гъвкав сървър за речници и клиент според RFC 2229 (DICT сървър). Той има достъп до всяка налична база данни, независимо от формата, благодарение на своята модулна структура. Новите модули могат да бъдат написани на C, Guile или Python. Dico също така включва клиент от команден ред, който може да се използва за запитване на отдалечени речникови бази данни. (док.)

Дикция

Пакет, предоставящ две класически Unix команди, стил и дикция. Дикцията се използва за идентифициране на многословни и често злоупотребявани фрази в текст. Вместо това Стил анализира повърхностни аспекти на писмена работа, като дължина на изречението и други мерки за четливост. (док.)

Diffutils

GNU Diffutils е пакет, съдържащ инструменти за намиране на разликите между файловете. Командата diff се използва, за да покаже как се различават два файла, докато cmp показва отместванията и номерата на редовете, където се различават. diff3 ви позволява да сравните три файла. И накрая, sdiff предлага интерактивно средство за сливане на два файла. (док.)

Дионис

GNU Dionysus е удобна система за бързо извличане на стойностите на математическите константи, използвани в науката и инженерството. Стойностите могат да се търсят с помощта на прост инструмент от командния ред, като се избира от три бази данни: универсални константи, атомни числа и константи, свързани с полупроводници. (док.)

Диревент

Демон, който следи директории за събития, като създаване, изтриване или модифициране на файлове. Може да наблюдава различни набори от директории за различни събития. Когато бъде открито събитие, direvent извиква определена външна програма с информация за събитието, като например местоположението във файловата система, където се е случило. По този начин direvent предоставя лесен начин за незабавно реагиране, ако дадени файлове претърпят промени, например за проследяване на промените във важни системни конфигурационни файлове. (док.)

Доминион

GNU Dominion е симулационна игра за много играчи. В него всеки играч управлява нация и трябва да поддържа нацията си в лицето на конкуренцията от останалите играчи. Играчите трябва да вземат политически, икономически, военни и дипломатически решения, за да оцелеят техните нации. Тази игра е предназначена да се играе от играчи, всички с достъп до една и съща компютърна система. (док.)

Easejs

ease.js е класическа обектно-ориентирана рамка за JavaScript, предназначена да елиминира стандартния код и да улесни прехода към JavaScript от други обектно-ориентирани езици. (док.)

Ed е текстов редактор, ориентиран към ред: вместо да предлага общ преглед на документ, ed извършва редактиране на ред по ред. Може да се изпълнява както интерактивно, така и чрез шел скриптове. Неговият метод за въвеждане на команди позволява сложни задачи да се изпълняват по автоматизиран начин. GNU ed предлага няколко разширения спрямо стандартната помощна програма. (док.)

EDMA

GNU EDMA е среда за разработка, която съчетава идеи както от обектно-ориентирано програмиране, така и от компонентно-базирани системи. Използва се за изграждане на модулни, развиващи се приложения, както и компоненти за многократна употреба. EDMA предоставя удобно средство за изграждане на обектно-ориентирани програми на C, без да се изисква C ++. Също така, той има уникална компонентна система, за разлика от други системи, базирани на компоненти за безплатен софтуер, които имитират дизайна на собствени колеги. Той включва графичен съветник, gidfwizard, инструмент за изграждане на файлове с дефиниции на GNU EDMA интерфейс и за създаване на скелетни файлове, необходими за изграждане на EDMA класове, и браузър за графични класове, gecb. (док.)

Електрически

GNU Electric е CAD програма за проектиране на електрически вериги, работа с персонализирано оформление на IC, схематичен чертеж и спецификации на езика за описание на хардуера. Поддържат се няколко CAD операции, като проверка на правила и симулация. Много различни типове дизайни могат да бъдат произведени и въведени или изведени в голямо разнообразие от формати. (док.)

Emacs

GNU Emacs е разширяем и много адаптивен текстов редактор. Базиран е на Emacs Lisp интерпретатор с разширения за редактиране на текст. Emacs е разширен по същество във всички области на компютрите, което води до огромен набор от пакети, поддържащи, например имейл, IRC и XMPP съобщения, електронни таблици, редактиране на отдалечен сървър и много други. Emacs включва обширна документация за всички аспекти на системата, от основно редактиране до писане на големи програми на Lisp. Той има пълна поддръжка на Unicode за почти всички човешки езици. (док.)

Emacs-муза

Muse е среда за създаване и публикуване на GNU Emacs. Той поддържа въвеждане на текст в удобен и лесен за научаване формат. По-късно вашите документи могат да бъдат публикувани в различни формати, като HTML, LaTeX или PDF. Muse поддържа проекти, състоящи се от няколко документа, които са правилно обединени според изходния формат. (док.)

EMMS

EMMS е мултимедийната система на Emacs. Това е малък преден край, който може да контролира един от поддържаните външни плейъри. По този начин той поддържа всички формати, поддържани от вашия музикален плейър. Той също така поддържа маркиране и управление на плейлисти, всичко това зад изчистен и лек потребителски интерфейс. (док.)

Надпис

GNU Enscript е програма за конвертиране на ASCII текстови файлове в PostScript, HTML или RTF формати, които да се съхраняват във файлове или да се изпращат незабавно на принтер. Той също така включва възможността за извършване на подчертаване на синтаксиса за няколко различни езика за програмиране. (док.)

Fdisk

GNU fdisk предоставя GNU версия на общия инструмент за разделяне на дискове fdisk. fdisk се използва за създаване и манипулиране на таблици с дялове на диска и разбира разнообразие от различни формати. (док.)

Пор

GNU Ferret е графичен модел на данни за парадигмата на Обект/Връзка. Той може автоматично да създава релационни схеми от моделите на данни и може да се използва за генериране на SQL изрази в различни диалекти. (док.)

Findutils

Findutils предоставя основните помощни програми за търсене в директория на файлове на системата GNU. Състои се от две основни помощни програми за търсене: намиране на рекурсивно търсене на файлове в директория според дадени критерии и намиране на списъци на файлове в база данни, които съответстват на заявка. Включени са два помощни инструмента: updatedb актуализира базата данни с имена на файлове и xargs може да се използва за прилагане на команди с произволно дълги аргументи. (док.)

FisicaLab

GNU FisicaLab е образователно приложение за решаване на физически проблеми. Основната му цел е да позволи на потребителя да се съсредоточи върху физическите концепции, оставяйки настрана математическите подробности. (док.)

Foliot

GNU Foliot е приложение за проследяване на времето, прекарано в работа по проекти. (док.)

Фонтопия

Fontopia е лесен за използване, текстово-базиран конзолен редактор на шрифтове. Използва се за редактиране на шрифтовете, които GNU/Linux използва за показване на текст на текстови терминали. Fontopia работи както с PSF 1 и 2, BDF, шрифтове с кодова страница (CP), така и с необработени файлове с шрифтове. удобен, лесен за използване редактор на глифове и може лесно да променя показателите на шрифта (напр. дължина, ширина и височина) и да конвертира между различни формати на шрифта. (doc)

Fontutils

GNU Fontutils е колекция от програми за работа с шрифтове. Растерните изображения могат да бъдат извлечени от сканирани изображения на знаци, редактирани и преобразувани в контурни шрифтове. Като цяло Fontutils поддържа форматите на шрифтове, поддържани от средата за набор на TeX, включително шрифтове PostScript Type 1. (док.)

FreeDink

GNU FreeDink е безплатно и преносимо повторно внедряване на двигателя за ролевата игра Dink Smallwood. Той поддържа не само оригиналните файлове с данни за играта, но също така поддържа модификации на игри, произведени от потребителя или D-Mods. До тази степен той включва и преден край за управление на всички ваши D-Mods. (док.)

Безплатни UCS Outline шрифтове

GNU FreeFont е колекция от мащабируеми контурни шрифтове, които са подходящи за обща компютърна употреба и за настолно публикуване. Включени са сериф, без засечки и моноширинен шрифт, всички налични във формати TrueType и OpenType. Шрифтовете поддържат широк спектър от знаци за много различни системи за писане и имат отлично покритие на математическата нотация. (док.)

Безплатен IPMI

GNU FreeIPMI е колекция от вътрешнолентов и извънлентов IPMI софтуер в съответствие със спецификацията на IPMI v1.5 / 2.0. Тези програми предоставят набор от интерфейси за управление на платформата. Общата функционалност включва наблюдение на сензори, наблюдение на системни събития, контрол на захранването и сериен през LAN. (док.)

Свободен разговор

GNU Freetalk е Jabber / XMPP клиент за чат от команден ред. По-специално той използва библиотеката Readline за обработка на въвеждане, така че разполага с удобна навигация по текст, както и завършване с раздели на имена на приятели, команди и английски думи. Той също така може да бъде скрипт и разширяем чрез Guile. Този пакет търси поддържащ. (док.)

FriBiDi

GNU FriBidi е реализация на двупосочния алгоритъм на Unicode. Този алгоритъм се използва за правилно показване на текст в подреждане от ляво на дясно или от дясно наляво, ако е необходимо. (док.)

G-Голф

G-Golf (Gnome: (Guile Object Library for)) е библиотека за разработване на съвременни приложения в схемата на Guile. Състои се от директно свързване към GObject Introspection API и функционалност от по-високо ниво за импортиране на библиотеки на Gnome и предоставяне на класове (и методи) на GObject в обектно-ориентирана програмна система на Guile, GOOPS. (Doc)

Гама

GNU Gama е програма за настройка на геодезически мрежи. Полезно е при измервания, където глобалната система за позициониране (GPS) не е налична, като например под земята. Той разполага с възможност за настройка в местни декартови координати, както и частична поддръжка за корекции в глобални координатни системи. (док.)

Безплатен ARP демон

GNU garpd излъчва безвъзмездни ARP (протокол за разрешаване на адреси) заявки/отговори за списък с MAC адреси<->Съпоставяне на IP адреси на определени интерфейси на редовни интервали. Безвъзмездните пакети с ARP заявка са тези, при които IP адресът на източника и на местоназначението са IP на искащата машина. Безплатните ARP отговори са тези, направени без съответна заявка. (док.)

Gawk

Gawk е GNU реализацията на Awk, специализиран език за програмиране за лесна манипулация на форматиран текст, като таблици с данни. Gawk разполага с много разширения извън традиционната реализация, включително достъп до мрежата, сортиране и големи библиотеки. (док.)

Гбехистун

GNU Behistun се състои от софтуер и помощни програми за геоложко и геофизично моделиране и картографиране на вътрешни структури и динамика. Подобно на многоезичния надпис на Behistun, софтуерните помощни програми Behistun предоставят знания и функционалност за работа върху планетарни системи и свободно изследване на вътрешността им. (док.)

Gcal

Gcal е програма за изчисляване и отпечатване на календари в командния ред. Календарите могат да се отпечатват в изгледи за 1, 3 месеца или за цяла година. Освен това за много страни могат да се генерират вечни списъци с празници, които могат да бъдат допълнени от направени от потребителя списъци с фиксирани дати, за да се направи дневен ред. Gcal може също да изчислява астрономически данни, като фазите на луната, и поддържа алтернативни календарни формати: юлиански, григориански, ислямски, китайски и др. (док.)

Gcc

GCC е колекцията на компилаторите на GNU. Той предоставя преден край на компилатора за няколко езика, включително C, C ++, Objective-C, Fortran, Java, Ada и Go. Той също така включва библиотеки за поддръжка по време на изпълнение за тези езици. (док.)

Gcide

GCIDE е безплатен речник, базиран на комбинация от източници. Може да се използва чрез програмата GNU Dico или да бъде достъпен онлайн на http: //gcide.sayt.ua/ (doc)

GNU Common Lisp

GCL е реализация на езика Common Lisp. Той разполага със способността да компилира в собствения обектен код и да зарежда модули на собствения обектен код директно в неговото lisp ядро. Той също така разполага със стратифицирана стратегия за събиране на боклука, дебъгер на ниво източник и вграден интерфейс към системата за джаджи Tk. (док.)

GCompris

GCompris е пакет от образователен софтуер за деца. Предлага разнообразни дейности, подходящи за деца на възраст от 2 до 10 години. Пакетът включва дейности за въвеждане и развитие на умения за използване на компютър, алгебра, наука, четене и др. Той също така включва някои игри като шах и судоку. (док.)

Gdb

GDB е дебъгерът на GNU. С него можете да наблюдавате какво прави дадена програма, докато се изпълнява или какво е правила точно преди срив. Позволява ви да зададете условията на изпълнение, да дефинирате точки на прекъсване и да промените начина, по който се изпълнява програмата, за да се опитате да коригирате грешки. Може да се използва за отстраняване на грешки в програми, написани на C, C ++, Ada, Objective-C, Pascal и др. (док.)

Gdbm

GDBM е библиотека за манипулиране на хеширани бази данни. Използва се за съхраняване на двойки ключ/стойност във файл по начин, подобен на библиотеката на Unix dbm и предоставя интерфейси към традиционния файлов формат. (док.)

Генген

GNU Gengen е програма за генериране на текст-генератори, т.е. функции, произвеждащи текст с променливи секции. Текстът първо се посочва от потребителя в шаблонен файл, съдържащ параметри, след което се обработва от gengen за създаване на генератора на текст. По време на изпълнение променливият текст се дефинира от останалата част от програмата и се предава на генератора на текст, който след това го замества в параметрите на шаблона и връща резултата. Gengen може да се използва за генериране на C и C ++ код. (док.)

Генгетопт

GNU Gengetopt е програма за генериране на C / C ++ функция за анализиране на опциите на командния ред с помощта на функцията getopt_long, намираща се в GNU libc, премахваща част от досадата на тази задача за големи програми, които приемат много опции. Опциите, анализирани от генерираната функция, могат да бъдат както в кратки (например, -h), така и в дълги (--help) формати, както е посочено от стандартите за кодиране на GNU. Освен това изходът на стандартните опции --help и --version се генерира автоматично. (док.)

Вземете текст

GNU Gettext е пакет, осигуряващ рамка за превод на текстовия изход от програми на множество езици. Той предоставя на преводачите средства за създаване на каталози на съобщения, както и режим на Emacs за работа с тях и библиотека по време на изпълнение за зареждане на преведени съобщения от каталозите. Почти всички пакети на GNU използват Gettext. (док.)

Гфорт

Gforth е бърза и преносима реализация на езика ANSI Forth. Той включва режим на редактиране за Emacs и интерпретатор, включващ завършване и история. Включена е и обща среда за виртуална машина, vmgen. (док.)

Ggradebook

GNU Gradebook е приложение за учители за проследяване на оценките на учениците. Той поддържа няколко стила на оценяване, включително американски (A, B, C, D, F) и европейски цифрови скали. (док.)

GNU Ghostscript

Ghostscript е интерпретатор за езика PostScript и PDF файловия формат. Той също така включва C библиотека, която реализира графичните възможности на езика PostScript. Той поддържа голямо разнообразие от изходни файлови формати и принтери. (док.)

ПОДАРЪК

Инструментът за намиране на изображения на GNU (GIFT) е система за извличане на изображения, базирана на съдържание. Той използва съдържанието на изображения за извършване на заявки към колекция, което ви позволява да правите заявки чрез пример. Също така е включен инструмент за индексиране на цели дървета на директории. (док.)

Gimp

GIMP е приложение за задачи за манипулиране на изображения като ретуширане на снимки, композиция и авторство. Той поддържа всички често срещани формати на изображения, както и специализирани. Той разполага с много адаптивен интерфейс, който е разширяем чрез система за приставки. (док.)

Почистете

GNU glean е модулна система за самостоятелно обучение, значително по-сложен от стандартния метод за флаш карти. Той е много адаптивен, позволявайки на потребителя да дефинира предмети от интерес и дейности за тяхното изучаване. Засега той има текстов интерфейс в Guile REPL и експериментален уеб интерфейс. (док.)

Gleem

GNU gleem е библиотека за Java и C++, предлагаща набор от 3D джаджи, които поддържат директно взаимодействие на потребителя с 3D сцена. Тези джаджи се използват за превод по линия, превод в равнина и извършване на триизмерен превод и завъртане. Този пакет търси поддържащ. (док.)

GLib

Глобални

GNU GLOBAL е система за маркиране на изходен код, която функционира по същия начин в широк спектър от среди, като различни текстови редактори, обвивки и уеб браузъри. Получените тагове са полезни за бързо придвижване в голям, дълбоко вложен проект. (док.)

GLPK

GLPK е C библиотека за решаване на широкомащабно линейно програмиране (LP), смесено целочислено програмиране (MIP) и други свързани проблеми. Той поддържа езика за моделиране GNU MathProg, подмножество на езика AMPL, и разполага с преводач за езика. В допълнение към библиотеката C, в пакета е включен самостоятелен LP / MIP решаващ. (док.)

Gmedia сървър

GMediaServer е UPnP-съвместим медиен сървър. Той обслужва аудио и видео файлове на свързани към мрежата медийни плейъри чрез програма от команден ред, която работи във фонов режим. (док.)

GMP

GMP е библиотека за произволна прецизна аритметика, работеща с цели числа със знак, рационални числа и числа с плаваща запетая. Прецизността е ограничена само от наличната памет. Библиотеката е силно оптимизирана, с фокус върху дизайна върху скоростта на изпълнение. Той е насочен към използване например в криптографията и изчислителната алгебра. (док.)

Скърцане

Gnash е безплатен плейър за Flash филми. Той поддържа SWF версия v7 и някои от v8 и v9. Възможно е да конфигурирате Gnash да използва няколко различни аудио или видео бекенда, осигурявайки добра производителност. (док.)

GNAT

МАРКИ

GNATS е набор от инструменти за проследяване на грешки и други софтуерни проблеми, докладвани от потребителите. Той е напълно отворен в начина, по който неговата база данни може да бъде заявена, редактирана и поддържана, включвайки интерфейси, вариращи от командния ред до Emacs, въпреки че основното средство за взаимодействие е чрез неговия уеб интерфейс. Освен това е достатъчно гъвкав, за да поддържа създадени от потребителя помощни програми. (док.)

Gnatsweb

Гневрална мрежа

Gneural Network реализира програмируема невронна мрежа. Понастоящем поддържа мрежи с пренасочване, които могат да научат прости задачи като напасване на кривата. (док.)

GNOME

GNOME е графичният работен плот за GNU. Той включва голямо разнообразие от приложения за сърфиране в мрежата, редактиране на текст и изображения, създаване на документи и диаграми, възпроизвеждане на медии, сканиране и много други. (док.)

Референтно ръководство на GNU C

Това е справочник за езика за програмиране C, както е реализиран от GNU C компилатора (gcc). Като справка не е предназначен да бъде урок за езика. По-скоро той очертава всички конструкции на езика. Функциите на библиотеката не са включени. (док.)

GNU-pw-mgr

Тази програма е предназначена да улесни възстановяването на трудни пароли, когато са необходими, като същевременно ограничава риска от атака. Потребителят на тази програма въвежда самодефинирана трансформация на URL адрес на уеб сайт и получава подсказка за парола и потребителско име за този уеб сайт. (док.)

GNUbatch

GNUbatch е усъвършенствана система за групово планиране. Той изпълнява изчислителни задачи на определени дати и часове или според взаимозависимости. Задачите могат да бъдат завършени на произволен брой процесори, споделени в мрежа. Поддържа се пълен контрол на достъпа на заданията. (док.)

Табла

Приложението GNU табла може да се използва за игра, анализиране и преподаване на играта. Той има усъвършенствана машина за оценка, базирана на изкуствени невронни мрежи, подходяща както за начинаещи, така и за напреднали играчи. В допълнение към интерфейса на командния ред, той също така разполага с атрактивно, 3D представяне на дъската за игра. (док.)

GNUbiff

GNUbiff е програма, която проверява за поща и ви уведомява, когато пристигат нови съобщения. Той поддържа множество пощенски кутии, които могат да бъдат достъпни чрез различни методи като POP3, IMAP, MH и пощенски файлове. Графичните известия се предоставят с GTK и се поддържа пълна интеграция с GNOME. (док.)

GNUbik

GNUbik е пъзел игра, в която трябва да манипулирате куб, за да направите всяко от неговите лица да има еднакъв цвят. Играта може да се персонализира, което ви позволява да зададете размера на куба (по подразбиране е 3x3) или да промените цветовете. Можете дори да приложите снимки върху лицата вместо цветове. Играта се скриптира с Guile. (док.)

GNUcap

GNUcap е пакет за анализ на веригата. Той предлага симулатор на верига с общо предназначение и може да извършва анализи на DC и преходни процеси, анализ на Фурие и анализ на променлив ток. Двигателят е проектиран да прави истинска симулация в смесен режим. (док.)

GnuCash

GnuCash е личен и професионален финансово-счетоводен софтуер. Може да се използва за проследяване на банкови сметки, наличности, приходи и разходи въз основа на счетоводната практика на двойно вписване. Той включва поддръжка за QIF / OFX / HBCI импорт и съвпадение на транзакции. Той също така автоматизира няколко задачи, като финансови изчисления или планирани транзакции. (док.)

Gnucomm

Телекомуникационна подсистема на проекта GNU: общ проект за GNU Telephony софтуер, понастоящем Bayonne, SIP Witch и техните поддържащи библиотеки (Common C ++ / uCommon, ccAudio, ccScript, ccRTP и ZRTP / ZRTP4J). (док.)

GnuDOS

GnuDOS е набор от програми, предназначени да помогнат на новите потребители на системата GNU да свикнат със системата, особено на потребители, които може да идват от DOS фон. Състои се от файлов мениджър, текстов редактор и дизайнер на формуляри за конзолата, както и основна библиотека за изграждане на подобни помощни програми. (док.)

GNU Enterprise

GNU Enterprise поддържа корпоративно планиране. Той включва сървър на приложения, обща библиотека за разработка, IDE за проектиране на формуляри за данни, интерфейс на формуляри, система за навигация и менюта и система за отчитане на данни. (док.)

GNUgo

GNU Go е програма, която играе играта Go, в която играчите поставят камъни върху мрежа, за да образуват територия или да улавят други камъни. Въпреки че може да се играе директно от терминала, изобразен в ASCII знаци, също така е възможно да се играе GNU Go с графични интерфейси на трети страни или дори в Emacs. Той поддържа стандартния формат за съхранение на игри (SGF, Smart Game Format) и формат за комуникация между процеси (GMP, Go Modem Protocol). (док.)

Интерактивни инструменти на GNU

Интерактивните инструменти на GNU са набор от леки интерактивни инструменти за команден ред. Те включват разширяем, ортодоксален (двупанел) файлов мениджър, ASCII / шестнадесетичен преглед на файлове и преглед на процеси / убиец. Пакетът също така включва някои свързани помощни програми и скриптове, като например инструмент за декомпресиране на всякакъв тип архивен файл. Всички инструменти могат да бъдат подобрени и разширени чрез техните конфигурационни файлове, за да изпълняват нови команди. (док.)

GNUjump

GNUjump е проста, но пристрастяваща игра, в която трябва да скачате от платформа на платформа, за да избегнете падане, докато платформите падат с по-бързи темпове, колкото по-високо се качвате. Играта включва мултиплейър, неограничен FPS, плавно падане на пода, тематични графики и звуци и повторения. (док.)

GNUlib

Gnulib е централно място за обща инфраструктура, необходима на пакетите на GNU. Той предоставя голямо разнообразие от функционалности, например преносимост в много системи, работа с низове на Unicode, криптографски изчисления и много други. Кодът е предназначен да се споделя на ниво изходни файлове, вместо да бъде самостоятелна библиотека, която се разпространява, създава и инсталира. Включеният скрипт gnulib-tool помага при използването на Gnulib код в други пакети. Gnulib също така включва копия на файлове, свързани с лицензиране и поддръжка, за удобство. (док.)

мах

GNUmed

GNUmed е софтуер за електронни медицински досиета, поддържащ безхартиени медицински практики. Поддържат се няколко езика на интерфейса. (док.)

GNUmeric

GNUmeric е приложение за електронни таблици на GNU, работещо под GNOME. Той е оперативно съвместим с други приложения за електронни таблици. Той има огромен набор от функции извън типичната функционалност на електронни таблици, като поддръжка за линейни и нелинейни решаващи задачи, статистически анализ и телекомуникационно инженерство. (док.)

GNUmp3d

GNUMP3d е стрийминг сървър за MP3 и Ogg Vorbis аудио файлове, филми и други медийни формати. Той е малък и самостоятелен, като представя прост, тематичен HTML интерфейс. След това аудио файловете могат да се възпроизвеждат във всеки плейър, който поддържа стрийминг през HTTP. (док.)

GNU Обединените нации

GNUnited Nations е система за изграждане за превод на уеб сайта на www.site. Работи чрез шаблонни файлове, които позволяват обединяването на промените в отделни преводи на страница, от които се генерира окончателният HTML. На практика това помага да се поддържат всички преводи на дадена страница актуални. (док.)

GNUnet

GNUnet е рамка за сигурна партньорска мрежа. Целта на високо ниво е да се осигури здрава основа на безплатен софтуер за глобална, разпределена мрежа, която осигурява сигурност и поверителност. GNUnet в този смисъл има за цел да замени текущия стек от интернет протоколи. Заедно с приложение за сигурно публикуване на файлове, то се разрасна, за да включва всички видове основни приложения за основата на GNU интернет. (док.)

GnuPG

GNU Privacy Guard е пълна реализация на стандарта OpenPGP. Използва се за криптиране и подписване на данни и комуникация. Той разполага с мощно управление на ключове и възможност за достъп до сървъри с публичен ключ. Той включва няколко библиотеки: libassuan (IPC между компонентите на GnuPG), libgpg-error (централизирани стойности за грешки на GnuPG) и libskba (работа с X.509 сертификати и CMS данни). (док.)

GNUpod

GNUpod е колекция от скриптове за използване на iPod с GNU / Linux и други операционни системи. Може да се използва за прехвърляне на музика и обложка, търсене на файлове, премахване на файлове, редактиране на тагове, създаване на плейлисти и др. (док.)

GNUprologjava

GNU Prolog за Java е реализация на стандарта ISO Prolog като Java библиотека (gnu.prolog). По този начин с него можете да използвате Prolog от Java програми. (док.)

Радио

GNU Radio е инструментариум за внедряване на софтуерни радиостанции. Неговите блокове за обработка на сигнали могат да бъдат комбинирани с евтин външен RF хардуер за създаване на софтуерно дефинирани радиостанции. Без хардуер може да се използва за симулация. Радио приложенията са написани предимно на Python, с поддръжка на C ++ за критични за производителността задачи за обработка. (док.)

роботи

GNU Robots е игра, в която програмирате робот да изследва свят, пълен с врагове, които могат да го наранят, препятствия и храна за ядене. Целта на играта е да останеш жив и да събираш награди. Програмата за роботи може удобно да бъде написана в обикновен текстов файл на езика за програмиране на схемата. (док.)

GNUschool

GNUschool е уеб приложение за ученици, учители и училищни администратори. С него учителите могат да създават тестове, които учениците да вземат онлайн, да дават обратна връзка и да дават оценки. Училищните администратори могат да го използват, за да наблюдават посещаемостта на учениците и да редактират информация за учениците. (док.)

GNUshogi

GNU Shogi е програма, която играе играта Shogi (японски шах). Той също така включва графичен интерфейс към играта. Макар и подобен на стандартния шах, този вариант е много по-сложен. (док.)

GNUsound

GNUsound е многопистов звуков редактор за GNOME 1 и 2. Може да чете и записва много аудио файлови формати като WAV, MP3 и FLAC. Може да работи с аудио бекендовете на OSS, ALSA или JACK. Той предоставя много различни вградени модули за обработка на аудио, като затихване/излизане, забавяне и филтри. Плъгините на GLADSPA също могат да се използват за по-нататъшна обработка. (док.)

GNUspool

GNUspool е усъвършенствана система за спулиране на печат. В допълнение към функционалността на стандартната система за печат, тя предоставя възможности за последваща обработка, обработка на типа на формуляра, подравняване на страници и други функции. Той функционира прозрачно в мрежа, споделяйки задания на всеки хост с принтери на всеки друг хост. Налични са няколко различни потребителски интерфейса. (док.)

GNUstep

GNUstep е напълно функционална обектно-ориентирана среда за разработка; Включени са и редица потребителски приложения. Той отблизо следва API на Cocoa, но е независим от платформата. (док.)

GnuTLS

GnuTLS е защитена комуникационна библиотека, която реализира протоколите SSL, TLS и DTLS. Предоставя се под формата на C библиотека за поддръжка на протоколите, както и за анализиране и записване на X.5009, PKCS 12, OpenPGP и други необходими структури. (док.)

GNUtrition

GNUtrition е безплатен софтуер за анализ на храненето. С него човек може да следи хранителната информация на храната. Софтуерът използва базата данни за хранителни вещества от стандартната справка на Министерството на земеделието на САЩ като източник на информация за хранителните вещества. (док.)

GNUzilla

Гоптически

Goptical е библиотека за оптичен дизайн и симулация в C ++. Той предоставя моделни класове за оптични компоненти, повърхности и материали. С него може да се симулира изграждането на оптична система чрез създаване и поставяне на оптични компоненти в 3D пространство и да се визуализира светлината, разпространяваща се през системата. (док.)

Горм

Gpaint

GNU Paint е проста, лесна за използване програма за рисуване за средата на GNOME. Той поддържа рисуване на ръка, както и основни форми и текст. Той включва изрязване и поставяне за неправилни региони или многоъгълници. (док.)

Gperf

gperf е перфектен генератор на хеш функции. За даден списък с низове той произвежда хеш функция и хеш таблица в C или C ++ код. Това, че хеш функцията е перфектна, означава, че не могат да съществуват сблъсъци и че могат да се правят справки чрез сравнения на един низ. (док.)

Gprolog

GNU Prolog е съвместим със стандартите компилатор на Prolog с решаване на ограничения върху крайни домейни. Той приема ограничителни програми Prolog + и създава компилиран, собствен двоичен файл, който може да функционира самостоятелно. Той също така разполага с интерактивен преводач. (док.)

phpGrabComics

phpGrabComics е програма, която извлича и записва комикси от мрежата. Той включва както сървър, който може да изтегля ленти от различни източници, така и портове, малки приложения, които получават списъка с наличните комикси от сървъра. (док.)

Грег

GNU Greg е рамка за тестване на програми и библиотеки. Той предоставя единен преден край за всички тестове на пакет, както и проста рамка за писане на тестовете. Той се зарежда като модул Guile във всеки софтуер с вграден интерпретатор на Guile. Той също така предоставя компилиран модул, който може да бъде динамично свързан с Guile, за да позволи тестване на външни програми. (док.)

Grep

grep е инструмент за намиране на текст във файлове. Текстът се намира чрез съвпадение на шаблон, предоставен от потребителя в един или много файлове. Моделът може да бъде предоставен като основен или разширен регулярен израз или като фиксирани низове. По подразбиране съответстващият текст се отпечатва просто на екрана, но изходът може да бъде значително персонализиран, за да включва, например, номера на редове. GNU grep предлага много разширения в сравнение със стандартната помощна програма, включително, например, рекурсивно търсене в директории. (док.)

Гретл

GNU Gretl е пакет за извършване на статистически изчисления за иконометрия. Състои се както от клиент на командния ред, така и от графичен клиент. Той включва различни оценки като най-малките квадрати и максималната вероятност; няколко метода за времеви серии като ARIMA и GARCH; ограничени зависими променливи като logit, probit и tobit; и мощен скриптов език. Може да извежда модели като LaTeX файлове. Той също така може да бъде свързан с GNU R и GNU Octave за по-нататъшен анализ на данните. (док.)

Гроф

Groff е пакет за набор, който чете обикновен текст и произвежда форматиран изход въз основа на команди за форматиране, съдържащи се в текста. Обикновено това е формататорът на страниците с документация на man. (док.)

GRUB

GRUB е многозареждащ буутлоудър. Използва се за първоначално зареждане на ядрото на операционна система и след това прехвърляне на контрол към нея. След това ядрото продължава да зарежда останалата част от операционната система. Като многозареждащ буутлоудър, GRUB се справя с наличието на множество операционни системи, инсталирани на един и същ компютър; при стартиране на компютъра на потребителя се показва меню за избор на една от инсталираните операционни системи. (док.)

Gsasl

GNU SASL е реализация на рамката за просто удостоверяване и слой за сигурност. На мрежови сървъри като IMAP или SMTP сървъри, SASL се използва за обработка на удостоверяване на клиент/сървър. Този пакет съдържа както библиотека, така и инструмент от командния ред за достъп до библиотеката. (док.)

Gsegrafix

GSEGrafix е приложение, което създава висококачествени графични графики за наука и инженерство. Графиките се задават чрез прости ASCII файлове с параметри и файлове с данни и се представят в платно на GNOME с анти-алиас. Програмата поддържа правоъгълни двуизмерни графики, хистограми, графики с полярна ос и триизмерни графики. Сюжетите могат да бъдат отпечатани или запазени във формати на изображения BMP, JPEG или PNG. (док.)

Научна библиотека на GNU

GNU Scientific Library е библиотека за числен анализ в C и C ++. Той включва широк спектър от математически процедури, с общо над 1000 функции. Предметните области, обхванати от библиотеката, включват: диференциални уравнения, линейна алгебра, бързи трансформации на Фурие и произволни числа. (док.)

GNU Slip

GNU Slip е функционално разширение на възможностите, предоставени в списъка на C++ Standard Template Library (STL) и контейнерите на опашката, въпреки че SLIP не е заместител на STL контейнерите. Клетките с данни SLIP могат да се използват в специфични за приложението изчисления, наред с други подобрения. (док.)

GSRC поддържа инсталиране на най-новите версии на GNU пакети на съществуваща система. Новите версии се инсталират на отделно място, за да не пречат на системните версии. Целта е да се улесни работата с оригиналните, възходящи, GNU източници и може би да се помогне при разработката и тестването. (док.)

Обща служба за сигурност

Общата служба за сигурност на GNU предоставя безплатна реализация на спецификацията GSS-API. Той предоставя общ интерфейс за програмиране на приложения за програми за достъп до услуги за сигурност. Услугите за сигурност представят общ GSS интерфейс, с който извикващото приложение взаимодейства чрез тази библиотека, освобождавайки разработчика на приложението от необходимостта да знае за основната реализация на защитата. (док.)

Gtick

GTick е приложение за метроном. Поддържа различни измервателни уреди, като 2/4, 3/4, 4/4 и т.н. Той също така поддържа широк диапазон от скорости, от 10 до 1000 BPM. Той предоставя потребителски интерфейс, базиран на GTK + и може да използва както OSS, така и ALSA като аудио бекенд. (док.)

GTK +

Gtypist

GNU Typist е универсален учител по писане. Може да се използва за научаване и практикуване на писане с докосване. Включени са няколко урока; освен уроци за стандартното QWERTY оформление, има и уроци за алтернативните оформления Dvorak и Colemak, както и за numpad. Уроците са предимно на английски, но са предоставени някои на други езици. (док.)

Коварство

Guile е Вездесъщият интелигентен език на GNU за разширения, официалният език за разширения на системата GNU. Това е реализация на езика Scheme, който може лесно да бъде вграден в други приложения, за да осигури удобно средство за разширяване на функционалността на приложението, без да се изисква изходният код да бъде пренаписан. (док.)

Коварство-cv

Guile-CV е библиотека за функционално програмиране на Computer Vision за езика на схемата Guile. Guile-CV се базира на Vigra (Визия с общи алгоритми). Състои се от директно свързване към vigra_c (C обвивка към подмножество от библиотеката Vigra) и API на по-високо ниво, написан в схемата на Guile. (док.)

Коварство-dbi

guile-dbi е библиотека за Guile, която предоставя удобен интерфейс към SQL бази данни. Програмирането на бази данни с guile-dbi е общо, тъй като се представя един и същ програмен интерфейс, независимо от това коя база данни се използва. В момента поддържа MySQL, Postgres и SQLite3. (док.)

Коварство-гном

Включва guile-clutter, guile-gnome-gstreamer, guile-gnome-platform (библиотеки за разработчици на GNOME) и guile-gtksourceview. (док.)

Коварство-проклятия

guile-ncurses предоставя езикови обвързвания на Guile за библиотеката ncurses. (док.)

Guile-opengl

Guile-OpenGL е библиотека за Guile, която предоставя обвързвания към графичния API на OpenGL. (док.)

Guile-SDL

Guile-SDL е набор от обвързвания към Simple DirectMedia Layer (SDL). С тях програмистите на Guile могат да имат лесен достъп до графика, звук и въвеждане на устройства (клавиатури, джойстици, мишки и др.). (док.)

Guix

GNU Guix е функционален мениджър на пакети за системата GNU и също е негова дистрибуция. Той включва изображение на виртуална машина. Освен обичайните функции за управление на пакети, той също така поддържа транзакционни надстройки и връщания назад, профили на потребител и много други. Той е базиран на мениджъра на пакети Nix. (док.)

гърмя

GURGLE създава списъци с отчети за база данни от запис и информация за полета от файл. Той използва отчета, за да произведе (La) TeX-форматиран изход, обикновен ASCII текст, troff, PostScript, HTML, XML или всеки друг изходен формат, базиран на ASCII. Може да се използва за създаване на големи части от текст, където малки части от текста се заменят с информация от базата данни. GURGLE поддържа бази данни GNUSQL, PostgreSQL, MySQL и CA-Ingres. (док.)

GNU GV е графичен потребителски интерфейс към интерпретатора на Ghostscript. С него можете да преглеждате и навигирате през PostScript и PDF документи в X Windows. (док.)

GVPE

GNU Virtual Private Ethernet създава виртуална мрежа с множество възли, използвайки различни транспортни протоколи. Той работи чрез създаване на криптирани тунели от хост до хост между множество крайни точки. (док.)

Gwl

GWL е език на работния процес, който разширява декларативния език на Guix за управление на пакети, за да автоматизира изпълнението на програми. Освен това GWL може да използва Grid Engine за разтоварване на изпълнението на програмата. (Doc)

Gxmessage

GNU gxmessage е програма, която изскача диалогови прозорци, които показват съобщение на потребителя и чака тяхното действие. След това програмата излиза с код за излизане, съответстващ на отговора. (док.)

Gzip

GNU Gzip предоставя помощни програми за компресиране и декомпресия на данни; типичното разширение е .gz. За разлика от zip формата, той компресира един файл; в резултат на това често се използва във връзка с tar, което води до .tar.gz или .tgz и т.н. (док.)

ХалиФАКС

HaliFAX поддържа изпращане и разглеждане на факсове, включително обвивка около командата lpr. Този пакет търси поддържащ. (док.)

Здраве

GNU Health е безплатна медицинска софтуерна система, включваща поддръжка за електронни медицински досиета (EMR), болнична информационна система (HIS) и здравна информационна система. Той поддържа както испански, така и английски интерфейси. Той е приет от Университета на ООН за прилагане и обучение, както и от няколко болници и здравни министерства по света. (док.)

Здравейте

GNU Hello отпечатва съобщението Hello, world! и след това излиза. Той служи като пример за стандартни практики за GNU кодиране. Като такъв, той поддържа аргументи от командния ред, множество езици и т.н. (док.)

Help2man

GNU help2man е програма, която автоматично преобразува изхода на стандартните аргументи от командния ред --help и --version в ръчна страница. (док.)

Hp2xx

GNU hp2xx преобразува векторни графики, посочени на езика на плотера HP-GL, в различни графични формати, базирани както на вектор, така и на растер, включително EPS, PCX, IMG и формати, предназначени за използване в TeX документи. (док.)

Httptunnel

GNU httptunnel създава двупосочен път на данни, тунелиран в HTTP заявки. Това позволява на потребителите зад защитни стени да изпращат и получават данни, които иначе биха били блокирани, като telnet или ssh връзки. (док.)

Хърд

Hurd е ядрото за системата GNU, замяна и разширение на стандартните ядра на Unix. Това е колекция от протоколи за взаимодействие на системата (файлови системи, мрежи, удостоверяване) и сървъри, които ги реализират. Подпроектите включват Mach, микроядрото, на което се базира Hurd, което осигурява основен механизъм за комуникация между процесите и MIG, генератор на интерфейс за Mach. (док.)

Хипербола

Hyperbole е програмируема информационна и хипертекстова система за GNU Emacs. Тя позволява хипертекст да бъде вграден в документи, имейл съобщения и новинарски статии. Това позволява базиран на мишката контрол върху показаната информация. (док.)

Icecat

IceCat е GNU версията на браузъра Firefox. Това е напълно безплатен софтуер, който не препоръчва несвободни плъгини и добавки. Той също така разполага с вградени функции за защита на поверителността. (док.)

Идутили

Пакетът GNU idutils включва инструменти за създаване на индекс на текстови токени, използвани в списък с имена на файлове и след това за запитване на този индекс. По този начин той позволява на потребителя например да намери всички приложения на определена функция в голям проект за програмиране. В допълнение към обработката на текстови токени, той може да обработва и числови константи и съдържанието на символни низове. (док.)

Ignuit

Ignuit е инструмент за подпомагане на запаметяването на нова информация, базирана на системата с флаш карти Leitner. В тази система новите карти се изучават с намаляваща честота, когато остаряват, освен ако не срещнете затруднения при запаметяването им, след което ги срещате по-често. Картите могат да включват вградено аудио, изображения и математически формули, а колекция от карти може да бъде експортирана в няколко формата. (док.)

Отстъп

Indent е програма, която прави изходния код по-лесен за четене, като го преформатира в последователен стил. Може да промени стила на един от няколко различни стила като GNU, BSD или K&R. Той има известна гъвкавост за справяне с непълен или неправилен синтаксис. GNU indent предлага няколко разширения спрямо стандартната помощна програма. (док.)

Inetutils

Inetutils е колекция от общи мрежови програми, като ftp клиент и сървър, telnet клиент и сървър и rsh клиент и сървър. (док.)

Inklingreader

GNU InklingReader е пакет за поддръжка на устройството Wacom Inkling, включително конвертиране на данни в различни безплатни формати, основни функции за редактиране и плъгин Inkscape. (док.)

Intlfonts

GNU intlfonts съдържа безплатни шрифтове X11 във форматите BDF и TrueType. Те обхващат по-специално голям брой знаци от различни писмени системи: европейска, азиатска, китайска, японска, корейска, етиопска и други. (док.)

ЖАКАЛ

GNU JACAL е интерактивна програма за символна математика, базирана на Scheme. Той манипулира и опростява редица математически изрази като уравнения, скалари, вектори и матрици. (док.)

Джами

Jami е програма за универсална комуникация, която зачита свободите и поверителността на своите потребители. Jami използва разпределени хеш таблици за установяване на комуникация. По този начин се избягва воденето на централизирани регистри на потребителите и съхраняването на лични данни. (док.)

Java-getopt

java-getopt предоставя Java порт на GNU getopt функцията от glibc. Той поддържа синтактичен анализ както на дълги, така и на кратки аргументи от командния ред по гъвкав начин, който е напълно съвместим с версията на C. (док.)

Джел

GNU JEL е библиотека, която позволява на програмата да приема дефинирани от потребителя изрази, които да бъдат въведени и оценени по време на изпълнение. Всъщност изразите се компилират от JEL в байткод на Java, за да се избегне загубата на производителност от добавяне на интерпретирани изрази към вече интерпретиран език. (док.)

Java Training Wheels

GNU Java Training wheels осигурява по-малко стръмна крива за обучение за програмиране в Java. Системата се захранва от предварителен процесор, който добавя функции към Java като макрос superfor и система за включване на файлове, подобно на препроцесора на езика C. (Doc)

Jwhois

GNU jwhois е клиент за протокола WHOIS, който ви позволява да запитвате собственика на име на домейн. Програмата използва разширяем конфигурационен файл, за да определи най-подходящия сървър за заявка и при успех показва резултата на потребителя, в противен случай може по избор да пренасочи заявката към друг сървър. (док.)

Кава

GNU Kawa е реализация на езика за програмиране Scheme, който е изграден върху платформата Java. По този начин той е удобно интегриран с Java и се възползва от това, като има компилатор, незадължително статично въвеждане и т.н. Kawa също така служи като рамка за внедряване на други езици за програмиране на платформата Java. В Kawa е включен qexo, частична реализация на XQuery в Java. (док.)

Крак

GNU Leg е набор от библиотеки за игрови двигатели и разработка на игри. В допълнение към библиотеките, той включва и редактори на ресурси, предназначени да улеснят създаването на игри. Пакетът е проектиран да бъде общ и модулен, като поддържа много различни стилове игри. (док.)

По-малко

GNU less е пейджър, програма, която ви позволява да преглеждате големи количества текст на парчета с размер на страница. За разлика от традиционните пейджъри, той позволява движение назад и напред през документа. Освен това не е необходимо да чете целия входен файл преди стартиране, така че стартира по-бързо от повечето текстови редактори. (док.)

GNU C библиотека

Библиотеката GNU C е стандартната C библиотека на системата GNU. Той дефинира системните извиквания и други основни функции, необходими за писане на програми на езика C. Той обработва функционалност на ниско ниво, която комуникира с ядрото, като управление на процеси и файлове, както и функционалност от по-високо ниво, като манипулиране на низове или обработка на аргументи от командния ред. (док.)

Libcdio

Библиотеката за вход и управление на компакт диск GNU (libcdio) е библиотека за достъп до CD-ROM и CD файлове с изображения. Позволява на разработчика да добавя достъп до CD към приложение, без да се тревожи за зависещите от операционната система и устройството свойства на CD-ROM или специфичните детайли на форматите на CD изображения. Той включва pycdio, интерфейс на Python към libcdio, и libcdio-paranoia, библиотека, осигуряваща извличане на аудио без трептене и грешки от компактдискове. (док.)

Libdbh

libdbh предоставя базирани на диск хеш таблици, осигуряващи бързо търсене на двойки ключ-стойност. Въпреки че използването му като цяло е подобно на това на (G) DBM, той има различен дизайн, поддържащ разширено, нетипично използване. (док.)

Свобода Айфел

Проектът Liberty Eiffel е компилаторът на GNU Eiffel. Eiffel е усъвършенстван обектно-ориентиран език за програмиране, който набляга на проектирането и изграждането на висококачествен софтуер за многократна употреба. Liberty Eiffel е пълен, малък и бърз Eiffel компилатор, включващ компилатор Eiffel to C, инструменти за документация, красив принтер, дебъгер и различни други инструменти. Той също така включва голяма библиотека от класове, както и изчерпателен набор от обвивки/свързвания за широко разпространени библиотеки за безплатен софтуер. (док.)

Libextractor

GNU libextractor е библиотека за извличане на метаданни от файлове. Той поддържа много голям брой файлови формати, включително аудио файлове, файлове с документи и архивни файлове. Всеки файлов формат е реализиран като плъгин, така че нови формати могат да се добавят лесно. Пакетът също така съдържа инструмент от командния ред за извличане на метаданни от файл и отпечатване на резултатите. (док.)

Libgcrypt

Libgcrypt е криптографска библиотека с общо предназначение. Той предоставя стандартните криптографски градивни елементи като симетрични шифри, хеш алгоритми, алгоритми с публичен ключ, големи целочислени функции и генериране на произволни числа. (док.)

Libiconv

libiconv осигурява реализация на функцията iconv за системи, които нямат такава. iconv се използва за преобразуване между кодировки на знаци в програма. Той поддържа голямо разнообразие от различни кодировки. (док.)

Libidn

libidn е библиотека, която внедрява спецификациите Stringprep, Punycode и IDNA. Те се използват за кодиране и декодиране на интернационализирани имена на домейни. Той включва собствени библиотеки C, C # и Java. (док.)

Libmatheval

GNU libmatheval е библиотека за анализиране и оценка на символни изрази, въведени от потребителя като текст. Може да се зарежда както от C, така и от Fortran. Интерпретаторът е гъвкав, поддържа произволен брой променливи с произволни имена, десетични и символни константи, основни унарни и двоични оператори и елементарни математически функции. Може също да изчислява символни производни и да извежда изрази към низове. (док.)

Libmicrohttpd

GNU libmicrohttpd е малък, вграждащ HTTP сървър, реализиран като C библиотека. Това улеснява стартирането на HTTP сървър като част от друго приложение. Библиотеката е напълно съвместима с HTTP 1.1. Може да слуша на множество портове, поддържа четири различни модела на нишки и поддържа IPv6. Той също така разполага със защитни функции като основно и обобщено удостоверяване и поддръжка за SSL3 и TLS. (док.)

Librejs

LibreJS е добавка за GNU Icecat и други браузъри, базирани на Firefox. Той открива нетривиален и несвободен JavaScript код от зареждане без вашето съгласие, когато сърфирате в мрежата. Разрешено е зареждането на JavaScript код, който е безплатен или тривиален. (док.)

Libsigsegv

GNU libsigsegv е библиотека за обработка на грешки в страницата, които възникват, когато програма се опита да получи достъп до недостъпен регион на паметта в потребителски режим. Чрез улавяне и обработка на грешки в страницата, програмата може да реализира виртуална памет с възможност за страници, манипулатори за препълване на стека и т.н. (док.)

Libtasn1

GNU libtasn1 е библиотека, реализираща нотацията ASN.1. Използва се за предаване на машинно-неутрално кодиране на обекти от данни в компютърни мрежи, позволявайки формално валидиране на данни според някои спецификации. (док.)

Libtool

GNU Libtool помага при създаването и използването на споделени библиотеки, като представя единен последователен, преносим интерфейс, който крие обичайната сложност на работата със споделени библиотеки на различни платформи. (док.)

Libunistring

GNU libunistring е библиотека, предоставяща функции за манипулиране на Unicode низове и за манипулиране на C низове според стандарта Unicode. (док.)

Libxmi

GNU libxmi е библиотека за растеризиране на 2D векторни графики за C и C ++. Той поддържа рисуване на 2D примитиви в предоставена от потребителя матрица от пиксели. Той също така поддържа спецификацията на сложни стилове на линии като многоцветни пунктирани шарки. Поддържа се също запълване и текстуриране на полигони. (док.)

Светкавица

GNU Lightning е библиотека, която генерира код на асемблер по време на изпълнение. По този начин е полезно при създаването на компилатори Just-In-Time. Той се абстрахира върху целевия процесор, като излага на клиентите стандартизиран набор от RISC инструкции. (док.)

Lilypond

GNU LilyPond е набор за музика, който произвежда висококачествени ноти. Музиката се въвежда в текстов файл, съдържащ контролни последователности, които се интерпретират от LilyPond за получаване на крайния документ. Може да се разшири с Guile. (док.)

Лимс

GNU LIMS е система за управление на лабораторна информация. Използва се за управление на научна лаборатория от всяка област. Състои се от набор от модули за рамката за управление на предприятието Tryton, така че е гъвкава спрямо специфичните нужди на лабораторията. Например, системата включва модули за управление на проби, интегриране на лабораторно оборудване, счетоводство и управление на запасите. (док.)

Linux-libre

GNU Linux-Libre е безплатен (както в свободата) вариант на ядрото на Linux. Той е променен за премахване на всички несвободни двоични петна. (док.)

Течна война 6

GNU Liquid War 6 е бърза, уникална екшън игра. Всеки играч контролира петна течност с цел да завладее цялата карта. Има 13 нива по подразбиране и още над 100 с бонус пакет; нови нива могат лесно да бъдат създадени с помощта на прости файлове с изображения. (док.)

Лиспинтро

Lrzsz

GNU lrzsz е комуникационен пакет, поддържащ протоколите за прехвърляне на файлове XMODEM, YMODEM и ZMODEM. (док.)

Lsh

GNU lsh е безплатна реализация на протокола SSH версия 2. Използва се за създаване на сигурна линия за комуникация между два компютъра, осигуряваща достъп на обвивката до сървърната система от клиента. Той предоставя както сървърния демон, така и клиентското приложение, както и инструменти за манипулиране на ключови файлове. (док.)

GNU M4 е реализация на макро езика M4, който включва някои разширения спрямо други реализации, някои от които се изискват от GNU Autoconf. Използва се като макро процесор, което означава, че обработва текст, разширявайки макроси, когато ги срещне. Той също така има някои вградени функции, например за изпълнение на команди на обвивката или за извършване на аритметика. (док.)

MAC чейнджър

GNU MAC Changer е помощна програма за преглед и промяна на MAC адреси на мрежови устройства. Новите адреси могат да бъдат зададени изрично или произволно. Те могат да включват MAC адреси на същия или други производители на хардуер или, по-общо, MAC адреси от същата категория хардуер. (док.)

Пощальон

GNU Mailman е софтуер за управление на дискусии по имейл и пощенски списъци. Както потребителите, така и администраторите обикновено извършват своите действия в уеб интерфейс, въпреки че са предоставени и интерфейси за имейл и команден ред. Системата разполага с вградено архивиране, автоматична обработка на отпадане, филтриране на съдържанието, доставка на дайджест и други. (док.)

Mailutils

GNU Mailutils е колекция от програми за управление, преглед и обработка на електронна поща. Той съдържа както помощни програми, така и сървърни демони и всички работят по начин, независим от протокола. Основните библиотеки също са достъпни, опростявайки добавянето на възможности за поща към новия софтуер. (док.)

Направете

Make е програма, която се използва за контрол на производството на изпълними или други файлове от техните изходни файлове. Процесът се контролира от Makefile, в който разработчикът определя как всеки файл се генерира от неговия източник. Той има мощна разделителна способност на зависимости и способността да определя кога файловете трябва да бъдат регенерирани след промяна на техните източници. GNU make предлага много мощни разширения в сравнение със стандартната помощна програма. (док.)

MARST

GNU MARST е преводач на Algol-to-C. Пакетът се състои от самия преводач, библиотека, която съдържа необходимите процедури на Algol 60 и конвертор, който преобразува съществуващите програми на Algol 60 от други представяния в представянето на MARST. (док.)

Маверик

GNU MAVERIK е инструментариум за разработка, който поддържа 3D виртуални среди и взаимодействие с тези среди. Той се намира на върха на машина за изобразяване на ниско ниво, която използва OpenGL или Mesa, и предоставя механизми за изобразяване на различни видове обекти, за управление на среди и за осигуряване на поддръжка за 3D взаимодействие. (док.)

Среднощен командир

GNU Midnight Commander е файлов мениджър от командния ред, изложен в общ формат с два панела. В допълнение към стандартните задачи за управление на файлове, като копиране и преместване, Midnight Commander също така поддържа преглед на съдържанието на RPM пакетни файлове и други архиви и управление на файлове на други компютри чрез FTP или FISH. Той също така включва мощен текстов редактор за отваряне на текстови файлове. (док.)

Макрон

GNU Mcron е пълен заместител на Vixie cron. Използва се за изпълнение на задачи по график, като например всеки час или всеки понеделник. Mcron е написан на Guile, така че конфигурацията му може да бъде написана в Scheme; оригиналният формат cron също се поддържа. Този пакет търси поддържащ. (док.)

MCSim

GNU MCSim е пакет за извършване на симулации. Той поддържа статистически или детерминистични симулационни модели чрез стохастични симулации на Монте Карло или динамични, базирани на ODE симулации. Също така може да направи байесов извод чрез симулации на Маркова верига Монте Карло. (док.)

Комплект за разработка на MIX

GNU MDK е Mix Development Kit, емулация на педагогическия компютър MIX и неговия асемблер MIXAL. MIX има виртуален процесор със стандартни функции като регистри, клетки на паметта, превключване на препълване, флагове за сравнение, входно-изходни устройства и набор от двоични инструкции. Пакетът включва компилатор, виртуална машина, GUI за виртуалната машина и др. (док.)

медиагоблин

GNU MediaGoblin е безплатна платформа за публикуване на медии. Той работи по федерализиран начин, освобождавайки потребителя от централизирани уеб услуги. Той поддържа снимки, видео и аудио. (док.)

Топене

GNU MELTING изчислява енталпията, ентропията и температурата на топене на преходите спирала-намотка на дуплекс на нуклеинова киселина. (док.)

MemPool

Библиотеката MemPool е самостоятелна библиотека за разпределение на паметта. Това е библиотека за разпределение на блокове, която използва единичен пул памет с фиксиран размер за разпределяне на блокове памет с променлив размер и експортира функции, подобни на malloc, realloc и free. Той е предназначен или да симулира цели с ниска памет на GNU / Linux и други системи, или да замени напълно управлението на системната памет. (док.)

мес

GNU Mes има за цел да помогне за създаването на пълно стартиране на източника за GNU / Linux системи като GuixSD. Той включва интерпретатор на схема за взаимно самостоятелно хостване, написан на прост C, и базиран на Nyacc C компилатор, написан в GNU Guile-съвместима схема. Библиотеката Mes C поддържа стартиране на gcc. (док.)

Metahtml

GNU MetaHTML е език за програмиране от страна на сървъра, предназначен за световната мрежа. Той има синтаксис, подобен на HTML и Lisp. Той предоставя голяма библиотека с функции, включително поддръжка за сокети, създаване на изображения и връзки с други програми. (док.)

Мифлуз

GNU mifluz е C++ библиотека за съхраняване на пълен текст обърнат индекс. Той съхранява появата на думи в набор от текстове по такъв начин, че по-късно те могат да бъдат търсени. При търсене на дума индексът връща списъка с документи, които съдържат тази дума. (док.)

Миг

Miscfiles

GNU Miscfiles е колекция от общи файлове с данни. Те включват например съкращения на държави, имена и столици; съкращения и имена на валути; индекс на най-добрите текущи практики; карта на набора от ASCII символи; списък с трибуквени кодове на летището; и списък с английски думи. (док.)

MIT / GNU схема

GNU / MIT Scheme е реализация на езика за програмиране на Scheme. Той предоставя интерпретатор, компилатор и дебъгер. Той също така разполага с интегриран редактор, подобен на Emacs, и голяма библиотека по време на изпълнение. (док.)

Мое

GNU Moe е мощен, но лесен за използване текстов редактор. Той работи по безмодерен начин и разполага с интуитивен набор от свързвания на клавиши, които присвояват степен на сериозност на всеки клавиш; например, клавишните комбинации с клавиша Alt са за безобидни команди като движения на курсора, докато комбинациите с клавиша Control са за команди, които ще променят текста. Moe разполага с множество прозорци, неограничено отмяна/повторяване, неограничена дължина на реда, глобално търсене и замяна и др. (док.)

Моти

GNU Motti е проста мултиплейър стратегическа игра, която се играе в терминал. Целта на играта е да завладеете вражески столици чрез заемане и обкръжаване на територия. (док.)

MPC

GNU MPC е C библиотека за извършване на аритметика върху комплексни числа. Той поддържа произволно висока точност и правилно закръглява резултатите. (док.)

Mpfr

GNU MPFR е C библиотека за извършване на многократно прецизни изчисления с плаваща запетая с правилно закръгляване. (док.)

Mpria

GNU MPRIA е C библиотека за извършване на рационални аритметични изчисления с произволно висока точност. Той се основава на библиотеката GMP. (док.)

Mtools

GNU Mtools е набор от помощни програми за достъп до MS-DOS дискове от GNU или Unix система. Той поддържа дълги имена на файлове и множество дискови формати. Той също така поддържа някои специфични за FAT функции като етикети на обеми и специфични за FAT файлови атрибути. (док.)

Нана

GNU Nana е рамка за добавяне на проверка на твърдения, регистриране и измерване на производителността към C и C ++ програми. Операциите могат да се реализират директно в C или чрез генериране на команди за отстраняване на грешки. Функциите за проверка и регистриране могат да бъдат активирани или деактивирани по време на компилиране или изпълнение. (док.)

нано

GNU nano е малък и прост текстов редактор за използване в терминал. Освен основно редактиране, той поддържа: отмяна/повторяване, подчертаване на синтаксиса, проверка на правописа, оправдаване, автоматично отстъп, съвпадение на скоби, интерактивно търсене и замяна (с регулярни изрази) и редактиране на множество файлове. (док.)

Нано-архимед

nano-archimedes е безплатен пакет за симулация на квантови системи. Тя се основава на уравнението на Вигнер, формулировка на квантовата механика в термините на фазово пространство, което е математически еквивалентно на уравнението на Шрьодингер. nano-archimedes прилага метода Wigner Monte Carlo. Кодът може лесно да бъде разширен до теория на функционалната плътност (DFT) и зависими от времето ab-initio симулации. (док.)

Ncurses

GNU Ncurses е библиотека, която предоставя възможности за писане на текст на терминал по независим от терминала начин. Той поддържа подложки и цвят, както и множество акценти и форми на знаци. Обикновено се използва за внедряване на потребителски интерфейси за приложения от команден ред. Придружаващата библиотека ncursesw осигурява широка поддръжка на знаци. (док.)

Коприва

GNU Nettle е криптографска библиотека от ниско ниво. Той е проектиран да се вписва лесно в почти всеки контекст. Може лесно да бъде включен в криптографски инструменти за обектно-ориентирани езици или в самите приложения. (док.)

Окрад

GNU Ocrad е програма за оптично разпознаване на знаци, базирана на метод за извличане на характеристики. Може да чете изображения във формати PBM, PGM или PPM и произвежда текст в 8-битови или UTF-8 формати. (док.)

октава

GNU Octave е интерпретиран език от високо ниво, който е специализиран за числени изчисления. Може да се използва както за линейни, така и за нелинейни приложения и осигурява голяма подкрепа за визуализиране на резултатите. Работата може да се извършва както в интерактивния команден ред, така и чрез скриптови файлове. (док.)

Олео

GNU Oleo е програма за електронни таблици. Той предлага както терминален интерфейс, така и базиран на LessTif графичен потребителски интерфейс. Той включва познати, подобни на Emacs клавишни връзки. Той поддържа много стандартни функции на електронни таблици, като макроси и функции. (док.)

OrgaDoc

aDoc е система за лесно поддържане на пул от документи между компютрите. Документите се синхронизират чрез rsync или unison; не се изисква база данни или HTTP сървър. (док.)

oSIP

GNU oSIP е реализация на протокола SIP. Използва се, за да предостави на разработчиците на мултимедиен и телекомуникационен софтуер интерфейс за иницииране и контрол на SIP сесии. (док.)

Панорама

GNU Panorama е рамка за производство на 3D графики. Може да изпълнява различни ефекти, като фокусно размазване, произволни източници на светлина, картографиране на удари и няколко светлинни ефекта. (док.)

Паралелно

GNU Parallel е инструмент за паралелно изпълнение на шелни задачи с помощта на един или повече компютри. Задачите могат да се състоят от единични команди или от скриптове и се изпълняват в списъци с файлове, хостове, потребители или други елементи. (док.)

Разделени

GNU Parted е пакет за създаване и манипулиране на таблици с дялове на диска. Той включва библиотека и помощна програма от командния ред. (док.)

Пач

Patch е програма, която прилага промени към файлове въз основа на разликите, посочени в програмата diff. Промените могат да бъдат приложени към един или повече файлове в зависимост от съдържанието на файла diff. Той приема няколко различни формати diff. Може да се използва и за връщане на прилаганите по-рано разлики. (док.)

Paxutils

GNU paxutils е пакет от помощни програми за архивиране. Той съдържа версии на cpio, tar и pax архиватори. (док.)

Pcb

GNU PCB е интерактивен инструмент за редактиране на оформления на печатни платки. Той разполага с реализация на гнездо на плъхове, импортиране на схематичен / netlist и проверка на правилата за проектиране. Той също така включва автомаршрутизатор и оптимизатор за проследяване; и може да произвежда фотореалистични изображения и изображения за преглед на дизайна. (док.)

Пем

GNU Pem е прост инструмент за проследяване на лични приходи и разходи. Той работи от командния ред и съхранява данните си в основен текстов формат във вашата домашна директория. Той може лесно да отпечатва отчети за вашите разходи за различни разходи чрез основна функция за търсене. (док.)

Pexec

GNU pexec е програма за паралелно изпълнение на команди или шел скриптове на един или много компютри. Докато работи, параметрите на изпълнение като променливите на средата или стандартния вход, изход и грешка могат да се променят. (док.)

пайове

GNU pies е програма, която контролира извикването и изпълнението на други програми. Той чете списъка с програми, които трябва да бъдат стартирани от своя конфигурационен файл, изпълнява ги и след това следи състоянието им, като ги изпълнява повторно, ако е необходимо. (док.)

Plotutils

GNU Plotutils е пакет за начертаване и работа с 2D графика. Той включва библиотека, libplot, за C и C ++ за експортиране на 2D векторни графики в много файлови формати. Той също така има поддръжка за 2D векторни графични анимации. Пакетът също така съдържа програми от команден ред за начертаване на научни данни. (док.)

Прокарайте

GNU poke е интерактивен, разширяем редактор за двоични данни. Не се ограничава до редактиране на основни обекти като битове и байтове, той предоставя пълноправен процедурен, интерактивен език за програмиране, предназначен да описва структури от данни и да работи с тях. (док.)

Проксинож

GNU proxyknife е инструмент за валидиране на безплатни прокси сървъри зад защитна стена. Процесът на валидиране е напълно персонализиран, за да отговори на вашите нужди. (док.)

PSPP

GNU PSPP е програма за статистически анализ. Може да извършва описателна статистика, Т-тестове, линейна регресия и непараметрични тестове. Той разполага както с графичен интерфейс, така и за въвеждане от командния ред. PSPP е проектиран да взаимодейства с Gnumeric, LibreOffice и OpenOffice. Данните могат да бъдат импортирани от електронни таблици, текстови файлове и източници на бази данни и могат да бъдат изведени в текст, PostScript, PDF или HTML. (док.)

Психосинт

GNU Psychosynth е интерактивен, модулен мек синтезатор. Той емулира 3D повърхност, върху която са поставени и манипулирани модули, генерирайки и променяйки музика. Psychosynth се състои от C++ библиотека, 3D интерфейс и интерфейс на командния ред. (док.)

Pth

GNU Pth е преносима библиотека, осигуряваща непревантивно, базирано на приоритет планиране за множество нишки за изпълнение. Всяка нишка има свой собствен програмен брояч, стек по време на изпълнение, маска на сигнала и променлива errno. Нишките се планират по съвместен начин, а не по стандартен изпреварващ начин, така че да се управляват според приоритета и събитията. Въпреки това, Pth също така включва емулация на POSIX.1c нишки (pthreads) за обратна съвместимост. (док.)

Pyconfigure

GNU pyconfigure предоставя файлове с шаблони за лесно внедряване на съвместими със стандартите скриптове за конфигуриране и Makefiles за базирани на Python пакети. Той е проектиран да работи заедно със съществуващи скриптове за настройка на Python, което го прави лесен за интегриране в съществуващи проекти. Налични са мощни и гъвкави макроси на Autoconf, които ви позволяват лесно да правите корекции в инсталационната процедура въз основа на възможностите на целевия компютър. (док.)

Qexo

R е език и среда за статистически изчисления и графики. Той предоставя разнообразие от статистически техники, като линейно и нелинейно моделиране, класически статистически тестове, анализ на времеви серии, класификация и клъстериране. Той също така осигурява стабилна поддръжка за създаване на графики от данни с качество на публикацията. Предлагат се голямо количество пакети на трети страни, което значително увеличава неговата широта и обхват. (док.)

Радиус

Radius е сървър за отдалечено удостоверяване и отчитане на потребители. Обикновено е полезно за мрежи, които изискват централизирано удостоверяване и счетоводни услуги за работните си станции. Удостоверяването може да се извърши по различни начини, като например чрез / etc / passwd или идентификационни данни, съхранявани в SQL база данни. (док.)

RCS

RCS е оригиналната система за контрол на ревизията. Той работи на база файл по файл, за разлика от последващите системи за контрол на версиите като CVS, Subversion и Git. Това може да го направи подходящ за файлове за системна администрация, например, които често са по своята същност локални за една машина. (док.)

Ред за четене

Библиотеката за четене на GNU позволява на потребителите да редактират командни редове, докато са въведени. Той може да поддържа хронология за търсене на по-рано въведени команди, което ви позволява лесно да извиквате, редактирате и въвеждате отново предишни команди. Той разполага както с Emacs, така и с vi-подобни клавишни връзки, което прави използването му удобно за всеки. (док.)

Recutils

GNU Recutils е набор от инструменти и библиотеки за създаване и манипулиране на текстови, редактирани от човека бази данни. Въпреки че са текстови, базите данни, създадени с Recutils, носят всички очаквани функции като уникални полета, първични ключове, времеви печати и др. Поддържат се много различни типове полета, както и криптирането. (док.)

Reftex

GNU RefTex е пакет за внедряване на етикети, препратки, цитати и индекси в LaTeX документи. Работи, като обвива четири LaTeX макроса: етикет, справка, цитиране и индекс. Той автоматизира общите задачи, които обикновено се изискват при използване на тези макроси. (док.)

Дистанционно

GNU Remotecontrol е уеб приложение за управление на HVAC термостати с активиран IP и други устройства за автоматизация на сгради. Приложението може да чете данни от и да записва данни на множество такива устройства. (док.)

Rottlog

GNU Rot [t] log е програма за управление на лог файлове. Използва се за автоматично завъртане на регистрационни файлове, когато достигнат определен размер или според даден график. Може да се използва и за автоматично компресиране и архивиране на такива регистрационни файлове. Rot [t] log ще изпраща по пощата отчети за дейността си до системния администратор. (док.)

Rpge

GNU Role Playing Game Engine предоставя двигател за създаване на двуизмерни, графични ролеви игри, предоставяйки например мрежа за спрайт-плочки, изобразяване на спрайтове и обработка на събития. (док.)

Втурвам се

GNU Rush е ограничена потребителска обвивка, за системи, на които потребителите трябва да имат само ограничена функционалност или ресурси. Администраторите задават потребителски права чрез конфигурационен файл, който може да се използва за ограничаване, например, на командите, които могат да се изпълняват, времето на процесора или използването на виртуална памет. (док.)

Сатър

GNU Sather е обектно-ориентиран език за програмиране, подобен на Eiffel. Той е проектиран да бъде прост, ефективен, безопасен и непатентован. Той включва събиране на боклука, статично проверено силно въвеждане, множествено наследяване, параметризирани класове и други. Този пакет се състои от компилатор, библиотека с класове, езикова спецификация и ръководство за програмиране и браузър за показване на източници и насочени графики на наследяване на класове. (док.)

SCM

GNU SCM е реализация на Scheme. Тази реализация включва Hobbit, компилатор Scheme-to-C, който може да генерира C файлове, чиито двоични файлове могат да бъдат динамично или статично свързани с SCM изпълним файл. (док.)

Екран

GNU Screen е терминален прозорец мениджър, който мултиплексира един терминал между няколко процеса. Всеки от виртуалните терминали предоставя функции като буфер за превъртане назад и механизъм за копиране и поставяне. След това Screen управлява различните виртуални терминали, което ви позволява лесно да превключвате между тях, да ги отделяте от текущата сесия или дори да разделяте изгледа, за да показвате два терминала наведнъж. (док.)

Sed

Sed е неинтерактивен редактор на текстови потоци. Той получава въведен текст от файл или от стандартен вход и след това прилага серия от команди за редактиране на текст към потока и отпечатва изхода си на стандартен изход. Често се използва за заместване на текстови шаблони в поток. Реализацията на GNU предлага няколко разширения спрямо стандартната помощна програма. (док.)

Serveez

GNU Serveez е сървърна рамка, предоставяща рутините, необходими за лесно внедряване на IP-базирани сървъри във вашето приложение. Той демонстрира аспекти на мрежовото програмиране по преносим начин, което го прави удобен както за опростяване на процеса на добавяне на сървър към вашето приложение, така и за научаване как работят мрежовите услуги. Вече са предоставени няколко примерни сървъра, като HTTP сървър и IRC сървър. (док.)

Шарутилс

GNU sharutils е пакет за създаване и манипулиране на шел архиви, които могат лесно да бъдат изпратени по имейл. Архивът на обвивката е файл, който може да бъде обработен от обвивка от тип Bourne, за да се разопакова оригиналната колекция от файлове. Този пакет е предимно за съвместимост и исторически интерес. (док.)

овчар

GNU Shepherd е демон, управляващ демон, което означава, че той контролира изпълнението на системни услуги, заменяйки подобна функционалност, открита в типичните системи за инициализиране. Той осигурява обработка на зависимости чрез удобен интерфейс и е базиран на GNU Guile. (док.)

Шиши

GNU Shishi е безплатна реализация на системата за мрежова сигурност Kerberos 5. Използва се, за да позволи на незащитените мрежови възли да комуникират по сигурен начин чрез взаимно удостоверяване клиент-сървър чрез билети. (док.)

Шмм

GNU SHMM е мениджър на споделена памет. Може да чете или записва в споделена памет. Той също така поддържа други команди, като например заключване или отключване на блок споделена памет, идентифициран по ключ и размер. (док.)

Shtool

GNU shtool е многофункционален инструмент за обвивка. Той може да изпълнява функциите на много различни команди, за да осигури един инструмент за разпространение с изходна дистрибуция, за да осигури преносимост на скриптовете на обвивката. Например, shtool може да изпълнява задачите на общите команди install, mkdir или echo на системи, на които липсват. (док.)

Sipwitch

GNU SIP Witch е peer-to-peer Voice-over-IP сървър, който използва SIP протокола. Обажданията могат да се извършват зад защитните стени на NAT и без нужда от доставчик на услуги. Неговият peer-to-peer дизайн гарантира, че няма централна точка за прихващане или улавяне на медии и по този начин може да се използва за изграждане на сигурна телефонна система, която работи през обществен интернет. (док.)

SLIB

GNU SLIB е преносима обща библиотека за езика за програмиране Scheme. Той поддържа голямо разнообразие от различни реализации на схеми, като им предлага рамка за използване на пакети от процедури и синтаксис на схемата. (док.)

Общи приказки

GNU Smalltalk е безплатна реализация на езика Smalltalk. Той имплементира стандарта ANSI за езика и също така включва допълнителни класове като такива за работа в мрежа и GUI програмиране. (док.)

Солфеж

GNU Solfege е програма за практикуване на музикално обучение на слуха. С него можете да тренирате разпознаването на различни музикални интервали и акорди. Той разполага със статистически преглед, за да можете да наблюдавате напредъка си в няколко сесии. Solfege също е проектиран да бъде разширяем, за да можете лесно да пишете свои собствени уроци. (док.)

SpaceChart

GNU SpaceChart ви позволява да видите как звездите са разпределени в триизмерно пространство. Позволява ви например да определяте разстоянията между звездите, да ги разглеждате от всяка гледна точка или да филтрирате изгледа си по спектрален клас и осветеност. (док.)

Speex

GNU Speex е кодек за аудио компресия без патент, специално проектиран за реч. Той е добре адаптиран към интернет приложения, като VoIP. Той включва компресиране на различни ленти в един и същ битстрийм, интензивно стерео кодиране и откриване на гласова активност. (док.)

Заклинание

Spell е програма за проверка на правописа от команден ред. Той чете въведен текст и отпечатва всяка грешно написана дума на собствен ред. Реализира се като обвивка за GNU aspell или ispell. (док.)

Sqltutor

GNU Sqltutor е уеб-базиран интерактивен урок за SQL. Той разполага с множество уроци, достъпни на различни езици. Уроците представят поредица от въпроси в диалогов прозорец и, когато са завършени, показват окончателна оценка, включително правилни отговори за грешни решения. (док.)

Src-хайлайт

GNU source-highlight чете във файл с изходен код и създава изходен файл, в който ключовите думи са подчертани в различни цветове, за да се обозначи тяхната синтактична роля. Той поддържа над 150 различни езика и може да извежда в 8 различни формата, включително HTML, LaTeX и ODF. Може също да извежда в ANSI цветни escape последователности, така че маркираният изходен код може да се види в терминал. (док.)

Приспособление за разпределен лист

Gtk + джаджа, предоставяща двумерен масив за преглед и манипулиране на таблични данни, подобни на тези, предоставени от популярните програми за електронни таблици. Дизайнът следва парадигмата модел-изглед-контролер и е O (1) както във времето, така и в пространството, осигурявайки много бърза и ефективна работа дори при много големи данни. Включени са функции като изрязване и поставяне, плъзгане и пускане и т.н. (док.)

Стоу

GNU Stow е мениджър на символни връзки. Той генерира символни връзки към директории с данни и ги кара да изглеждат обединени в една и съща директория. Обикновено се използва за управление на софтуерни пакети, инсталирани от източник, като ви позволява да ги инсталирате отделно в различни директории и след това да създавате символни връзки към файловете в обща директория, като /usr/local. (док.)

Пън

GNU STUMP е програма за робомодератор за USENET дискусионни групи и пощенски списъци, включваща уеб-базирано модериране. Той поддържа групово модериране чрез множество човешки модератори. Той може също така автоматично да отхвърля несъответстващи съобщения без човешка намеса. Включва уеб интерфейс. (док.)

Суперопт

GNU Superopt е генератор на функционална последователност за супероптимизация. Той използва изчерпателен подход за генериране и тестване, за да намери най-кратката последователност от инструкции за дадена функция. (док.)

Swbis

Swbis е система за администриране на софтуер, определена от POSIX. Той включва мрежово прозрачно управление на софтуерни пакети за системни администратори. Например, цели директории на файлова система могат да бъдат копирани от хост към хост в мрежа по прозрачен начин. Пакетът също така включва усъвършенствани методи за създаване на tarball и механизми за проверка на целостта. (док.)

Филтри за разговори

GNU Talk Filters са програми, които преобразуват английския текст в стереотипни или по друг начин хумористични диалекти. Филтрите се предоставят като C библиотека, така че могат лесно да бъдат интегрирани в други програми. (док.)

катран

Tar предоставя възможността за създаване на tar архиви, както и възможността за извличане, актуализиране или изброяване на файлове в съществуващ архив. Полезно е за комбиниране на много файлове в един по-голям файл, като същевременно се поддържа структурата на директорията и информация за файла, като разрешения и дати на създаване/модификация. GNU tar предлага много разширения в сравнение със стандартната помощна програма. (док.)

Termcap

GNU termcap е библиотека и база данни, които се използват, за да позволят използването на терминали за показване по независим от терминала начин. Базата данни описва възможностите на много различни дисплейни терминали. След това библиотеката може да адаптира обобщени инструкции, дадени от програма, към специфичните възможности на терминала на дисплея, както се намират в базата данни. (док.)

Термутил

Пакетът GNU Termutils съдържа две програми, tput и tabs. tput се използва в шел скриптове за манипулиране на дисплея на терминала, например чрез изчистването му или преместването на курсора до определена точка, центрирането на текста или подчертаването на текста. tabs се използва за определяне и задаване на хардуерни табулатори на терминали, които го поддържат. (док.)

Teseq

GNU Teseq е програма, която анализира файлове, които съдържат контролни последователности. Той преобразува последователностите, които среща, в разбираемо от човека описание на действията, които изпълняват тези последователности. Той може също да преведе изхода си обратно в машинно четени контролни последователности. (док.)

TeX за нетърпеливите

TeX за нетърпеливите е книга от ~ 350 страници за TeX, обикновен TeX и Eplain, написана от Пол Ейбрахамс, Катрин Харгрийвс и Карл Бери. (док.)

Texinfo

Texinfo е официалният формат за документация на проекта GNU. Той използва един-единствен изходен файл, използвайки изрични команди, за да създаде краен документ във всеки от няколкото поддържани изходни формата, като HTML или PDF. Този пакет включва както инструментите, необходими за създаване на информационни документи от техния източник, така и четеца на информация от командния ред. Акцентът на езика е върху изразяването на съдържанието семантично, като се избягват физически команди за маркиране. (doc) док

Пакетът vc-dwim съдържа два инструмента, vc-dwim и vc-chlog. vc-dwim е инструмент, който опростява задачата за поддържане на ChangeLog и едновременно използване на контрол на версиите, например чрез отпечатване на напомняне, когато промяната на файла е описана в ChangeLog, но файлът не е добавен към VC. vc-chlog сканира променените файлове и генерира съвместими със стандартите записи в ChangeLog въз основа на промените, които открива. (док.)

VCDImager

GNU VCDImager е пакет от програми за работа с Video CD и Super Video CD. Може да се използва за авторство, разглобяване и анализиране на дискове. Той поддържа пълен контрол на възпроизвеждането, сегментиране на елементи за възпроизвеждане, автоматично допълване на MPEG потоци в движение и извличане на видео компактдискове във файлове. (док.)

Вера

V.E.R.A. (Virtual Entity of Relevant Acronyms) е списък с изчислителни акроними, разпространявани като информационен документ. (док.)

Vmgen

GNU WB е базиран на диск, сортиран, асоциативен масив от база данни за C, Scheme, Java и C #. Вместо да се реализира чрез хеширане, WB използва B-дървета, които са оптимизирани за използване на минималния брой дискови операции. (doc док)

XBoard

GNU XBoard е графична дъска за всички разновидности на шах, включително международен шах, xiangqi (китайски шах), шоги (японски шах) и Makruk. Поддържат се и няколко по-малко известни варианта. Той представя напълно интерактивен графичен интерфейс и може да зарежда и записва игри в Portable Game Notation. (док.)

Xlogmaster

GNU Xlogmaster е програма с графичен потребителски интерфейс, която ви позволява да наблюдавате системните си логове по удобен начин. Дневниците могат да се показват с филтри за маркиране или скриване на редове. Програмата може да се използва и за автоматизиране на предприемане на действия при дефинирани от потребителя събития. (док.)

Xnee

GNU Xnee е програма, която може да записва, възпроизвежда и разпространява потребителски действия в X11. Може да се използва за автоматизиране на взаимодействията на потребителите с цел тестване или демонстрация. (док.)

Ксорисо

GNU Xorriso е инструмент за копиране на файлове към и от ISO 9660 Rock Ridge, известен още като. Компактна дискова файлова система, файлови системи и позволява манипулирането им по време на сесия. Разполага с формататор и записващо устройство за CD, DVD и BD. Може да работи със съществуващи ISO изображения или може да създава нови. След това xorriso може да се използва за копиране на файлове директно във или извън ISO файлове. (док.)

Zile

GNU Zile е лек клонинг на Emacs. Използването му е подобно на конфигурацията на Emacs по подразбиране, но носи много по-лек набор от функции. (

Общият публичен лиценз на GNU (GNU General Public License или GNU General Public License) е може би най-популярният лиценз за свободен софтуер, създаден от GNU Project през 1988 г. Също така се съкращава като GNU GPL или дори просто GPL за контекст. говорим за този конкретен лиценз (има доста други лицензи, съдържащи думите "общ публичен лиценз" в заглавието). Втората версия на този лиценз е издадена през 1991 г., третата версия, след много години работа и дълги дискусии, през 2007 г. GNU Lesser General Public License (LGPL) е отслабена версия на GPL за някои софтуерни библиотеки. Общият публичен лиценз GNU Affero е затвърдена версия на GPL за софтуер, предназначен за достъп през мрежата.

Целта на GNU GPL е да предостави на потребителя правата да копира, модифицира и разпространява (включително комерсиално) програми (които са забранени от закона за авторското право по подразбиране) и да гарантира, че потребителите на всички производни програми получават горните права . Принципът на "наследяване" на правата се нарича "copyleft" (транслитерация на английското "copyleft") и е изобретен от Ричард Столман. За разлика от GPL, лицензите за собствен софтуер много рядко дават на потребителя такива права и, напротив, са склонни да ги ограничават, например, като забраняват възстановяването на изходния код.

GPL предоставя на получателите на компютърни програми следните права или „свободи“:

* свобода на стартиране на програмата за всякакви цели;
* свободата да научите как работи програмата и да я модифицирате (предпоставка за това е достъпът до изходния код);
* свобода на разпространение на копия;
* свобода за подобряване на програмата и пускане на подобрения за обществеността (предпоставка за това е достъпът до изходния код).
източник

GNU OS

GNU е рекурсивно съкращение от английски. GNU's Not UNIX - "GNU не е Unix!") е безплатна UNIX-подобна операционна система, разработена от GNU Project.

Развитието на системата GNU започва на 27 септември 1983 г., когато Ричард Столман публикува съобщение за проекта в дискусионните групи net.unix-wizards и net.usoft. На 5 януари 1984 г. Столман подава оставка от Масачузетския технологичен институт, за да посвети времето си на писане на безплатна операционна система, а също и за да не може институтът да претендира за никакви права върху изходния код на системата. Първата програма на GNU беше текстовият редактор на Emacs.

В момента системата GNU / Linux, по-известна просто като Linux, е доста разпространена (особено на пазара на сървъри) и е доста завършена. Състои се от голям брой програми от проекта GNU (предимно системните помощни програми и веригата от инструменти на GNU), ядрото на Linux, частта от системата, отговорна за изпълнението на други програми, включително драйвери на устройства и т.н., и много друг безплатен софтуер .

Последни материали от раздела:

Рубрика: Неизвестни земноводни, затворени в скална маса
Рубрика: Неизвестни земноводни, затворени в скална маса

Кой би си помислил! Изглежда, че такъв известен човек е изследван отгоре и надолу, но не. Нещо не е известно на повечето обикновени хора. Ето най-...

Враждебни извънземни летят към земята
Враждебни извънземни летят към земята

Много извънземни кораби се насочват към нашата планета.Западните уфолози предупреждават човечеството за възможно нашествие на извънземни. И всичко...

Къде е по-добре да кандидатствате за програмист?
Къде е по-добре да кандидатствате за програмист?

»Имаше много въпроси от учениците какво да правят, ако искат да станат програмисти. Зададохме този въпрос на експерти и събрахме...