Проект 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 за помощь в определении этих политик и за предоставленную нам возможность использовать их собственные правила лицензирования распространения в качестве основы для этого документа.