Проект GNU ( / ɡ n uː / ⓘ )[3]— этомассового сотрудничества,на свободном программном обеспечении,о котором объявилРичард Столлман27 сентября 1983 года. Его цель — предоставить пользователям компьютеров свободу и контроль в использовании своих компьютеров ивычислительных устройствпутем совместной разработки и публикации программного обеспечения, которое дает каждый имеет право свободно запускать программное обеспечение, копировать и распространять его, изучать и изменять. Программное обеспечение GNU предоставляет эти права в своейлицензии.
Чтобы гарантировать, что все программное обеспечение компьютера предоставляет пользователям все права свободы (использование, совместное использование, изучение, изменение), даже самую фундаментальную и важную часть, операционная система (включая все ее многочисленные служебные программы) должна была быть свободной. программное обеспечение. Столлман решил назвать эту операционную систему GNU ( рекурсивная аббревиатура , означающая « GNU — это не Unix! »), основываясь на конструкции Unix , проприетарной операционной системы. [4] Согласно манифесту, основной целью проекта было создание свободной операционной системы и, если возможно, «всего полезного, что обычно поставляется с системой Unix, чтобы можно было обойтись без любого несвободного программного обеспечения. " Разработка была начата в январе 1984 года. В 1991 году появилось ядро Linux , разработанное вне проекта GNU Линусом Торвальдсом , [5] и в декабре 1992 года оно стало доступным по версии 2 GNU General Public License . [6] В сочетании с утилитами операционной системы, уже разработанными в рамках проекта GNU, это позволило создать первую операционную систему, которая представляла собой свободное программное обеспечение, широко известное как Linux . [7] [8]
Текущая работа проекта включает разработку программного обеспечения, повышение осведомленности, политическую кампанию и обмен новыми материалами.
Ричард Столлман объявил о своем намерении начать кодирование проекта GNU в сообщении Usenet в сентябре 1983 года. [9] Несмотря на то, что Столлман никогда раньше не использовал Unix, он считал, что это наиболее подходящая конструкция системы для использования в качестве основы для проекта GNU, поскольку он был портативным и «достаточно чистым». [10]
Когда проект GNU только начинался, у них был текстовый редактор Emacs с Lisp для написания команд редактора, отладчик уровня исходного кода , генератор синтаксического анализатора , совместимый с yacc , и компоновщик . [11] Система GNU требовала, чтобы собственный компилятор C и инструменты были свободными, поэтому их тоже необходимо было разработать. К июню 1987 года в рамках проекта было накоплено и разработано свободное программное обеспечение для ассемблера , почти готовый портативный оптимизирующий компилятор C ( GCC ), редактор ( GNU Emacs ) и различные Unix-утилиты (такие как , , и ) . [12] У них было первоначальное ядро, которое нуждалось в дополнительных обновлениях. ls
grep
awk
make
ld
Как только ядро и компилятор были закончены, GNU можно было использовать для разработки программ . Основная цель заключалась в создании множества других приложений, похожих на систему Unix. GNU мог запускать программы Unix, но не был им идентичен. GNU включала более длинные имена файлов, номера версий файлов и защищенную от сбоев файловую систему. Манифест GNU был написан для того, чтобы заручиться поддержкой и участием других в проекте. Программистам было предложено принять участие в любом аспекте проекта, который их интересовал. Люди могли пожертвовать средства, компьютерные детали или даже свое время на написание кода и программ для проекта. [4]
Истоки и развитие большинства аспектов проекта GNU (и свободного программного обеспечения в целом) подробно описаны в справочной системе Emacs. (Ch g запускает команду редактора Emacs describe-gnu-project.) Это такая же подробная история, как и на их веб-сайте.
Манифест GNU был написан Ричардом Столлманом с целью заручиться поддержкой и участием в проекте GNU. В Манифесте GNU Столлман перечислил четыре свободы, необходимые пользователям программного обеспечения: свободу запускать программу для любых целей, свободу изучать механику программы и изменять ее, свободу распространять копии и свободу улучшать и изменять модифицированные версии для публичного доступа. использовать. [13] [14] Чтобы реализовать эти свободы, пользователям необходим был полный доступ к исходному коду . Чтобы гарантировать, что код останется свободным и предоставить его общественности, Столлман создал Стандартную общественную лицензию GNU (GPL), которая позволяла программному обеспечению и будущим поколениям кода, полученного на его основе, оставаться бесплатными для публичного использования.
Хотя большая часть результатов проекта GNU носит технический характер, он был запущен как социальная, этическая и политическая инициатива. Помимо производства программного обеспечения и лицензий, проект GNU опубликовал ряд работ, автором большинства из которых является Ричард Столлман.
Проект GNU использует программное обеспечение, которое пользователи могут бесплатно копировать, редактировать и распространять. Оно бесплатно в том смысле, что пользователи могут изменять программное обеспечение в соответствии с индивидуальными потребностями. Способ, которым программисты получают бесплатное программное обеспечение, зависит от того, где они его получают. Программное обеспечение может быть предоставлено программисту от друзей или через Интернет, либо компания, в которой работает программист, может приобрести это программное обеспечение.
Доходы от ассоциированных членов, покупок и пожертвований поддерживают проект GNU. [15]
Copyleft — это то, что помогает поддерживать свободное использование этого программного обеспечения среди других программистов. Копилефт дает законное право каждому использовать, редактировать и распространять программы или их код при условии, что условия распространения не меняются. В результате любой пользователь, получивший программное обеспечение на законных основаниях, имеет те же свободы, что и остальные его пользователи.
Проект GNU и Фонд свободного программного обеспечения иногда различают «сильное» и «слабое» авторское лево. «Слабые» программы авторского лева обычно позволяют дистрибьюторам связывать их вместе с несвободными программами, в то время как «сильное» авторское лево строго запрещает такую практику. Большая часть продукции проекта GNU выпускается под строгим авторским левом, хотя некоторые из них выпускаются под слабым авторским левом или под слабой, принудительной лицензией на свободное программное обеспечение. [16] [17]
Первой целью проекта GNU было создание полноценной операционной системы свободного программного обеспечения. Поскольку UNIX уже была широко распространена и работала на более мощных машинах по сравнению с современными машинами CP/M или MS-DOS , [18] было решено, что это будет Unix-подобная операционная система. Ричард Столлман позже заметил, что считает MS-DOS «игрушкой». [19]
К 1992 году проект GNU завершил работу над всеми основными утилитами операционной системы, но не завершил предложенное ядро операционной системы , GNU Hurd . С выпуском ядра Linux , начатым независимо Линусом Торвальдсом в 1991 году и выпущенным под лицензией GPLv2 с версией 0.12 в 1992 году, впервые появилась возможность запускать операционную систему, полностью состоящую из свободного программного обеспечения. Хотя ядро Linux не является частью проекта GNU, оно было разработано с использованием GCC и других инструментов программирования GNU и выпущено как бесплатное программное обеспечение под лицензией GNU General Public License . [20] Большая часть компиляции ядра Linux по-прежнему выполняется с помощью наборов инструментов GNU, но в настоящее время для компиляции можно использовать компилятор Clang и набор инструментов LLVM . [21]
На данный момент проект GNU/Hurd не выпустил версию GNU/Hurd , подходящую для производственных сред, с момента запуска проекта GNU/Hurd более 33 лет назад. [22]
Стабильную версию (или вариант) GNU можно запустить, объединив пакеты GNU с ядром Linux , создав функциональную Unix-подобную систему. Проект GNU называет это GNU/Linux, а определяющими особенностями являются сочетание:
На веб-сайте GNU представлен список проектов, и для каждого проекта указано, какой тип разработчика может выполнить задачу, необходимую для определенной части проекта GNU. Уровень навыков варьируется от проекта к проекту, но любой, кто имеет базовые знания в области программирования, приглашается поддержать проект.
Пакет инструментов GNU вместе с ядром Linux и другими программами обычно называют дистрибутивом Linux (дистрибутивом). Проект GNU называет комбинацию GNU и ядра Linux «GNU/Linux» и просит других сделать то же самое, [34] что приводит к разногласиям в именах GNU/Linux .
Большинство дистрибутивов Linux сочетают пакеты GNU с ядром Linux, которое содержит собственные двоичные объекты . [35]
Руководство по распространению свободной системы GNU (GNU FSDG) — это обязательство по распространению системы, используемое для объяснения того, что означает, что устанавливаемый дистрибутив системы (например, дистрибутив Linux) квалифицируется как бесплатный (libre), и помогает разработчикам дистрибутива обеспечить соответствие их дистрибутивов.
В основном список описывает дистрибутивы, которые представляют собой комбинацию пакетов GNU с ядром Linux-libre (модифицированное ядро Linux, которое удаляет двоичные объекты, запутанный код и части кода под проприетарными лицензиями) и состоят только из свободного программного обеспечения (избегая проприетарного программного обеспечения). полностью). [36] [37] [35] Дистрибутивы, в которых принята GNU FSDG, включают Dragora GNU/Linux-Libre , GNU Guix System , Hyperbola GNU/Linux-libre , Parabola GNU/Linux-libre , Trisquel GNU/Linux , PureOS и несколько других. [38]
Рекомендации по лицензированию распространения проекта Fedora были использованы в качестве основы для FSDG. [39] Однако собственные руководящие принципы проекта Fedora в настоящее время не соответствуют FSDG, и поэтому проект GNU не считает Fedora полностью свободным (libre) дистрибутивом GNU/Linux. [35]
С середины 1990-х годов, когда многие компании инвестировали в разработку свободного программного обеспечения, Фонд свободного программного обеспечения перенаправил свои средства на юридическую и политическую поддержку разработки свободного программного обеспечения. С этого момента разработка программного обеспечения была сосредоточена на поддержании существующих проектов и запуске новых проектов только тогда, когда возникла острая угроза сообществу свободного программного обеспечения . Одним из наиболее заметных проектов проекта GNU является коллекция компиляторов GNU , компоненты которой были приняты в качестве стандартной системы компилятора во многих Unix-подобных системах.
Авторские права на большинство работ проекта GNU принадлежат Фонду свободного программного обеспечения. [40]
Разработка рабочего стола GNOME была начата проектом GNU Project, потому что другая настольная система, KDE , становилась популярной, но требовала от пользователей установки Qt , которая в то время была проприетарным программным обеспечением . Чтобы уберечь людей от соблазна установить KDE и Qt, проект GNU одновременно запустил два проекта. Одним из них был инструментарий Harmony . Это была попытка сделать бесплатную замену Qt. Если бы этот проект был успешным, предполагаемая проблема с KDE была бы решена. Вторым проектом был GNOME, который рассматривал ту же проблему под другим углом. Целью проекта было создание замены KDE, которая не зависела бы от проприетарного программного обеспечения. Проект Harmony не добился большого прогресса, но GNOME развивался очень хорошо. В конце концов, проприетарный компонент, от которого зависел KDE ( Qt ), был выпущен как бесплатное программное обеспечение. [41] С тех пор GNOME отделился от проекта GNU и Фонда свободного программного обеспечения и теперь независимо управляется проектом GNOME .
GNU Enterprise ( GNUe ) — это метапроект, начатый в 1996 году [42] , и его можно рассматривать как подпроект проекта GNU. Целью GNUe является создание бесплатных «приложений корпоративного класса, поддерживающих данные» ( планировщики ресурсов предприятия и т. д.). GNUe предназначен для сбора корпоративного программного обеспечения для системы GNU в одном месте (так же, как проект GNOME собирает программное обеспечение для настольных компьютеров).
В 2001 году проект GNU получил премию USENIX Lifetime Achievement Award за «повсеместность, широту и качество свободно распространяемого и модифицируемого программного обеспечения, которое позволило провести целое поколение исследований и коммерческих разработок». [43]
Мы благодарим Аурелио А. Хеккерта... за то, что он подарил нам это изображение.
Этот рисунок был нарисован Этьеном Сувасой.
Название «GNU» — это рекурсивная аббревиатура от «GNU's Not Unix!»;
оно произносится
как г-ноо
, как один слог без гласного звука между
г
и
н
.
...мы пытались использовать слово «Linux» или выражение «ядро Linux» для обозначения ядра, а GNU/Linux — для обозначения всего программного обеспечения ОС под GNU/GPL,... ...многие люди забывают, что список рассылки ядра Linux — это форум для обсуждения вопросов, связанных с ядром, а не GNU/Linux в целом...
сегодня наше внимание сосредоточено на облаке и мобильных устройствах, и мы явно лидируем в GNU/Linux на обоих фронтах.
Это один из немногих файлов GNU, не распространяемых под лицензией GNU General Public License или GNU Lesser General Public License;
он распространяется по такой лицензии, как X11 License.
Есть причины, по которым в определенных случаях лучше использовать Меньшую GPL.
Возможно, он еще не готов к использованию в производстве, так как все еще есть некоторые ошибки и недостающие функции.
Мы хотели бы поблагодарить проект Fedora за помощь в определении этих политик и разрешение использовать их собственные рекомендации по лицензированию распространения в качестве основы для этого документа.