Проект GNU
Проект GNU — это проект по созданию полностью свободной операционной системы, совместимой с Unix, инициированный Ричардом Столлманом 27 сентября 1983 года. Проект является основополагающим для движения свободного программного обеспечения (СПО) и ставит своей целью предоставить пользователям права на запуск, копирование, распространение, изучение, изменение и улучшение программного обеспечения. Название «GNU» является рекурсивным акронимом от «GNU’s Not Unix» (GNU — это не Unix).
История
Предпосылки и основание
В начале 1980-х годов в сообществе программистов Массачусетского технологического института (MIT) назрело недовольство растущей коммерциализацией программного обеспечения. Ричард Столлман, работавший в лаборатории искусственного интеллекта MIT, столкнулся с ситуацией, когда производители принтеров отказывались предоставлять исходные коды драйверов, что делало невозможным их исправление и доработку. В ответ на это Столлман сформулировал концепцию «свободного программного обеспечения» (free software), где «свобода» понимается как свобода использования, а не как бесплатность.
27 сентября 1983 года Столлман опубликовал в группах новостей Usenet объявление о начале проекта GNU. В нём он объявил о намерении создать свободную Unix-подобную операционную систему, которая будет распространяться бесплатно (в смысле свободы, а не цены) и позволит пользователям сотрудничать, а не конкурировать.
Ранние годы (1984–1990)
В январе 1984 года Столлман уволился из MIT, чтобы посвятить себя проекту, но сохранил доступ к лабораторным ресурсам. Первым шагом стала разработка компилятора GNU C Compiler (GCC), который был завершён в 1987 году. GCC стал одним из первых и наиболее успешных компонентов системы, обеспечив переносимость программного обеспечения на различные архитектуры.
В 1985 году Столлман основал Фонд свободного программного обеспечения (FSF) — некоммерческую организацию для поддержки проекта GNU и продвижения идей свободного ПО. FSF взял на себя юридическую и финансовую поддержку разработчиков, а также занялся распространением программного обеспечения.
К концу 1980-х годов были созданы многие ключевые компоненты GNU: редактор Emacs (1984), отладчик GDB (1986), библиотека GNU C Library (glibc) (1988), утилиты coreutils (файловые менеджеры, текстовые процессоры и т.д.). Однако отсутствовало ядро операционной системы — центральный компонент, управляющий ресурсами компьютера.
Ядро Hurd и роль Linux
Столлман планировал разработать микроядро под названием GNU Hurd (начало разработки — 1990 год). Hurd должен был стать заменой ядра Unix и обеспечить полную свободу системы. Однако разработка Hurd затянулась из-за сложности архитектуры и нехватки ресурсов. К 1991 году Hurd всё ещё не был готов к практическому использованию.
В 1991 году финский студент Линус Торвальдс начал разработку собственного ядра, которое впоследствии стало известно как Linux. Ядро Linux было совместимо с утилитами GNU и распространялось под лицензией GPL. Сочетание ядра Linux и готовых компонентов GNU (компилятор, библиотеки, утилиты) позволило создать первую полностью свободную операционную систему. Эта комбинация получила название GNU/Linux.
Современное состояние
Проект GNU продолжает развиваться и сегодня. Основные усилия сосредоточены на поддержке и совершенствовании существующих компонентов, а также на разработке альтернатив несвободным программам. Ядро Hurd, хотя и не стало массовым, продолжает разрабатываться и используется в экспериментальных целях. FSF также занимается лицензированием, правовой защитой и пропагандой свободного ПО.
Ключевые компоненты проекта GNU
Проект GNU включает в себя сотни программных пакетов, охватывающих практически все аспекты операционной системы.
Компиляторы и инструменты разработки
- GNU Compiler Collection (GCC) — набор компиляторов для языков C, C++, Fortran, Ada, Go и других. Один из самых распространённых компиляторов в мире.
- GNU Debugger (GDB) — мощный отладчик для программ на C, C++, Fortran и других языках.
- GNU Make — утилита для автоматизации сборки проектов.
- GNU Autotools (Autoconf, Automake, Libtool) — набор инструментов для обеспечения переносимости программного обеспечения между различными Unix-подобными системами.
Библиотеки и системные утилиты
- GNU C Library (glibc) — стандартная библиотека языка C, используемая в большинстве GNU/Linux-систем.
- GNU Coreutils — базовый набор утилит для работы с файлами, текстом и процессами (cat, ls, cp, mv, rm, sort, grep и т.д.).
- GNU Bash — командная оболочка (shell), одна из самых популярных в Unix-подобных системах.
- GNU Findutils — утилиты для поиска файлов (find, locate, xargs).
- GNU Tar — архиватор, поддерживающий множество форматов.
Прикладное программное обеспечение
- GNU Emacs — расширяемый, настраиваемый текстовый редактор, который также может использоваться как среда разработки, почтовый клиент, файловый менеджер и т.д.
- GNU Image Manipulation Program (GIMP) — растровый графический редактор, альтернатива Adobe Photoshop.
- GNU Octave — система для численных вычислений, совместимая с MATLAB.
- GNU Privacy Guard (GnuPG) — инструмент для шифрования и цифровой подписи данных.
- GNU GRUB — загрузчик операционной системы, используемый в большинстве дистрибутивов GNU/Linux.
Лицензирование
Проект GNU известен созданием системы лицензий, которые гарантируют свободу программного обеспечения. Основной лицензией является GNU General Public License (GPL).
GNU GPL
GPL — это лицензия с «копилефтом» (copyleft). Она требует, чтобы производные работы (программы, основанные на GPL-коде) также распространялись под той же лицензией. Это предотвращает превращение свободного кода в проприетарное (несвободное) программное обеспечение. GPL гарантирует четыре фундаментальные свободы:
- Свобода запускать программу для любых целей.
- Свобода изучать, как программа работает, и изменять её (требуется доступ к исходному коду).
- Свобода распространять копии программы.
- Свобода улучшать программу и публиковать свои улучшения (требуется доступ к исходному коду).
Другие лицензии GNU
- GNU Lesser General Public License (LGPL) — более мягкая версия GPL, позволяющая связывать свободные библиотеки с проприетарным кодом.
- GNU Affero General Public License (AGPL) — версия GPL, предназначенная для программ, работающих в сетевой среде (например, веб-сервисы), требующая предоставления исходного кода пользователям, взаимодействующим с программой по сети.
- GNU Free Documentation License (GFDL) — лицензия для документации, гарантирующая её свободное распространение и изменение.
Влияние и значение
Проект GNU оказал огромное влияние на развитие информационных технологий и общества в целом.
- Создание движения свободного ПО: Проект заложил философскую и правовую основу для движения, которое распространилось далеко за пределы Unix-мира.
- Развитие операционной системы GNU/Linux: Без компонентов GNU (особенно GCC, glibc и coreutils) ядро Linux не могло бы стать полноценной операционной системой. Дистрибутивы GNU/Linux (Debian, Ubuntu, Fedora, Red Hat Enterprise Linux и др.) являются доминирующей платформой для серверов, суперкомпьютеров, встраиваемых систем и многих других областей.
- Правовая защита свобод: GPL стала одной из самых влиятельных лицензий в истории, оказав влияние на такие проекты, как WordPress, Drupal, MySQL, Git и многие другие.
- Экономические последствия: Свободное ПО, созданное в рамках проекта GNU, снизило барьеры для входа в IT-индустрию, позволило создавать новые бизнес-модели (например, Red Hat, Canonical) и стимулировало инновации.
Критика
Проект GNU и его подход подвергались критике с разных сторон.
- Радикализм и догматизм: Некоторые критики, включая Линуса Торвальдса, считают, что Ричард Столлман и FSF слишком догматичны в вопросах свободы, что может отталкивать коммерческих разработчиков и пользователей. Торвальдс предпочитает более прагматичный подход, допуская использование несвободных компонентов в ядре Linux.
- Сложность GPL: Некоторые разработчики и компании находят GPL слишком сложной и ограничивающей, особенно в части «копилефта». Это привело к появлению альтернативных лицензий, таких как MIT, BSD и Apache, которые являются более либеральными.
- Медленное развитие Hurd: Неудача с разработкой ядра Hurd и последующая зависимость от ядра Linux, которое не является частью проекта GNU, стала предметом критики и иронии. Некоторые утверждают, что проект GNU не смог выполнить свою главную задачу — создать полностью свободную операционную систему с нуля.
- Недостаток внимания к пользовательскому опыту: В ранние годы проект GNU фокусировался на функциональности и свободе, иногда в ущерб удобству использования. Это изменилось с появлением дистрибутивов GNU/Linux, которые начали уделять больше внимания пользовательскому интерфейсу.
Источники
- Stallman, R. M. (1983). Initial GNU announcement. Usenet posting.
- Stallman, R. M. (2002). Free Software, Free Society: Selected Essays of Richard M. Stallman. GNU Press.
- Williams, S. (2002). Free as in Freedom: Richard Stallman's Crusade for Free Software. O'Reilly Media.
- DiBona, C., Ockman, S., & Stone, M. (Eds.). (1999). Open Sources: Voices from the Open Source Revolution. O'Reilly Media.
- GNU Operating System — официальный сайт проекта GNU (gnu.org).
- Free Software Foundation — официальный сайт FSF (fsf.org).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →