Как означава gnu. Какво е GNU и GPL? Разширения към съществуващ GNU софтуер

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

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

Когато започнах работа в лабораторията за изкуствен интелект на 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 г., неговите администратори решиха да използват nonfree на Digital система за споделяне на времето вместо ITS.

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

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

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

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

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

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

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

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

Ясен морален избор

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

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

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

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

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

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

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

Като разработчик на операционна система имах правилните умения за тази работа. Така че, въпреки че не можех да приема успеха за даденост, осъзнах, че съм избран да свърша работата. Избрах да направя системата съвместима с Unix, така че да бъде преносима и така че потребителите на Unix да могат лесно да преминат към нея. Името GNU беше избрано, следвайки хакерска традиция, като рекурсивен акроним за „GNU's 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, любезно ме покани да продължа да използвам съоръженията на лабораторията.

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

Малко преди да започна проекта GNU, чух за Free University Compiler Kit, известен още като 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, по този начин се превърна в основния сайт за разпространение на GNU ftp; когато беше изведен от употреба няколко години по-късно, прехвърлихме името на нашия нов 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 е, че ние даваме на всеки разрешение да стартира програмата, да копира програмата, да я модифицира и да разпространява модифицирани версии, но не и разрешение да добавя свои собствени ограничения. По този начин решаващите свободи, които определят „свободния софтуер“, са гарантирани на всеки, който има копие; те стават неотменими права.

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

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

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

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

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

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

Ние финансирахме разработването на тези програми, защото проектът 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 хората започнаха да предлагат да дарят машини, работещи с Unix, за проекта. Те бяха много полезни, защото най-лесният начин да се разработят компоненти на GNU беше да се направи на Unix система и да се заменят компонентите на тази система Но те повдигнаха етичен въпрос: дали изобщо е правилно да имаме копие на Unix.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(1) Този лиценз сега се нарича GNU Lesser General Public License, за да се избегне идеята, че всички библиотеки трябва да го използват. Вижте Защо не трябва да използвате Lesser 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. Но отне много време, за да стане това възможно, а многонишковите сървъри, които изпращат съобщения един на друг, се оказаха много трудни за отстраняване на грешки. Накарането на Хърд да работи стабилно е продължило много години.

Аликс

Първоначално ядрото на 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 г. от Мигел де Иказа и разработен с подкрепата на 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. Когато се появи следващият Motif или 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 SW 4.0
Моторола 922 SVR4/88 SVR4.0
Беста-88 bestix SV 3.1
ДЕК Ултрикс 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 1003.1-1990 (Институт на инженерите по електротехника и електроника, все още съществуващ). Стандартът дефинира само интерфейса, а не конкретната организация, така че не прави разлика между системни повиквания и библиотечни функции, наричайки всички елементи на интерфейса за програмиране просто функции.

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

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

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

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

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

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

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

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

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

Какво е GNU/Linux?

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

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

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

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

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

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

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

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

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

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

Такси доходи

Lua грешка в Module:Wikidata на ред 170: опит за индексиране на полето „wikibase“ (нулева стойност).

Дарения

Lua грешка в Module:Wikidata на ред 170: опит за индексиране на полето „wikibase“ (нулева стойност).

Брой доброволци

Lua грешка в Module:Wikidata на ред 170: опит за индексиране на полето „wikibase“ (нулева стойност).

Брой служители

Lua грешка в Module:Wikidata на ред 170: опит за индексиране на полето „wikibase“ (нулева стойност).

Брой членове

Lua грешка в Module:Wikidata на ред 170: опит за индексиране на полето „wikibase“ (нулева стойност).

Дъщерни дружества

Lua грешка в Module:Wikidata на ред 170: опит за индексиране на полето „wikibase“ (нулева стойност).

Собствен

Lua грешка в Module:Wikidata на ред 170: опит за индексиране на полето „wikibase“ (нулева стойност).

Слоган

Lua грешка в Module:Wikidata на ред 170: опит за индексиране на полето „wikibase“ (нулева стойност).

Уеб сайт

Lua грешка в Module:Wikidata на ред 170: опит за индексиране на полето „wikibase“ (нулева стойност).

Дата на ликвидация

Lua грешка в Module:Wikidata на ред 170: опит за индексиране на полето „wikibase“ (нулева стойност).

Текущата работа по проекта GNU включва разработване на софтуер, повишаване на осведомеността, политически кампании и разпространение на нови материали.

Произход на проекта

Когато проектът стартира за първи път, те...

  • Астероид е кръстен на проекта GNU - (9965) GNU.

Вижте също

Напишете отзив за "Проектът GNU"

Бележки

Връзки

  • (Английски) - официален сайт на проекта GNU

Откъс, характеризиращ проекта GNU

- Лъжа, убийство, предателство ... Нямате ли такива думи? ..
– Много отдавна беше... вече никой не помни. Само аз. Но знаем какво беше. Това е заложено в нашата „древна памет“, за да не забравяме никога. Оттам ли живее злото?
Кимнах тъжно. Много съжалявах за моята родна Земя и за факта, че животът на нея беше толкова диво несъвършен, че ме караше да си задавам такива въпроси ... Но в същото време наистина исках Злото да напусне нашия дом завинаги, защото това Обичах тази къща с цялото си сърце и много често мечтаех, че някой ден ще дойде такъв прекрасен ден, когато:
човек ще се усмихне от радост, знаейки, че хората могат да му донесат само добро ...
когато едно самотно момиче не се страхува да мине през най-тъмната улица вечер, без да се страхува, че някой ще я обиди...
когато можеш да отвориш сърцето си с радост, без страх, че най-добрият ти приятел ще те предаде...
когато ще бъде възможно да оставите нещо много скъпо направо на улицата, без да се страхувате, че ако се обърнете - и то веднага ще бъде откраднато ...
И аз искрено, с цялото си сърце вярвах, че някъде наистина има такъв прекрасен свят, където няма зло и страх, а има проста радост от живота и красотата ... Ето защо, следвайки моята наивна мечта, Използвах и най-малката възможност да науча поне нещо за това как е възможно да се унищожи същото това, толкова жилаво и толкова неунищожимо, нашето земно Зло... И още нещо - за да не е срамно да го кажеш на някого някъде че съм Човек...
Разбира се, това бяха наивни детски мечти ... Но тогава все още бях просто дете.
– Казвам се Атис, Светлана Ман. Живея тук от самото начало, Зло съм виждал... Много зло...
– И как се отърва от него, мъдри Хатис?! Някой помогна ли ти?.. - попитах с надежда. - Можете ли да ни помогнете? .. Дайте поне съвет?
– Намерихме причината... И я убихме. Но вашето зло е извън нашия контрол. Различно е... Също като другите и теб. И не винаги доброто на някой друг може да е добро за вас. Трябва да намериш собствената си причина. И го унищожи - той нежно сложи ръката си на главата ми и в мен се вля чуден мир... - Сбогом, Човешка Светлана... Ще намериш отговора на въпроса си. Почивай си...
Стоях дълбоко замислен и не обърнах внимание на факта, че реалността около мен се е променила отдавна и вместо странен, прозрачен град, сега „носехме“ върху гъста лилава „вода“ върху някаква необичайна, плоско и прозрачно устройство, на което нямаше нито дръжки, нито гребла - абсолютно нищо, сякаш стоим върху голямо, тънко, движещо се прозрачно стъкло. Въпреки че не се усещаше никакво движение или накланяне. Плъзгаше се по повърхността изненадващо гладко и спокойно, карайки те да забравиш, че изобщо се движи...
– Какво има?.. Къде плаваме? – попитах учудено.
„За да взема твоя малък приятел“, спокойно отвърна Вея.
- Но как?!. Тя не може...
- Ще бъде в състояние. Тя има същия кристал като твоя, беше отговорът. - Ще я срещнем на "моста" - и без да обяснява нищо друго, тя скоро спря нашата странна "лодка".
Сега вече бяхме в подножието на някаква блестяща „полирана” черна като нощ стена, която рязко се различаваше от всичко ярко и искрящо наоколо и изглеждаше изкуствено създадена и чужда. Изведнъж стената се „раздели“, сякаш на това място се състоеше от гъста мъгла и в златен „пашкул“ се появи ... Стела. Свежа и здрава, сякаш току-що е излязла на приятна разходка... И, разбира се, беше безумно доволна от случващото се... Когато ме видя, хубавото й лице грейна щастливо и по навик тя веднага забърбори:
– И ти ли си тук?!... О, колко хубаво!!! И бях толкова притеснен! .. Толкова притеснен! .. Мислех, че нещо трябва да ти се е случило. Но как се озова тук?.. - бебето ме гледаше онемяло.

Семейството операционни системи Linux, за разлика от Windows, се поддържа не от една търговска фирма, а от общност от програмисти, които са поддръжници на идеята за кодове с отворен код (Open Source). Основният принцип на това движение е, че целият софтуер трябва да бъде достъпен не само като изпълними модули (например в Windows това са EXE файлове), но и като текстови файлове с изходни кодове, например в C / C ++. Ако преди 10 години, когато се роди движението Open Source, в него участваха само отделни хора – самите програмисти, то в момента идеите на Open Source се приемат и от много големи транснационални корпорации, като IBM, Sun, Oracle, HP.

Раждането на движението за отворен код обикновено се брои от появата на "GNU Манифеста", който е написан от Ричард Столман през 1984 г. Съкращението GNU е GNU "s Not UNIX или това, което не принадлежи към операционната система UNUX. Значението на такъв призив е, че думата UNIX е регистрирана като търговска марка и законно предотвратява разработването на софтуер. Манифестът инициира развитието на Фондацията за свободен софтуер (FSF), чиято цел е да премахне всички забрани за разпространение, копиране , модифициране и изучаване на софтуер .

За защита на интересите на програмистите - авторските права - е написан текстът на Общия публичен лиценз (GPL), под който се разпространява целият софтуер, създаден като част от движението Open Source. Текстът му е написан на английски правен език, така че е много труден за разбиране. Но основното значение може да бъде предадено по следния начин: имате право свободно да копирате, използвате за всякакви цели, модифицирате, разпространявате и продавате софтуера (SW), обхванат от този лиценз, като запазвате информация за авторите на този софтуер. Моля, обърнете внимание на основния принцип, който се прилага при продажбата на софтуер: вие прехвърляте на купувача всички тези права върху (софтуера, който вие самите притежавате.

Най-лесният начин да обясним защо е възникнало движението FSF може да бъде на ежедневен пример. Принципите на разпространение на търговските програми са такива, че ако автомобилите се продават на една и съща правна основа, тогава никой шофьор няма да има право не само да инсталира допълнителни устройства върху него, да речем, горивен филтър или оригинални капаци на колела, но и самостоятелно отстранете всякакви неизправности. | 1 В крайна сметка всяка модернизация на автомобил или ремонт е задължително разглобяване на всякакви компоненти и това е проучване на дизайна на компонентите на превозното средство. Тоест, ако колата е закъсала, трябва да се обадите на компанията и да изчакате пристигането на механика, а вашето местоположение няма значение. Ако сте ремонтирали колата сами, тогава ще бъдете изправени пред съд за нарушаване на лицензионното споразумение. Като този!

Името Linux възниква през 1991 г., когато Торвалдс Линус предлага първото издание на своята операционна система Linux на общността на програмистите. Това беше повратна точка, тъй като движението FSF получи собствена операционна система, под която можеше да се разработва софтуер, без да се засягат нечии законни интереси.

Официалното издание на операционната система (ядрото на операционната система), наречено GNU / Linux, се появи през 1994 г. По-късно, тъй като броят на програмите за тази операционна система се увеличи, започнаха да се сглобяват Linux дистрибуции, в които те бяха комбинирани заедно, инсталатор, ядрото и потребителските програми. И терминът Linux неусетно, след като загуби префикса GNU, се разпространи върху целия набор от софтуер, включен в дистрибуциите.

Броят на най-разнообразните дистрибуции на Linux е голям, тъй като всеки разработчик (колекционер) разбира по свой начин какво и как трябва да се съдържа в дистрибуцията. Съответно броят на "официалните" дистрибуции достига няколкостотин броя. Някои дистрибуции могат да се поберат на 1-3 дискети, други може да изискват до 7 компактдиска.

Съставянето на оригинална дистрибуция не е много трудно за опитен програмист, но всъщност една дистрибуция може да бъде разпозната от глобалната общност само ако е била поддържана достатъчно дълго време. Това означава, че всички програми, включени в дистрибуцията, се актуализират редовно и това е доста сложна и трудна задача, тъй като ядрото и приложните програми се актуализират ежемесечно, така че след година или шест месеца всяка, дори и най-прекрасната дистрибуция, ще бъде безнадеждно остарял. Съответно, дистрибуции, поддържани от търговски фирми, като Red Hat, Mandrake, SuSe, или голям кръг от поддръжници, като дистрибуцията на Debian, са жизнеспособни.

Програмисти от почти всички страни работят върху операционната система Linux и приложните програми за нея, така че първоначално тя е създадена като международна система. Тоест, всяка дистрибуция на Linux може да бъде направена да комуникира с потребителя на всеки език. Но тъй като настройката на операционната система е доста сложен въпрос, се появиха клонове на изтъкнати дистрибуции, които се различават от оригиналите само по това, че авторите (асемблери, локализатори) на такива опции старателно конфигурираха (локализираха) дистрибуцията за конкретна страна. Като се вземат предвид националните особености (и това може да е предпочитание към една или друга компютърна конфигурация), екипите за разработка понякога се обединяват в търговски организации, създават оригинални програми за тяхното разпространение, например зареждане на операционна система, инсталатор на разпространение. Например дистрибуциите ASPLinux или AltLinux станаха популярни в Русия, които поддържат екипи от разработчици, които са показали способността си да работят на пазара на софтуер.

Една от характеристиките на Linux е, че той принадлежи към фамилията Unix системи, което означава, че програмите за Windows или MacOS няма да работят на операционната система Linux, точно както програмите на Linux няма да работят на други операционни системи, системи, различни от UNUX . Тъжно е, разбира се, но не всичко е лошо. Програмистите отдавна са загрижени за този проблем, като например невъзможността за директно стартиране на Microsoft Office на Linux, така че са разработени програми, които имитират работата на операционната система Windows |или създават виртуален компютър. Така че, след като първо зареди програмата за симулатор в операционната система Linux, потребителят вече стартира, да речем, Microsoft Office от нея или „изкуствено“ инсталира Windows на твърдия диск. Най-новите версии на такива програми ви позволяват да стартирате почти всяка популярна програма за Windows под операционната система Linux.

До известна степен следващата стъпка в сближаването на Linux и Windows беше разработването на дистрибуцията Lindows, в която можете директно да стартирате всякакви програми, написани за Windows. По-точно можем да кажем, че Lindows е дистрибуция на Linux, "заточена" за работа с Windows-nporpamm (чрез програмата Wine). Вярно е, че за съжаление Lindows OS се разпространява като търговска система с доста висока цена на комплект за разпространение (лиценз).

На 27 септември 1983 г. Ричард Столман публикува първоначалното съобщение за проект за създаване на напълно безплатна операционна система GNU (GNU's Not UNIX). Оттогава изминаха точно 30 години, проектът GNU се сля с Linux, а операционната система GNU/Linux победоносно марширува по планетата, успешно се развива.

За повече информация относно връзката между операционната система GNU и ядрото на Linux вижте.

Ето текста на оригиналното съобщение от Ричард Столман, преведено на руски.

От CSvax:pur-ee:inuxc!ixn5c!ihnp4!houxm!mhuxi!eagle!mit-vax!mit-eddie!RMS@MIT-OZ
От: RMS%MIT-OZ@mit-eddie
Дискусионни групи: net.unix-wizards, net.usoft
Тема: нова реализация на Unix
Дата: вторник, 27 септември 83 г. 12:35:59 EST
Организация: MIT AI Lab, Cambridge, MA

Безплатен Unix!

Започвайки този идващ Ден на благодарността, ще напиша пълна Unix-съвместима софтуерна система, наречена GNU, което означава „Gnu не е Unix“ (GNU не е Unix), и ще я пусна безплатно на всеки, който може да я използва. Наистина имам нужда помощ под формата на работно време, пари, софтуер и оборудване.

Като начало, GNU ще бъде ядрото плюс всички помощни програми, необходими за писане и изпълнение на C програми: редактор, обвивка, C компилатор, линкер, асемблер и др. След това ще добавим програма за форматиране на текст, YACC, игра Empire, електронна таблица и стотици други неща. Надяваме се да пуснем - своевременно - всички полезни неща, които обикновено идват с фамилия система Unix, и всичко останало полезно, включително документация в електронен вид и на хартия.

GNU ще може да изпълнява Unix програми, но няма да е идентичен с Unix. Ние ще направим всички подобрения, които са подходящи, въз основа на нашия опит с други операционни системи. По-специално планираме да въведем по-дълги имена на файлове, номера на файловите версии, устойчива на сривове файлова система, поддръжка за независими от терминал дисплеи, евентуално завършване на имената на файлове и евентуално базирана на Lisp прозоречна система, в която няколко програми на Lisp и нормални Unix програми могат споделяне на един екран. Както C, така и Lisp ще бъдат налични като езици за системно програмиране. Ще имаме мрежови програми, базирани на chaosnet, протокол MIT, който е значително по-добър от протокола UUCP. Може би ще имаме и нещо съвместимо с UUCP.

Кой съм аз?

Аз съм Ричард Столман, изобретател на оригиналния редактор на EMACS, който е имитиран много; Работя в Лабораторията за изкуствен интелект към Масачузетския технологичен институт. Имам много опит с компилатори, редактори, дебъгери, обвивки, несъвместимата система за споделяне на време (NSTS) и операционни системи на Lisp машина. Първо въведох поддръжка за независими от терминал дисплеи на NSRV. Освен това внедрих устойчива на грешки файлова система и две прозоречни системи за Lisp машини.

Защо трябва да пиша GNU

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

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

Как можете да помогнете

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

Един производител на компютри вече е предложил да достави една машина. Но можем да използваме повече. Едно от последствията, които можете да очаквате от даряването на машини е, че GNU ще спечели пари от тях за кратко време. Най-добре би било машината да може да работи в жилищни райони и да не изисква сложно охлаждане и захранване.

Индивидуалните програмисти могат да помогнат, като напишат съвместим заместител на една от помощните програми на Unix и ми го дадат. За повечето проекти такава разпределена работа на непълен работен ден би била много трудна за координиране; независимо написани части няма да работят заедно. Но специално за задачата за подмяна на Unix, този проблем не съществува. Повечето спецификации за оперативна съвместимост се определят от съвместимостта с Unix. Ако всеки принос работи с останалата част от Unix, вероятно ще работи и с останалата част от GNU.

Ако получа парични дарения, може да успея да наема няколко души на пълен или непълен работен ден. Заплатата няма да е висока, но търся такива, за които съзнанието, че помагат на човечеството е толкова важно, колкото парите. Виждам това като начин да се даде възможност на самоотвержени хора да посветят цялата си енергия на работа върху GNU, без да се налага да изкарват прехраната си по друг начин.

Моля, свържете се с мен за повече подробности.

Адрес на Arpanet:
[имейл защитен]

Usenet адрес:
...!mit-eddie!RMS@OZ
...!mit-vax!RMS@OZ

Пощенски адрес в САЩ:
Ричард Столман
166 Avenue St
Кеймбридж, Масачузетс 02139


Днес