GNU ( / ɡ n uː / ⓘ )[3][4]— обширная коллекциябесплатного программного обеспечения(385 пакетов по состоянию на сентябрь 2023 г.[5]), которое можно использовать в качестве операционной системы или использовать по частям с другими операционными системами. [6][7][8]Использование завершенных инструментов GNU привело к созданию семейства операционных систем, широко известных какLinux. [9]Большая часть GNU лицензируется пособственной Стандартной общественной лицензии (GPLпроекта GNU.
GNU также является проектом, в рамках которого зародилась концепция свободного программного обеспечения. Ричард Столлман , основатель проекта, рассматривает GNU как «техническое средство для достижения социальных целей». [10] В связи с этим Лоуренс Лессиг во введении ко второму изданию книги Столлмана « Свободное программное обеспечение, свободное общество» заявляет, что в ней Столлман написал о «социальных аспектах программного обеспечения и о том, как свободное программное обеспечение может создать сообщество и социальную справедливость». [11]
GNU — это рекурсивная аббревиатура от «GNU's Not Unix!», [6] [12] выбранная потому, что дизайн GNU похож на Unix , но отличается от Unix тем, что является свободным программным обеспечением и не содержит кода Unix. [6] [13] [14] Столлман выбрал имя, используя различные игры слов, включая песню The Gnu . [4] : 45:30
Разработка операционной системы GNU была инициирована Ричардом Столлманом, когда он работал в Лаборатории искусственного интеллекта Массачусетского технологического института . Он назывался проектом GNU и был публично анонсирован Столлманом 27 сентября 1983 года в группах новостей net.unix-wizards и net.usoft. [15] Разработка программного обеспечения началась 5 января 1984 года, когда Столлман уволился с работы в лаборатории, чтобы они не могли претендовать на право собственности или вмешиваться в распространение компонентов GNU в качестве свободного программного обеспечения. [16]
Целью было создание полностью свободной операционной системы. Столлман хотел, чтобы пользователи компьютеров могли свободно изучать исходный код используемого ими программного обеспечения, делиться программным обеспечением с другими людьми, изменять поведение программного обеспечения и публиковать свои модифицированные версии программного обеспечения. Эта философия была опубликована как Манифест GNU в марте 1985 года. [17]
Опыт Ричарда Столлмана с несовместимой системой разделения времени (ITS), [16] ранней операционной системой, написанной на языке ассемблера , которая устарела из-за прекращения выпуска PDP-10 , компьютерной архитектуры, для которой была написана ITS, привел к решению, что портативная система была необходима. [4] : 40:52 [18] Таким образом, было решено, что разработка будет начата с использованием C и Lisp в качестве языков системного программирования, [19] и что GNU будет совместим с Unix. [20] В то время Unix уже была популярной проприетарной операционной системой. Конструкция Unix была модульной, поэтому ее можно было переопределять по частям. [18]
Большую часть необходимого программного обеспечения пришлось писать с нуля, но также использовались существующие совместимые компоненты свободного программного обеспечения сторонних производителей, такие как система верстки TeX , система X Window и микроядро Mach , составляющее основу ядра GNU Mach . GNU Hurd (официальное ядро GNU). [21] За исключением вышеупомянутых сторонних компонентов, большая часть GNU была написана добровольцами; некоторые в свободное время, некоторые оплачиваются компаниями, [22] образовательными учреждениями и другими некоммерческими организациями. В октябре 1985 года Столлман основал Фонд свободного программного обеспечения (FSF). В конце 1980-х и 1990-х годах FSF нанимал разработчиков программного обеспечения для написания программного обеспечения, необходимого для GNU. [23] [24]
По мере того, как GNU приобретала известность, заинтересованные компании начали вносить свой вклад в разработку или продажу программного обеспечения GNU и техническую поддержку. Наиболее известной и успешной из них была Cygnus Solutions , [22] ныне являющаяся частью Red Hat . [25]
Базовые компоненты системы включают коллекцию компиляторов GNU (GCC), библиотеку GNU C (glibc) и основные утилиты GNU (coreutils), [6] , а также отладчик GNU (GDB), двоичные утилиты GNU (binutils), [26] ] и оболочка GNU Bash . [21] [27] [28] Разработчики GNU внесли свой вклад в портирование приложений и утилит GNU для Linux, которые теперь также широко используются в других операционных системах, таких как варианты BSD , Solaris и macOS . [29] [ нужен лучший источник ]
Многие программы GNU были портированы на другие операционные системы, включая проприетарные платформы, такие как Microsoft Windows [30] и macOS. [31] Программы GNU оказались более надежными, чем их проприетарные аналоги для Unix. [32] [33]
По состоянию на январь 2022 года на официальном сайте разработки GNU размещено в общей сложности 459 пакетов GNU (включая выведенные из эксплуатации и 383 без учета). [34]
В своем первоначальном значении , которое до сих пор распространено в разработке аппаратного обеспечения, операционная система представляет собой базовый набор функций для управления оборудованием и такими вещами, как планирование задач и системные вызовы . В современной терминологии, используемой разработчиками программного обеспечения, совокупность этих функций обычно называется ядром , тогда как «операционная система» должна иметь более обширный набор программ. Сам проект GNU поддерживает два ядра, что позволяет создавать чистые операционные системы GNU, но набор инструментов GNU также используется с ядрами, отличными от GNU. Из-за двух разных определений термина «операционная система» продолжаются споры по поводу именования дистрибутивов пакетов GNU с ядром, отличным от GNU . (См. ниже.)
Исходным ядром проекта GNU Project является GNU Hurd (вместе с микроядром GNU Mach ), которое изначально было предметом внимания Фонда свободного программного обеспечения (FSF). [6] [35] [36] [37]
С выпуском дистрибутива Debian GNU/Hurd 2015 от 30 апреля 2015 года [38] [39] GNU теперь предоставляет все необходимые компоненты для сборки операционной системы, которую пользователи могут установить и использовать на компьютере. [40] [41] [42]
Однако ядро Hurd пока не считается готовым к использованию, а скорее является основой для дальнейшей разработки и некритического использования приложений. [43] [40]
С 2012 года форк ядра Linux официально стал частью проекта GNU в форме Linux-libre , варианта Linux со всеми удаленными проприетарными компонентами. [44] Проект GNU одобрил дистрибутивы Linux-libre, такие как Trisquel , Parabola GNU/Linux-libre , PureOS и GNU Guix System . [45]
Из-за статуса разработки Hurd GNU обычно сочетается с другими ядрами, такими как Linux [46] [47] или FreeBSD . [48] Является ли комбинация библиотек GNU с внешними ядрами операционной системой GNU с ядром (например, GNU с Linux), поскольку коллекция GNU превращает ядро в пригодную к использованию операционную систему, как это понимается в современной разработке программного обеспечения, или ядро является самостоятельной операционной системой с верхним слоем GNU (т. е. Linux с GNU), поскольку ядро может управлять машиной без GNU, это предмет постоянных дискуссий . FSF утверждает, что операционную систему, созданную с использованием ядра Linux и инструментов и утилит GNU, следует рассматривать как вариант GNU , и продвигает термин GNU/Linux для таких систем. Эта точка зрения не является исключительной для FSF. [49] [50] [51] [52] [53] Примечательно, что Debian , один из крупнейших и старейших дистрибутивов Linux, называет себя Debian GNU/Linux . [54]
Проект GNU рекомендует участникам передать авторские права на пакеты GNU Фонду свободного программного обеспечения, [55] [56] , хотя Фонд свободного программного обеспечения считает приемлемым выпустить небольшие изменения в существующий проект в общественное достояние . [57] Однако этого не требуется; сопровождающие пакетов могут сохранять авторские права на пакеты GNU, которые они поддерживают, однако, поскольку только владелец авторских прав может обеспечить соблюдение используемой лицензии (например, GNU GPL), в этом случае ее обеспечивает правообладатель, а не Фонд свободного программного обеспечения. [58]
Для разработки необходимого программного обеспечения Столлман написал лицензию под названием GNU General Public License (сначала называвшуюся Emacs General Public License) с целью гарантировать пользователям свободу совместного использования и изменения свободного программного обеспечения. [59] Столлман написал эту лицензию после своего опыта работы с Джеймсом Гослингом и программой UniPress из-за разногласий по поводу использования программного кода в программе GNU Emacs . [60] [61] На протяжении большей части 80-х годов каждый пакет GNU имел свою собственную лицензию: Генеральную общественную лицензию Emacs, Стандартную общественную лицензию GCC и т. д. В 1989 году FSF опубликовала единую лицензию, которую они могли использовать для всего своего программного обеспечения. и которая может использоваться проектами, не относящимися к GNU: Стандартная общественная лицензия GNU (GPL). [60] [62]
Эта лицензия сейчас используется большей частью программного обеспечения GNU, а также большим количеством свободных программ, не являющихся частью проекта GNU; исторически она также была наиболее часто используемой лицензией свободного программного обеспечения (хотя недавно она была оспорена лицензией MIT ). [63] [64] Он дает всем получателям программы право запускать, копировать, изменять и распространять ее, запрещая им налагать дальнейшие ограничения на любые распространяемые ими копии. Эту идею часто называют авторским левом . [65]
В 1991 году для библиотеки GNU C была написана Меньшая стандартная общественная лицензия GNU (LGPL), тогда известная как Стандартная общественная лицензия библиотеки, позволяющая связывать ее с проприетарным программным обеспечением. [66] В 1991 году также была выпущена вторая версия GNU GPL. В 2000 году последовала Лицензия свободной документации GNU ( FDL ) для документации . . [68]
Помимо пакетов GNU, лицензии проекта GNU могут [69] использоваться и используются многими несвязанными проектами, такими как ядро Linux , часто используемое с программным обеспечением GNU. Большая часть свободного программного обеспечения, такого как X Window System, [70] лицензируется по разрешительным лицензиям свободного программного обеспечения . [71]
Логотип GNU — голова GNU . Первоначально нарисованный Этьеном Сувасой, теперь предпочтительнее более смелая и простая версия, разработанная Аурелио Хеккертом. [72] [73] Он появляется в программном обеспечении GNU, а также в печатной и электронной документации проекта GNU, а также используется в материалах Фонда свободного программного обеспечения.
Также существовала измененная версия официального логотипа. Он был создан Фондом свободного программного обеспечения в сентябре 2013 года в ознаменование 30-летия проекта GNU . [74]
Название «GNU» — это
рекурсивная аббревиатура
от «GNU's Not Unix»;
оно произносится
как г-ноо
, как один слог без гласного звука между
г
и
н
.
{{cite book}}
: |website=
игнорируется ( помощь ){{cite journal}}
: Требуется цитировать журнал |journal=
( помощь )И C, и Lisp будут доступны в качестве языков системного программирования.
Почти двадцать лет спустя HURD все еще не достигла зрелости и так и не достигла качества продукции.
... Некоторые из нас все еще желают и надеются на настоящую операционную систему GNU с ядром GNU.
Он смешал все ингредиенты, необходимые для функционирования операционной системы, но ему не хватало ядра.
Идея RMS (о которой я слышал из первых рук) состоит в том, что системы Linux следует рассматривать как системы GNU с Linux в качестве ядра.
GNU — операционная система, предлагающая набор бесплатных программ с открытым исходным кодом.
Сейчас широко используются варианты операционной системы GNU, использующие ядро Linux;
хотя эти системы часто называют «Linux», их точнее называть «системами GNU/Linux».