Спор об именовании GNU/Linux — это спор о том, следует ли называть компьютерные операционные системы , использующие программное обеспечение GNU и ядро Linux , системами «GNU/Linux» или «Linux». [1]
Сторонники термина Linux утверждают, что он гораздо чаще используется общественностью и средствами массовой информации [2] [3] и что он служит общим термином для систем, которые объединяют это ядро с программным обеспечением из множества других источников, [4] в то время как сторонники термина GNU/Linux отмечают, что само по себе название GNU было бы столь же хорошим названием для вариантов GNU , которые объединяют программное обеспечение операционной системы GNU с программным обеспечением из других источников. [5]
Термин GNU/Linux продвигается Фондом свободного программного обеспечения (FSF) и его основателем Ричардом Столлманом . [6] Они аргументируют это тем, что проект GNU был основным источником не только многих компонентов операционной системы, используемых в последующей разработке современных систем «Linux», но и связанной с ними философии свободного программного обеспечения . [1] [7] Несколько дистрибутивов операционных систем, содержащих ядро Linux , используют название, которое предпочитает FSF, например, Debian , [8] Trisquel [9] и Parabola GNU/Linux-libre . [10] Другие утверждают, что GNU/Linux — это полезное название, чтобы провести различие между ними и дистрибутивами Linux, такими как Android и Alpine Linux .
В 1983 году Ричард Столлман , основатель Free Software Foundation , изложил планы создания полноценной Unix-подобной операционной системы , названной GNU , полностью состоящей из свободного программного обеспечения . В сентябре того же года Столлман опубликовал манифест в журнале Dr. Dobb's Journal, в котором подробно описал свой новый проект и изложил свое видение свободного программного обеспечения . [11] [12] Работа по разработке программного обеспечения началась в январе 1984 года. К 1991 году части операционной системы GNU среднего уровня были почти завершены, а верхний уровень мог быть предоставлен X Window System , но нижний уровень ( ядро , драйверы устройств, системные утилиты и демоны ) все еще в основном отсутствовал.
Ядро, официально разработанное GNU, называлось GNU Hurd . Hurd следовало амбициозному дизайну микроядра , который оказалось неожиданно трудно реализовать на раннем этапе. Однако в 1991 году Линус Торвальдс независимо выпустил первую версию ядра Linux. Ранние разработчики Linux портировали код GNU, включая компилятор GNU C , для работы с Linux, в то время как сообщество свободного программного обеспечения приняло использование ядра Linux в качестве отсутствующего ядра для операционной системы GNU. Эта работа заполнила оставшиеся пробелы в предоставлении полностью свободной операционной системы. [7]
В течение следующих нескольких лет возникло несколько предложений по наименованию операционных систем с использованием ядра Linux и компонентов GNU. В 1992 году дистрибутив Yggdrasil Linux принял название "Linux/GNU/ X ". В обсуждениях Usenet и почтовых рассылок можно найти использование "GNU/Linux" еще в 1992 году, [13] а "GNU+Linux" еще в 1993 году. [14] Проект Debian , который одно время спонсировался Free Software Foundation , перешел на название своего продукта "Debian GNU/Linux" в начале 1994 года. [3] [15] [16] [17] Это изменение последовало за просьбой Ричарда Столлмана (который изначально предложил "LiGNUx", но вместо этого предложил "GNU/Linux" после того, как услышал жалобы на неловкость прежнего термина). [18] В бюллетене GNU за июнь 1994 года «Linux» описывался как «свободная система Unix для машин 386 » (со «многими утилитами и библиотеками» из GNU), [19] но в бюллетене за январь 1995 года вместо этого использовался термин «GNU/Linux». [20]
Попытки Столлмана и FSF включить «GNU» в название начались около 1994 года, но, как сообщается, в основном осуществлялись через личные сообщения (такие как вышеупомянутый запрос к Debian) до 1996 года. [21] [22] В мае 1996 года Столлман выпустил Emacs 19.31 с системной целью Autoconf «linux», измененной на «lignux» (вскоре после этого измененной на «linux-gnu» в emacs 19.32), [23] [7] и включил эссе «Linux и система GNU» [24], предлагая людям использовать термины «система GNU на основе Linux» (или «система GNU/Linux» или «Lignux» для краткости). Позже он использовал исключительно «GNU/Linux», и эссе было заменено эссе Столлмана 1997 года «Linux и система GNU». [6]
Современные свободные и открытые операционные системы состоят из программного обеспечения многих разных авторов, включая разработчиков ядра Linux, проект GNU и других поставщиков, таких как те, кто стоит за X Window System . Настольные и серверные дистрибутивы используют программное обеспечение GNU, такое как GNU C Library (glibc), GNU Core Utilities (coreutils), GNU Compiler Collection , GNU Binutils , GNU gzip , GNU tar , GNU gettext , GNU grep , GNU awk , GNU sed , GNU Findutils , gnupg , libgcrypt , gnutls , GRUB , GNU readline , GNU ncurses и оболочка Bash .
В анализе исходного кода Red Hat Linux 7.1, типичного дистрибутива Linux , проведенном в 2002 году , было обнаружено, что общий размер пакетов из проекта GNU намного больше ядра Linux. [25] Позднее, в 2011 году, анализ основного репозитория релиза «Natty» дистрибутива Ubuntu показал, что от 8% до 13% его состояло из компонентов GNU (диапазон зависит от того, считается ли GNOME частью GNU), в то время как только 6% занимает ядро Linux (9%, если включить его прямые зависимости). [26] Определение того, что именно представляет собой «операционная система» как таковая, является предметом продолжающихся дебатов. [1]
С другой стороны, некоторые встроенные системы , такие как карманные устройства и смартфоны (например, Android от Google ), домашние шлюзы (маршрутизаторы) и устройства Voice over IP , спроектированы с учетом экономии пространства и используют ядро Linux с небольшим количеством или без компонентов GNU из-за предполагаемых проблем, связанных с раздуванием и снижением производительности. [27] Система, работающая под управлением μClinux , скорее всего, заменит glibc на uClibc , а coreutils — на BusyBox . Операционная система Android на базе Linux от Google не использует никаких компонентов или библиотек GNU, используя собственную библиотеку Bionic C на основе BSD вместо glibc. FSF соглашается, что «GNU/Linux» — неподходящее название для этих систем. [28] [29] [30]
Существуют также системы, которые используют пользовательское пространство GNU и/или библиотеку C поверх ядра, отличного от Linux, например , Debian GNU/Hurd (пользовательское пространство GNU на ядре GNU) [31] или Debian GNU/kFreeBSD (который использует GNU coreutils и библиотеку C с ядром из FreeBSD ). [32]
FSF оправдывает название «GNU/Linux» в первую очередь тем, что проект GNU был направлен на разработку полноценной системы, в которой, по их мнению, ядро Linux заполнило один из последних пробелов; [33] большое количество компонентов GNU и исходного кода GNU , используемых в таких системах, является второстепенным аргументом:
Итак, если бы вы собирались выбрать название для системы на основе того, кто написал программы в системе, наиболее подходящим выбором было бы GNU . Но мы не думаем, что это правильный способ рассмотрения вопроса. Проект GNU не был и не является проектом по разработке определенных пакетов программного обеспечения. [...] Многие люди внесли значительный вклад в свободное программное обеспечение в системе, и все они заслуживают признания. Но причина, по которой это интегрированная система — а не просто набор полезных программ — заключается в том, что проект GNU намеревался сделать ее таковой. Мы составили список программ, необходимых для создания полной свободной системы, и мы систематически писали или находили людей, которые писали, все в списке.
— Ричард Столлман [33]
Другие аргументы включают то, что название «GNU/Linux» признает роль, которую движение свободного программного обеспечения сыграло в создании современных сообществ свободного и открытого программного обеспечения , [28] что проект GNU сыграл большую роль в разработке пакетов и программного обеспечения для GNU/Linux или дистрибутивов Linux , [6] [7] и что использование слова «Linux» для обозначения ядра Linux, операционной системы и целых дистрибутивов программного обеспечения приводит к путанице в различиях между ними. Из-за этой путаницы юридические угрозы и кампании по связям с общественностью , очевидно, направленные против ядра, такие как те, которые были запущены SCO Group или Alexis de Tocqueville Institution (AdTI), были неверно истолкованы многими комментаторами, которые предполагают, что целью является вся операционная система. SCO и AdTI даже обвинялись в преднамеренной эксплуатации этой путаницы. [34] [35] [36]
Что касается предположений о том, что попытки переименования проистекают из эгоизма или личной обиды, Столлман ответил, что его интерес заключается не в том, чтобы воздать должное себе, а проекту GNU: «Некоторые люди думают, что это потому, что я хочу потешить свое эго. Конечно, я не прошу вас называть его „Stallmanix“». [37] В ответ на другое распространенное предположение о том, что многие люди внесли свой вклад в систему и что короткое название не может отдать должное всем им, FSF утверждает, что это не может оправдать название системы «Linux», поскольку они считают, что вклад проекта GNU в конечном итоге был больше, чем вклад ядра Linux в эти связанные системы. [7] [26]
В 2010 году Столлман заявил, что наименование — это не просто вопрос равного упоминания проекта GNU, заявив, что поскольку система более широко известна как «Linux», люди склонны «думать, что это все Linux, что все это было начато мистером Торвальдсом в 1991 году, и они думают, что все это исходит из его видения жизни, и это действительно большая проблема». [38]
Ариадна Конилл , разработчик и председатель по безопасности Alpine Linux , заявила, что, по ее мнению, GNU/Linux — это правильное название для дистрибутивов Linux, основанных на glibc и GNU coreutils , таких как Debian и Fedora Linux . Это можно сравнить с другими дистрибутивами Linux, основанными на bionic ( Android ) и musl (Alpine). [39]
Сторонники наименования операционных систем «Linux» утверждают, что «Linux» используется гораздо чаще, чем «GNU/Linux». [2] [3]
Эрик С. Рэймонд пишет (в разделе «Linux» в « Файле жаргона » ):
Некоторые возражают, что название "Linux" следует использовать только для обозначения ядра, а не всей операционной системы. Это утверждение является посредником для базового территориального спора; люди, которые настаивают на термине GNU/Linux, хотят, чтобы FSF получил большую часть заслуг за Linux, поскольку [Столлман] и его друзья написали многие из его инструментов пользовательского уровня. Ни эта теория, ни термин GNU/Linux не получили более чем одобрения меньшинства.
Когда в документальном фильме Revolution OS Линуса Торвальдса спросили, оправдано ли название «GNU/Linux», он ответил:
Ну, я думаю, это оправдано, но это оправдано, если вы действительно создадите дистрибутив GNU Linux... так же, как я думаю, что «Red Hat Linux» подойдет, или «SUSE Linux», или «Debian Linux», потому что если вы действительно создадите свой собственный дистрибутив Linux, вы сможете назвать его, но называть Linux в целом «GNU Linux», я думаю, просто смешно. [40] [41]
Более ранний комментарий Торвальдса по поводу спора о названии был следующим:
Эм, эта дискуссия затянулась, спасибо большое. Неважно, как люди называют Linux, главное, чтобы было признание заслуг (с обеих сторон). Лично я с удовольствием продолжу называть его "Linux", ...
Люди из GNU пытались назвать его GNU/Linux, и это нормально. Это название, конечно, не хуже, чем "Linux Pro" или "Red Hat Linux" или "Slackware Linux"...
Lignux — это просто каламбурное название. Я думаю, Linux/GNU или GNU/Linux звучит немного «профессиональнее»… [42]
Название «GNU/Linux», особенно в том варианте произношения, который предпочитает Столлман, подвергалось критике за его кажущуюся неуклюжесть и многословие, [43] [44] фактор, который Торвальдс назвал причиной краха таких операционных систем, как 386BSD . [45]
Linux Journal предположил, что поддержка Столлманом объединенного названия проистекает из разочарования тем, что «Линус получил славу за то, что [Столлман] хотел сделать». [46]
Другие предположили, что, независимо от заслуг, упорство Столлмана в том, что иногда кажется безнадежным делом, выставляет его и GNU в плохом свете. Например, Ларри МакВой (автор BitKeeper , когда-то использовавшийся для управления разработкой ядра Linux) высказал мнение, что «притязание на заслуги только заставляет выглядеть глупым и жадным». [47]
Многие пользователи и поставщики, предпочитающие название «Linux», такие как Джим Геттис , один из первоначальных разработчиков X Window System , указывают на включение не-GNU, не-ядерных инструментов, таких как KDE , LibreOffice и Firefox , в операционные системы для конечных пользователей на основе ядра Linux:
В этом автобусе много людей; я не слышу криков поддержки того, что GNU важнее многих других компонентов; нельзя убрать колесо и получить в итоге функционирующее транспортное средство, или двигатель, или сиденья. Я рекомендую вам радоваться тому, что у нас есть автобус. [48]
общность ядра — это то, что определяет принадлежность системы к семейству Linux; различные приложения OSS , которые могут взаимодействовать с общим ядром, — это то, что отличает дистрибутивы Linux .
Идея RMS (которую я слышал из первых рук) заключается в том, что системы Linux следует считать системами GNU с Linux в качестве ядра.
общий код проекта GNU намного больше размера ядра Linux. Таким образом, сравнивая общие вложенные усилия, безусловно, оправданно называть всю систему
GNU/Linux
, а не только
Linux
.
жалоба
SCO Caldera против IBM
расплывчата и запутанна в отношении того, касаются ли обвинения ядра Linux, операционной системы GNU/Linux, дистрибутивов Linux, приложений Linux или чего-либо еще.
SCO использовала "Linux" для обозначения "всего свободного программного обеспечения" или "всего свободного программного обеспечения, составляющего операционную систему типа UNIX". Эта путаница, о которой Фонд свободного программного обеспечения предупреждал в прошлом, здесь демонстрирует вводящие в заблуждение последствия, которые Фонд часто предсказывал
В частности, Столлман раскритиковал отчет [
Кен Браун
/AdTI] за использование распространенной путаницы между ядром Linux, которое, по словам Столлмана, «на самом деле написал Линус», и полной операционной системой GNU и связанным с ней программным обеспечением, которое может использоваться и обычно используется с ядром Linux.
Нет. Вот именно. Крутое имя, вот оно. Мы очень усердно работали над созданием имени, которое понравится большинству людей, и это, безусловно, окупилось: тысячи людей используют Linux только для того, чтобы сказать "OS/2? Ха. У меня Linux. Какое крутое имя". 386BSD совершили ошибку, включив в имя много цифр и странных сокращений, и отпугнули многих людей просто потому, что оно звучит слишком технично.
Возможно, RMS расстроен, потому что Линус получил славу за то, что RMS хотел сделать.