Проект GNU

Проект свободного программного обеспечения
Талисман GNU, Аурелио А. Хеккерт [1] (основан на более подробной версии Этьена Сувасы) [2]

Проект GNU ( / ɡ n / )[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] У них было начальное ядро, которое требовало дополнительных обновлений. lsgrepawkmakeld

После того, как ядро ​​и компилятор были закончены, GNU можно было использовать для разработки программ . Главной целью было создание множества других приложений, похожих на систему Unix. GNU мог запускать программы Unix, но не был идентичен ей. GNU включал более длинные имена файлов, номера версий файлов и отказоустойчивую файловую систему. Манифест GNU был написан, чтобы получить поддержку и участие других в проекте. Программистов поощряли принимать участие в любом аспекте проекта, который их интересовал. Люди могли жертвовать средства, компьютерные детали или даже свое собственное время для написания кода и программ для проекта. [4]

Истоки и развитие большинства аспектов проекта GNU (и свободного программного обеспечения в целом) подробно изложены в справочной системе Emacs. (Ch g запускает команду редактора Emacs describe-gnu-project.) Это та же подробная история, что и на их веб-сайте.

Манифест GNU

Манифест GNU был написан Ричардом Столлманом для получения поддержки и участия в проекте GNU. В Манифесте GNU Столлман перечислил четыре свободы, необходимые пользователям программного обеспечения: свобода запускать программу для любых целей, свобода изучать механику программы и изменять ее, свобода распространять копии и свобода улучшать и изменять измененные версии для публичного использования. [13] [14] Для реализации этих свобод пользователям требовался полный доступ к исходному коду . Чтобы гарантировать, что код останется свободным и предоставить его общественности, Столлман создал GNU General Public License (GPL), которая позволяла программному обеспечению и будущим поколениям кода, полученного из него, оставаться свободными для публичного использования.

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

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

Бесплатное программное обеспечение

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

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

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

Копилефт

Copyleft — это то, что помогает поддерживать свободное использование этого программного обеспечения среди других программистов. Copyleft дает законное право каждому использовать, редактировать и распространять программы или код программ, пока условия распространения не меняются. В результате любой пользователь, который получает программное обеспечение законным путем, имеет те же свободы, что и остальные его пользователи.

Проект GNU и Фонд свободного программного обеспечения иногда различают «сильный» и «слабый» копилефт. Программы со «слабым» копилефтом обычно позволяют дистрибьюторам связывать их с несвободными программами, в то время как «сильный» копилефт строго запрещает такую ​​практику. Большая часть продукции проекта GNU выпускается под сильным копилефтом, хотя некоторая часть выпускается под слабым копилефтом или нестрогой, необременительной лицензией свободного ПО. [16] [17]

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

GNU Hurd живой CD

Первой целью проекта 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/Linux

Стабильная версия (или вариант) 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 (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

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

Признание

В 2001 году проект GNU получил премию USENIX Lifetime Achievement Award за «повсеместность, широту и качество его свободно распространяемого и модифицируемого программного обеспечения, которое дало возможность целому поколению исследований и коммерческих разработок». [43]

Смотрите также

Ссылки

  1. ^ "A Bold GNU Head". Архивировано из оригинала 5 декабря 2014 г. Получено 30 ноября 2014 г. Мы благодарим Аурелио А. Хеккерта... за предоставление нам этой графики.
  2. ^ "A GNU Head". Архивировано из оригинала 28 июля 2011 г. Получено 30 ноября 2014 г. Этот рисунок нарисовал Этьен Суваса
  3. ^ "Что такое GNU?". Операционная система GNU . Фонд свободного программного обеспечения . 4 сентября 2009 г. Архивировано из оригинала 2004-04-02 . Получено 2009-10-09 . Название "GNU" является рекурсивным акронимом для "GNU's Not Unix!"; произносится как g-noo , как один слог без гласного звука между g и n .
  4. ^ ab "The GNU Manifesto". Free Software Foundation . 21 июля 2007 г. Архивировано из оригинала 2018-07-14 . Получено 2015-10-08 .
  5. Torvalds, Linus Benedict (август 1991). "comp.os.minix". Архивировано из оригинала 2013-05-09 . Получено 2009-09-06 .
  6. ^ "z-архив Linux версии 0.99". Архив ядра Linux . Декабрь 1992. Архивировано из оригинала 2017-01-30.
  7. ^ Balsa, Andrew D. "Часто задаваемые вопросы о почтовой рассылке linux-kernel". Архив ядра Linux . Kernel.org. Архивировано из оригинала 2012-10-01 . Получено 2013-06-13 . ...мы пытались использовать слово "Linux" или выражение "ядро Linux" для обозначения ядра, а GNU/Linux — для обозначения всего корпуса программного обеспечения ОС под лицензией GNU/GPL,... ...многие забывают, что почтовая рассылка ядра Linux — это форум для обсуждения вопросов, связанных с ядром, а не GNU/Linux в целом...
  8. ^ Марк Шаттлворт (14 февраля 2014 г.). «Проигрываем любезно». Архивировано из оригинала 22 марта 2014 г. Получено 27 апреля 2014 г. Сегодня мы сосредоточены на облаке и мобильных устройствах, и мы совершенно очевидно лидируем в GNU/Linux на обоих фронтах
  9. ^ Ричард Столлман. "новая реализация Unix". Архивировано из оригинала 2011-01-22 . Получено 2013-09-27 .
  10. ^ Столлман, Ричард (2022). «Как я делаю свои вычисления». Архивировано из оригинала 31 января 2023 г. Получено 31 января 2023 г.
  11. ^ Уордрип-Фруин, Ноа; и Ник Монтфорт. «Манифест GNU». The NewMediaReader . Кембридж, Массачусетс: MIT, 2003. стр. 545–550.
  12. ^ "GNU's Bulletin, vol. 1 no. 3". gnu.org . Июнь 1987. Архивировано из оригинала 2015-11-25 . Получено 2014-04-18 .
  13. ^ Столлман, Ричард (март 1985 г.). «Манифест GNU – Проект GNU – Фонд свободного программного обеспечения (FSF)». gnu.org . Проект GNU. Архивировано из оригинала 2018-07-14 . Получено 2011-10-18 .
  14. ^ Вебер, С. (2004). Успех открытого исходного кода . Кембридж: Издательство Гарвардского университета.
  15. ^ Помощь проекту GNU и движению за свободное программное обеспечение – Проект GNU – Фонд свободного программного обеспечения Архивировано 25 декабря 2015 г. на Wayback Machine . gnu.org. Получено 17 июля 2013 г.
  16. ^ "Ncurses". wiki.freedesktop.org . Архивировано из оригинала 2021-03-22 . Получено 2019-03-18 . Это один из немногих файлов GNU, не распространяемых по GNU General Public License или GNU Lesser General Public License; он распространяется по лицензии, подобной X11 License
  17. ^ "Почему вам не следует использовать Lesser GPL для вашей следующей библиотеки". GNU . Архивировано из оригинала 2007-11-26 . Получено 2019-03-18 . Есть причины, по которым в определенных случаях лучше использовать Lesser GPL.
  18. ^ "GNU's Bulletin Volume 1 No.1". Февраль 1986. Архивировано из оригинала 2015-06-23 . Получено 2020-08-16 .
  19. ^ "Ричард Столлман: Свобода". Радио Новой Зеландии . 9 августа 2008 г. Архивировано из оригинала 31 октября 2020 г. Получено 16 августа 2020 г.
  20. Линус Бенедикт Торвальдс (26 августа 1991 г.). «Что бы вы хотели видеть больше всего в minix?». comp.os.minix. Архивировано из оригинала 30 апреля 2013 г. Получено 28 июля 2016 г.
  21. ^ Сообщество разработчиков ядра. "Сборка Linux с помощью Clang/LLVM". Документация ядра Linux. Архивировано из оригинала 2022-09-27 . Получено 2022-10-08 .
  22. ^ "GNU Hurd/ hurd/ status". Операционная система GNU . Free Software Foundation. Архивировано из оригинала 2020-11-12 . Получено 2018-04-15 . Возможно, он не готов к использованию в производстве, так как в нем все еще есть некоторые ошибки и отсутствующие функции.
  23. ^ ab "Все пакеты GNU". gnu.org . Архивировано из оригинала 2015-12-25 . Получено 2014-04-18 .
  24. ^ ab GNU @ Free Software Directory Архивировано 05.12.2015 на Wayback Machine (fsf.org)
  25. ^ "POSIX – The GNU C Library". Архивировано из оригинала 2014-04-24 . Получено 2014-04-18 .
  26. ^ Библиотека GNU C#Временная ветка
  27. ^ Архитектуры GCC
  28. ^ "Архивы ядра Linux". Архивировано из оригинала 2011-02-21 . Получено 2016-07-25 .
  29. ^ "Release Notes for Linux v0.12". Архивировано из оригинала 2013-05-26 . Получено 2012-12-24 .
  30. ^ Следует ли применять соглашение GNU/name ко всем программам, распространяемым под GPL? Архивировано 07.09.2013 в разделе Wayback Machine GNU/Linux FAQ Ричарда Столлмана
  31. ^ Почему вы пишете «GNU/Linux» вместо «GNU Linux»? Архивировано 2013-09-07 в Wayback Machine GNU/Linux FAQ Ричардом Столлманом
  32. ^ Разве не неправильно с нашей стороны называть работу Линуса Торвальдса GNU? Архивировано 2013-09-07 в Wayback Machine GNU/Linux FAQ Ричардом Столлманом
  33. ^ Согласен ли Линус Торвальдс с тем, что Linux — это всего лишь ядро? Архивировано 2013-09-07 в Wayback Machine GNU/Linux FAQ Ричардом Столлманом
  34. ^ «Почему вы называете это GNU/Linux, а не Linux?». Архивировано из оригинала 2013-09-07 . Получено 2014-04-18 .
  35. ^ abc "Объяснение, почему мы не одобряем другие системы". GNU . Архивировано из оригинала 2011-04-24 . Получено 2016-07-22 .
  36. ^ "Guidelines for Free System Distributions". gnu.org . Архивировано из оригинала 2015-12-08 . Получено 2014-04-17 .
  37. ^ "Избегание губительных компромиссов". www.gnu.org . Архивировано из оригинала 2018-06-22 . Получено 2016-07-22 .
  38. ^ "Список свободных дистрибутивов GNU/Linux – Проект GNU – Фонд свободного программного обеспечения". gnu.org . Архивировано из оригинала 2014-12-16 . Получено 2014-08-18 .
  39. ^ "Free System Distribution Guidelines (GNU FSDG) – GNU Project". gnu.org . publisher. Архивировано из оригинала 2015-12-08 . Получено 2014-06-07 . Мы хотели бы поблагодарить Fedora Project за помощь в определении этих политик и за предоставленную нам возможность использовать их собственные правила лицензирования распространения в качестве основы для этого документа.
  40. ^ Моглен, Эбен. «Почему FSF получает авторские права от участников». gnu project . Архивировано из оригинала 2023-05-11 . Получено 2023-05-11 .
  41. ^ Столлман, Ричард (5 сентября 2000 г.). «Столлман о Qt, GPL, KDE и GNOME». Linux Today. Архивировано из оригинала 2012-04-19 . Получено 2005-09-09 .
  42. ^ "История проекта GNU Enterprise – GNU Enterprise". 2013-01-16. Архивировано из оригинала 2013-01-16 . Получено 2019-02-18 .
  43. ^ "USENIX Lifetime Achievement Award ("The Flame")". USENIX. Архивировано из оригинала 2007-12-28 . Получено 2007-12-05 .
  • Официальный сайт
  • Каталог свободного программного обеспечения GNU
  • GNU Enterprise
Взято с "https://en.wikipedia.org/w/index.php?title=GNU_Project&oldid=1250667041"