stringtranslate.com

Проект 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. ^ Торвальдс, Линус Бенедикт (август 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 г.). "Losing graciously". Архивировано из оригинала 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 — это всего лишь ядро? Архивировано 07.09.2013 в 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 .

Внешние ссылки