Введение

Проект свободного программного обеспечения

Проект GNU (/audio=En gnu. ogg//ɡ//n//uː/) — это проект массового сотрудничества в области свободного программного обеспечения, объявленный Ричардом Столлманом 27 сентября 1983 года. Его цель — предоставить пользователям компьютеров свободу и контроль в использовании их компьютеров и вычислительных устройств посредством совместной разработки и публикации программного обеспечения, которое даёт каждому право свободно запускать, копировать и распространять программу, изучать её и модифицировать. Программное обеспечение GNU предоставляет эти права в своей лицензии. Чтобы обеспечить пользователям все свободы (использование, распространение, изучение, изменение) во всём программном обеспечении компьютера, даже в самой фундаментальной и важной его части — операционной системе (включая все её многочисленные утилиты), необходимо, чтобы она была свободным программным обеспечением. Столлман решил назвать эту операционную систему GNU (рекурсивный акроним, означающий «GNU is Not Unix!»), основываясь на архитектуре Unix, проприетарной операционной системы. Согласно манифесту, основополагающей целью проекта было создание свободной операционной системы и, по возможности, «всего полезного, что обычно поставляется с системой Unix, чтобы можно было обойтись без какого-либо несвободного программного обеспечения». Разработка началась в январе 1984 года. В 1991 году появилось ядро Linux, разработанное Линусом Торвальдсом вне проекта GNU, а в декабре 1992 года оно было опубликовано под лицензией GNU General Public License версии 2. В сочетании с утилитами операционной системы, уже разработанными проектом GNU, это позволило создать первую операционную систему, полностью состоящую из свободного программного обеспечения, обычно известную как Linux. В настоящее время проект занимается разработкой программного обеспечения, повышением осведомлённости, политической деятельностью и распространением новых материалов.

Происхождение

Ричард Столлман объявил о своем намерении начать разработку проекта GNU в сообщении в Usenet в сентябре 1983 года. Несмотря на то, что он никогда ранее не использовал Unix, Столлман считал, что это наиболее подходящая архитектура системы для использования в качестве основы для проекта GNU, поскольку она была переносимой и "достаточно чистой". Когда проект GNU только начинался, в его распоряжении были текстовый редактор Emacs с Lisp для написания команд редактора, отладчик на уровне исходного кода, генератор парсеров, совместимый с yacc, и компоновщик. Для системы GNU требовался собственный компилятор и инструменты C, чтобы быть свободным программным обеспечением, поэтому их также необходимо было разработать. К июню 1987 года проект накопил и разработал свободное программное обеспечение для ассемблера, почти завершенного переносимого оптимизирующего C-компилятора (GCC), редактора (GNU Emacs) и различных утилит Unix (таких как ls, grep, awk, make и ld). У них было начальное ядро, которое нуждалось в дальнейших обновлениях. После завершения разработки ядра и компилятора GNU можно было использовать для разработки программ. Основной целью было создание множества других приложений, аналогичных системе Unix. GNU мог запускать программы Unix, но не был ей идентичен. GNU включал в себя более длинные имена файлов, номера версий файлов и отказоустойчивую файловую систему. Манифест GNU был написан для привлечения поддержки и участия других в проекте. Программистов призывали участвовать в любом аспекте проекта, который их интересовал. Люди могли жертвовать средства, компьютерные комплектующие или даже свое время на написание кода и программ для проекта. Для реализации этих свобод пользователям требовался полный доступ к исходному коду. Чтобы обеспечить свободный доступ к коду и предоставить его общественности, Столлман создал GNU General Public License (GPL), которая позволяла программному обеспечению и будущим поколениям кода, полученного на его основе, оставаться свободными для общественного использования.

Философия и активизм

Хотя большая часть результатов деятельности проекта GNU носит технический характер, он был начат как социальная, этическая и политическая инициатива. Наряду с разработкой программного обеспечения и лицензий, проект GNU опубликовал ряд публикаций, большинство из которых принадлежат авторству Ричарда Столлмана.

Свободные программы

Проект GNU использует программное обеспечение, которое пользователи могут свободно копировать, изменять и распространять. Оно является свободным в том смысле, что пользователи могут адаптировать его под свои нужды. То, как программисты получают это свободное программное обеспечение, зависит от источника. Программист может получить его от друзей или через Интернет, либо компания, в которой он работает, может приобрести его.

Финансирование

Доходы от ассоциированных участников, покупок и пожертвований поддерживают проект GNU.

Копилефт

Копилефт способствует сохранению возможности свободного использования этого программного обеспечения среди других программистов. Копилефт предоставляет каждому законное право использовать, изменять и распространять программы или исходный код программ при условии, что условия распространения остаются неизменными. В результате, любой пользователь, получивший программное обеспечение легальным путем, обладает теми же свободами, что и все остальные пользователи. Проект GNU и Фонд свободного программного обеспечения иногда проводят различие между "сильным" и "слабым" копилефтом. Программы со "слабым" копилефтом обычно допускают объединение их с несвободными программами, в то время как "сильный" копилефт строго запрещает такую практику. Большая часть продуктов Проекта GNU распространяется под лицензией сильного копилефта, хотя некоторые – под лицензией слабого копилефта или более мягкой, разрешительной лицензией свободного программного обеспечения.

Разработка операционной системы

Первой целью проекта GNU было создание полноценной операционной системы, целиком состоящей из свободного программного обеспечения. Поскольку UNIX уже был широко распространен и работал на более мощных машинах, чем современные CP/M или MS DOS, было решено создать операционную систему, совместимую с UNIX. Ричард Столлман позже отметил, что считал MS DOS "игрушкой". К 1992 году проект GNU завершил разработку всех основных утилит операционной системы, но не завершил создание предлагаемого ядра операционной системы GNU Hurd. С выпуском ядра Linux, разработанного независимо Линусом Торвальдсом в 1991 году и выпущенного под лицензией GPLv2 с версией 0.12 в 1992 году, впервые появилась возможность запускать операционную систему, полностью состоящую из свободного программного обеспечения. Хотя ядро Linux не является частью проекта GNU, оно было разработано с использованием GCC и других инструментов программирования GNU и выпущено как свободное программное обеспечение под лицензией GNU General Public License. Большая часть компиляции ядра Linux по-прежнему выполняется с использованием инструментария GNU, но в настоящее время можно использовать компилятор Clang и инструментарий LLVM для компиляции. На сегодняшний день проект GNU не выпустил версию GNU/Hurd, пригодную для использования в производственной среде, с момента начала разработки GNU/Hurd.

GNU/Linux

Стабильная версия (или вариант) GNU может быть запущена путем объединения пакетов GNU с ядром Linux, создавая функциональную Unix-подобную систему. Проект GNU называет это GNU/Linux, и определяющими характеристиками является сочетание:

* пакетов GNU (за исключением GNU Hurd). Пакеты GNU состоят из множества инструментов и утилит операционной системы (оболочки, coreutils, компиляторов, библиотек и т. д.). Компилятор GCC может генерировать машинный код для широкого спектра компьютерных архитектур.
* ядра Linux – оно реализует планирование задач, многозадачность, драйверы устройств, управление памятью и т. п., и позволяет системе работать на разнообразных компьютерных архитектурах. Линус Торвальдс опубликовал ядро Linux под лицензией GNU General Public License в 1992 году; однако оно не является частью проекта GNU.
* программ, не входящих в GNU – различные пакеты свободного программного обеспечения, которые не входят в проект GNU, но распространяются под лицензией GNU General Public License или другой лицензией на свободное программное обеспечение, одобренной FSF.

На веб-сайте GNU представлен список проектов, и для каждого проекта указаны требования к типу разработчиков, способных выполнить задачи, необходимые для определенной части проекта GNU. Уровень квалификации варьируется в зависимости от проекта, но любой, обладающий базовыми знаниями в программировании, может внести свой вклад в проект.

Совокупность инструментов GNU, ядра Linux и других программ обычно называют дистрибутивом Linux (дистро). Проект GNU называет сочетание GNU и ядра Linux "GNU/Linux" и призывает других поступать так же, что привело к спору о названии GNU/Linux. Большинство дистрибутивов Linux сочетают пакеты GNU с ядром Linux, которое содержит проприетарные двоичные блобы.

Дистрибутивы, принявшие GNU FSDG, включают Dragora GNU/Linux Libre, GNU Guix System, Hyperbola GNU/Linux libre, Parabola GNU/Linux libre, Trisquel GNU/Linux, PureOS и некоторые другие. Руководство по лицензированию дистрибутива проекта Fedora было использовано в качестве основы для FSDG. Однако собственные руководства проекта Fedora в настоящее время не соответствуют FSDG, и поэтому проект GNU не считает Fedora полностью свободным (libre) дистрибутивом GNU/Linux.

GNOME (англ.)

Рабочий стол GNOME был разработан проектом GNU, поскольку другая настольная среда, KDE, набирала популярность, но требовала от пользователей установки Qt, которая в то время была проприетарным программным обеспечением. Чтобы предотвратить соблазн установки KDE и Qt, проект GNU одновременно запустил два проекта. Одним из них был инструментарий Harmony. Это была попытка создать свободную замену Qt. Если бы этот проект увенчался успехом, то проблема, связанная с KDE, была бы решена. Вторым проектом был GNOME, который решал ту же задачу, но с другого подхода. Его целью было создание замены KDE, не имеющей зависимостей от проприетарного программного обеспечения. Проект Harmony не достиг значительного прогресса, но GNOME развивался весьма успешно. В конечном итоге, проприетарный компонент, от которого зависело KDE (Qt), был выпущен под свободной лицензией. С тех пор GNOME отделился от проекта GNU и Фонда свободного программного обеспечения и теперь самостоятельно управляется проектом GNOME.

GNU Enterprise (ГНУ-предприятие)

GNU Enterprise (GNUe) — это метапроект, начатый в 1996 году, который можно рассматривать как подпроект проекта GNU. Цель GNUe — создание свободных программных приложений «корпоративного уровня, работающих с данными» (например, систем планирования ресурсов предприятия). GNUe предназначен для централизованного сбора корпоративного программного обеспечения для системы GNU, подобно тому, как проект GNOME собирает программное обеспечение для настольных компьютеров.

Признание

В 2001 году проект GNU был удостоен премии USENIX Lifetime Achievement Award за "повсеместность, масштаб и качество его свободно распространяемого, перераспределяемого и модифицируемого программного обеспечения, которое способствовало развитию целого поколения исследований и коммерческой разработки".