Проект 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 General Public License (GPL), которая позволяла программному обеспечению и будущим поколениям кода, полученного из него, оставаться свободными для публичного использования.
Хотя большая часть продукции проекта GNU носит технический характер, он был запущен как социальная, этическая и политическая инициатива. Помимо производства программного обеспечения и лицензий, проект GNU опубликовал ряд работ, большинство из которых были написаны Ричардом Столлманом.
Проект GNU использует программное обеспечение, которое пользователи могут копировать, редактировать и распространять бесплатно. Оно бесплатно в том смысле, что пользователи могут изменять программное обеспечение в соответствии с индивидуальными потребностями. Способ, которым программисты получают бесплатное программное обеспечение, зависит от того, где они его получают. Программисту программное обеспечение может быть предоставлено друзьями или через Интернет, или компания, в которой работает программист, может купить программное обеспечение.
Доходы от ассоциированных членов, покупок и пожертвований поддерживают проект GNU. [15]
Copyleft — это то, что помогает поддерживать свободное использование этого программного обеспечения среди других программистов. 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 не выпустил версию GNU/Hurd , подходящую для производственных сред с момента начала проекта GNU/Hurd более 33 лет назад. [22]
Стабильная версия (или вариант) GNU может быть запущена путем объединения пакетов GNU с ядром Linux , создавая функциональную Unix-подобную систему. Проект GNU называет это GNU/Linux, а определяющими особенностями являются комбинация:
На сайте GNU выложен список проектов, и каждый проект имеет специфику того, какой тип разработчика способен выполнить задачу, необходимую для определенной части проекта GNU. Уровень навыков варьируется от проекта к проекту, но любой, у кого есть базовые знания в программировании, может поддержать проект.
Упаковка инструментов GNU вместе с ядром Linux и другими программами обычно называется дистрибутивом Linux (distro). Проект 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]
В качестве основы для FSDG были использованы руководящие принципы лицензирования дистрибутивов Fedora Project. [39] Однако собственные руководящие принципы Fedora Project в настоящее время не соответствуют FSDG, и поэтому GNU Project не считает Fedora полностью свободным (libre) дистрибутивом GNU/Linux. [35]
Начиная с середины 1990-х годов, когда многие компании инвестировали в разработку свободного программного обеспечения, Free Software Foundation перенаправил свои средства на юридическую и политическую поддержку разработки свободного программного обеспечения. С этого момента разработка программного обеспечения была сосредоточена на поддержании существующих проектов и запуске новых проектов только в случае возникновения острой угрозы сообществу свободного программного обеспечения . Одним из наиболее заметных проектов проекта GNU является GNU Compiler Collection , компоненты которого были приняты в качестве стандартной системы компиляторов во многих Unix-подобных системах.
Авторские права на большинство работ проекта GNU принадлежат Free Software Foundation. [40]
Проект рабочего стола GNOME был запущен проектом GNU, потому что другая настольная система, KDE , становилась популярной, но требовала от пользователей установки Qt , которая тогда была проприетарным программным обеспечением . Чтобы предотвратить соблазн людей установить KDE и Qt, проект GNU одновременно запустил два проекта. Одним из них был инструментарий Harmony . Это была попытка сделать бесплатную замену Qt. Если бы этот проект был успешным, предполагаемая проблема с KDE была бы решена. Вторым проектом был GNOME, который решал ту же проблему с другой стороны. Он был направлен на создание замены KDE, которая не имела бы зависимостей от проприетарного программного обеспечения. Проект Harmony не добился большого прогресса, но GNOME развивался очень хорошо. В конце концов, проприетарный компонент, от которого зависел KDE ( Qt ), был выпущен как свободное программное обеспечение. [41] С тех пор GNOME отделился от проекта GNU и Free Software Foundation и теперь независимо управляется проектом GNOME .
GNU Enterprise ( GNUe ) — метапроект, начатый в 1996 году [42], и его можно рассматривать как подпроект проекта GNU. Цель GNUe — создание свободных «корпоративных приложений, работающих с данными» ( планировщиков ресурсов предприятия и т. д.). GNUe предназначен для сбора корпоративного программного обеспечения для системы GNU в одном месте (подобно тому, как проект GNOME собирает программное обеспечение для настольных компьютеров).
В 2001 году проект GNU получил премию USENIX Lifetime Achievement Award за «повсеместность, широту и качество его свободно распространяемого и модифицируемого программного обеспечения, которое дало возможность целому поколению исследований и коммерческих разработок». [43]
благодарим Аурелио А. Хеккерта... за предоставление нам этой графики.
рисунок нарисовал Этьен Суваса
Название "GNU" является рекурсивным акронимом для "GNU's Not Unix!"; произносится как
g-noo
, как один слог без гласного звука между
g
и
n
.
...мы пытались использовать слово "Linux" или выражение "ядро Linux" для обозначения ядра, а GNU/Linux — для обозначения всего корпуса программного обеспечения ОС под лицензией GNU/GPL,... ...многие забывают, что почтовая рассылка ядра Linux — это форум для обсуждения вопросов, связанных с ядром, а не GNU/Linux в целом...
Сегодня мы сосредоточены на облаке и мобильных устройствах, и мы совершенно очевидно лидируем в GNU/Linux на обоих фронтах
Это один из немногих файлов GNU, не распространяемых по GNU General Public License или GNU Lesser General Public License; он распространяется по лицензии, подобной X11 License
Есть причины, по которым в определенных случаях лучше использовать Lesser GPL.
Возможно, он не готов к использованию в производстве, так как в нем все еще есть некоторые ошибки и отсутствующие функции.
Мы хотели бы поблагодарить Fedora Project за помощь в определении этих политик и за предоставленную нам возможность использовать их собственные правила лицензирования распространения в качестве основы для этого документа.