GNU ( / ɡn uː / )[3][4]представляет собой обширную коллекциюсвободного программного обеспечения(394 пакета по состоянию на июнь 2024 г.[обновлять]),[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 System и микроядро 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 Compiler Collection (GCC), библиотеку GNU C (glibc) и GNU Core Utilities (coreutils), [6] , а также GNU Debugger (GDB), GNU Binary Utilities (binutils), [26] и оболочку GNU Bash . [21] [27] [28] Разработчики GNU внесли свой вклад в порты Linux приложений и утилит GNU, которые теперь также широко используются в других операционных системах, таких как варианты BSD , Solaris и macOS . [29] [ требуется лучший источник ]
Многие программы GNU были перенесены на другие операционные системы, включая такие проприетарные платформы, как Microsoft Windows [30] и macOS. [31] Программы GNU оказались более надежными, чем их проприетарные аналоги Unix. [32] [33]
По состоянию на июнь 2024 года [обновлять]на официальном сайте разработки GNU размещено в общей сложности 467 пакетов GNU (включая выведенные из эксплуатации, 394 без них). [34]
В своем первоначальном значении , которое все еще распространено в аппаратной инженерии, операционная система представляет собой базовый набор функций для управления оборудованием и управления такими вещами, как планирование задач и системные вызовы . В современной терминологии, используемой разработчиками программного обеспечения, набор этих функций обычно называют ядром , в то время как «операционная система» должна иметь более обширный набор программ. Проект GNU поддерживает два ядра, что позволяет создавать чистые операционные системы GNU, но инструментарий GNU также используется с ядрами, отличными от GNU. Из-за двух различных определений термина «операционная система» ведутся постоянные дебаты относительно наименования дистрибутивов пакетов GNU с ядром, отличным от GNU . (См. ниже.)
Первоначальным ядром проекта GNU является 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 для таких систем (что приводит к спору об именовании 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 General Public License, GCC General Public License и т. д. В 1989 году FSF опубликовал единую лицензию, которую они могли использовать для всего своего программного обеспечения, и которая могла использоваться не-GNU проектами: GNU General Public License (GPL). [60] [62]
Эта лицензия теперь используется большинством программного обеспечения GNU, а также большим количеством свободных программ, которые не являются частью проекта GNU; она также исторически была наиболее часто используемой лицензией свободного программного обеспечения (хотя недавно была оспорена лицензией MIT ). [63] [64] Она дает всем получателям программы право запускать, копировать, изменять и распространять ее, запрещая им налагать дополнительные ограничения на любые распространяемые ими копии. Эту идею часто называют копилефтом . [65]
В 1991 году была написана GNU Lesser General Public License (LGPL), тогда известная как Library General Public License, для библиотеки GNU C , чтобы позволить ей быть связанной с проприетарным программным обеспечением. [66] В 1991 году также была выпущена версия 2 GNU GPL. GNU Free Documentation License (FDL) для документации последовала в 2000 году. [67] GPL и LGPL были пересмотрены до версии 3 в 2007 году, добавив положения для защиты пользователей от ограничений оборудования, которые не позволяют пользователям запускать измененное программное обеспечение на своих собственных устройствах. [68]
Помимо пакетов GNU, лицензии проекта GNU могут [69] использоваться и используются многими не связанными проектами, такими как ядро Linux , часто используемое с программным обеспечением GNU. Большинство свободного программного обеспечения, такого как X Window System, [70] лицензируется в соответствии с разрешительными лицензиями свободного программного обеспечения . [71]
Логотип GNU — голова GNU . Первоначально нарисованная Этьеном Сувасой, сейчас предпочтительнее более смелая и простая версия, разработанная Аурелио Хеккертом. [72] [73] Она появляется в программном обеспечении GNU, а также в печатной и электронной документации проекта GNU, а также используется в материалах Free Software Foundation.
Также была измененная версия официального логотипа. Она была создана Free Software Foundation в сентябре 2013 года в ознаменование 30-летия проекта GNU . [74]
«GNU» — это
рекурсивная аббревиатура
от «GNU's Not Unix»; произносится как
«g-noo»
, как один слог без гласного звука между «
g»
и «
n»
.
C и Lisp будут доступны как языки системного программирования.
{{cite web}}
: CS1 maint: неподходящий URL ( ссылка )Почти двадцать лет спустя HURD все еще не достиг зрелости и так и не достиг производственного качества. ... Некоторые из нас все еще желают и надеются на что-то настоящее — операционную систему GNU с ядром GNU.
Он смешал все ингредиенты, необходимые для функционирования операционной системы, но ему не хватало ядра.
RMS (которую я слышал из первых рук) заключается в том, что системы Linux следует считать системами GNU с Linux в качестве ядра.
— это операционная система, которая предлагает набор бесплатных программ с открытым исходным кодом.
операционной системы GNU, которые используют ядро Linux, в настоящее время широко используются; хотя эти системы часто называют "Linux", их точнее было бы называть "системами GNU/Linux".