Почему Linux не считается официальным ядром GNU?

128

Хотя я довольно давно знал о существовании Hurd и его миссии в качестве официального ядра операционной системы GNU, мне было интересно, почему Linux годами не воспринимается как официальное ядро ​​GNU, поскольку он находится в гораздо лучшем состоянии. чем херд?

Linux более или менее служит этой роли более 20 лет, однако можно видеть, что проект GNU отстает, когда дело доходит до Linux. Почему это происходит? Это из-за мечты, что Херд (в какой-то момент в будущем) будет на уровне качества производства? Это потому, что проект GNU не видит своей миссии отраженной так сильно, как он хочет в Linux? Это по другим политическим причинам?

NlightNFotis
источник
20
Вид «нелегального» вопроса здесь, но интересный. Если немного повезет, он защищен от «исторического значения»,
получая
2
@HaukeLaging Спасибо, приятель. Я тоже чувствую, что это хороший вопрос, и может дать интересные ответы, и я не могу понять, почему кто-то проголосовал бы близко. Я уверен, что это то, что многие люди хотели бы знать.
NlightNFotis
1
О, это просто: кто-то должен был бы просто указать на FAQ и выкрикнуть «не по теме» И «слишком широкий» ...
Hauke ​​Laging
5
@HaukeLaging Вы настолько правдивы, и мне бы хотелось, чтобы люди были более прагматичными и могли признать вопрос с какой-то ценностью вместо того, чтобы просто указывать на FAQ и выкрикивать. В SO можно легко увидеть, что самые интересные вопросы закрываются, только
удивляясь
4
Я только что перечитал FAQ. ИМХО это по теме здесь. Хотя это мета-вопрос, но этот вопрос сам по себе относится к Linux / Unix и довольно ясен.
Нильс

Ответы:

151

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

В настоящее время ядро ​​Linux, вероятно, не соответствует этим ограничениям, и для Линуса Торвальдса, kernel.org и др., Ничего нет. получить выгоду от размещения под зонтиком GNU и многое потерять - вышеупомянутое обязывающее соглашение и общественное мнение о том, что ядро ​​теперь является проектом GNU, что окажет в основном негативное влияние. GNU материнская организация, Фонд свободного программного обеспечения (FSF), является политической организацией и Торвальдс сделал различные общественные критические замечания него и несколько спорного, иконоборческая лидер времени жизни / основатель GNU и FSF, Ричард М. Столлман.

Кроме того, ядро ​​Linux не требует пользовательского пространства GNU больше, чем пользовательское пространство GNU требует ядра Linux. Эта независимость должна считаться хорошей вещью по основным принципам разработки программного обеспечения, которые способствуют модульности и более слабой связи, а не наоборот (монолитные вещи с сильной связью).

Еще один аргумент против этой идеи заключается в том, что, хотя HURD может не представлять интереса для такого количества людей, как Linux, разработчики и пользователи HURD могут возражать против того, чтобы их проект был эффективно засорен в конкурсе популярности. И хорошо для них; «конкуренция» такого рода является положительной вещью, в то время как кланение монополизации - нет, в результате вы получаете массивные сущности, которые частично подавляют творчество, потому что они подвержены монолитному / мегоманиакальному контролю. Linux Foundation уже является независимой организацией, и она может так и остаться.

лютик золотистый
источник
13
Спасибо за фантастический ответ. +1 от меня и 2 примечания: 1) Не поймите меня неправильно: у меня высокое мнение о Херд. Я сам разработчик Hurd. Однако (я верю в это) нельзя утверждать, что Linux - лучшее состояние. 2) Я понимаю, почему Linux не хочет быть связанным с GNU, но из того, что я вижу, проект GNU демонстрирует наибольшие возражения против этого. Не могли бы вы уточнить это?
NlightNFotis
14
@NlightNFotis: Вы уверены, что это в основном возражение GNU? Просто читайте это: torvalds-family.blogspot.ca/2008/11/black-and-white.html . Мне кажется, что все участники намного счастливее без формальных отношений.
Златовласка
Спасибо за это сообщение в блоге. Теперь это имеет больше смысла. Я буду держать вопрос открытым в течение некоторого времени, чтобы увидеть, разработают ли люди более фантастические ответы, а если нет, то ваш будет выбран в качестве «ответа» на этот вопрос. Еще одна последняя «петиция». Не могли бы вы, перефразируя, если можно так сказать, «вы, возможно, не имеете высокого мнения о HURD», потому что это заставляет меня чувствовать себя немного неловко и заставляет меня плохо себя чувствовать.
NlightNFotis
4
Мне действительно нравятся идеи, стоящие за Херд. Что мне только что пришло в голову: текущая тенденция к виртуализации могла бы помочь Херду увидеть хотя бы часть реального мира. Вам не нужна полная ОС, чтобы кто-то ее использовал. Если у вас есть несколько приложений, которые имеют явные преимущества от запуска под Hurd, то вы можете просто поместить их в виртуальную машину Hurd. Похоже на chrooting, lxc или что-то еще.
Хауке Лагинг
2
@NlightNFotis перефразировал :)
Златовласка
77

В сети много документации и обсуждений.

Короткий ответ, что существуют глубокие идеологические различия между проектом GNU и проектами ядра Linux, что мешает возможному объединению.

В центре внимания FSF, организации, стоящей за проектом GNU, находится идеологическая чистота в отношении идеи свободного программного обеспечения. Это во многом основано на взглядах основателя FSF / GNU Ричарда Столлмана. Кроме того, как отметил Златовласка, ФФС в настоящее время в основном является политической организацией по защите интересов. В течение долгого времени FSF не вкладывал значительные средства в проект GNU, хотя они предоставляют инфраструктуру поддержки.

Проект ядра Linux имеет гораздо более прагматичную позицию в отношении свободы программного обеспечения, опять же в значительной степени вытекающую из его основателя Линуса Торвальдса. Проект ядра Linux - это, прежде всего, проект свободного программного обеспечения, состоящий из разработчиков программного обеспечения, специализирующихся на разработке ядра / ОС, и ни в коей мере не является политической организацией защиты.

В качестве конкретных примеров того, как эти идеологии разыгрываются на практике, рассмотрим

1) Что Столлман считает неприемлемым тот факт, что проект Debian «рекламирует» несвободное программное обеспечение, поддерживая несвободную часть своего программного архива. Это иронично, поскольку проект Debian сфокусирован на свободе программного обеспечения, которая очень похожа на FSF, но не настолько идеологически жесткая.

2) Что ядро ​​Linux позволяет использовать (не бесплатные) двоичные модули ядра с ядром. Хотя разработчики ядра не испытывают энтузиазма по этому поводу, они терпят это, но трудно представить себе, что FSF делает это.

Стоит также отметить, что попытка Столлмана назвать операционные системы, основанные на ядре Linux, как GNU / Linux, вероятно, не улучшила отношения между FSF и сообществом ядра Linux, хотя у меня нет конкретных данных по этому поводу.

Помимо всего прочего, как упоминает златовласка, у FSF есть различные правила, которым должен соответствовать проект GNU. Это включает передачу авторских прав на весь код в ФФС. Все это само по себе может нарушить условия сделки, поскольку Линус Торвальдс никогда не требовал такой передачи авторских прав. Поэтому, если бы ядро ​​Linux стало частью проекта GNU, все существенные вклады в ядро ​​Linux должны были бы быть переданы их авторскому праву в FSF. Учитывая возраст и размер проекта, а также количество участников, это в принципе невозможно. Гораздо меньшие и младшие проекты (например, Mercurial) нашли лицензирование программного обеспечения сложной задачей.

Обратите внимание, что этот ответ никоим образом не предназначен для критики со стороны разработчиков FSF или ядра Linux. Обе стороны имеют свои собственные действительные точки зрения. Однако реальность ситуации такова, что они в какой-то степени несовместимы.

Фахим Митха
источник
4
+1 Мне нравится этот ответ. Достоверная информация по этому вопросу. Я ценю ваш вклад.
NlightNFotis
1
Стоит отметить, что во многих странах Европы «передача авторских прав» юридически невозможна. Существуют и другие возможности (соглашение об участии), но передача авторских прав может быть юридически невозможна - не только технически.
Мачей Печотка
1
@FaheemMitha, не по определению GNU, потому что двоичные двоичные объекты, безусловно, являются частью ядра; они распространяются в исходном коде ядра, встроены в двоичные файлы ядра и необходимы для их работы.
psusi
8
Ааа, проприетарные драйверы - это еще одна вещь, против которой возражает GNU. Это было одной из причин GPLv3; запретить проприетарные модули связываться со свободным кодом даже во время выполнения, и почему Linux предпочел остаться с GPLv2.
psusi
1
@vonbrand, согласны ли вы с этим или нет, не имеет значения; это позиция FSF, и поэтому Linux никогда не может быть проектом GNU.
psusi
35

Я цитирую комментарий по Ричард Столлман , по поводу решения о развертывании с Hurd , а не Linux.

Люди иногда спрашивают: «Почему ФСФ разработал новое бесплатное ядро ​​вместо использования Linux?» «Это разумный вопрос. Вкратце, ответ заключается в том, что это не тот вопрос, с которым мы столкнулись.

Когда мы начали разработку Hurd в 1990 году, перед нами встал вопрос: «Как мы можем получить бесплатное ядро ​​для системы GNU?». Тогда не было никакого свободного Unix-подобного ядра, и мы не знали ни о каком другом плане написания. один. Единственный способ получить бесплатное ядро ​​- написать его самостоятельно. Итак, мы начали.

Мы слышали о Linux после его выпуска. В то время перед нами стоял вопрос: «Должны ли мы отменить проект Hurd и вместо этого использовать Linux?»

Мы слышали, что Linux совсем не переносим (сегодня это может быть не так, но тогда мы это слышали). И мы слышали, что Linux архитектурно находится на одном уровне с ядром Unix; наша работа привела к чему-то гораздо более мощному.

Учитывая годы работы, которые мы уже вложили в Херд, мы решили закончить его, а не выбрасывать.

Если бы мы столкнулись с вопросом, который задают люди - если бы Linux уже был доступен, и мы думали, стоит ли начинать писать другое ядро ​​- мы бы этого не сделали. Вместо этого мы бы выбрали другой проект, который мог бы выполнять работу, которую не может сделать ни одно существующее свободное программное обеспечение.

Но тогда мы начали Херд, и теперь мы заставили его работать. Мы надеемся, что его превосходная архитектура сделает бесплатные операционные системы более мощными.

NlightNFotis
источник
7
Несмотря на фантастические ответы, уже предоставленные на вопрос, я выберу этот ответ как канонический на вопрос, потому что он демонстрирует обоснование выбора придерживаться Херда, прямо от создателя проекта GNU, Ричарда Столлмана.
NlightNFotis
9
Обратите внимание: «сегодня это может быть не так» - мнение RMS о Linux, похоже, основано на слухах, а не на знаниях.
Мартин Шредер,
19
@Martin: (Поздний ответ, но :) Когда Торвальдс впервые объявил о Linux, он был ориентирован на x86, и не планировал делать его переносимым. В начальной теме Линус прямо сказал: «Я бы сказал, что портирование невозможно». Таким образом, у rms изначально не было оснований полагать, что Linux вырастет в то, что имеет сегодня. Доказательства из уст руководителя проекта вряд ли являются слухами.
Кевин Кэткарт
@KevinCathcart: RMS / FSF следовало бы самостоятельно изучить код, а не полагаться на других («мы слышали»).
Мартин Шредер
21
@ MartinSchröder: Зачем изучать код, когда руководитель проекта прямо сказал, что он не будет переносимым? Как бы то ни было, Linux был анонсирован в 1991 году. До апреля 1994 года (выпуск 1.1.45) потребовалось до того, как Linux даже добавил папки для портов архитектуры. Это займет больше времени, прежде чем любые порты будут практичными. Если бы ФФС принял решение продолжить Херд в 1992 или 1993 году, рассмотрение кода только подтвердило бы, что код не переносим.
Кевин Кэткарт
4

Я просто добавляю свои 2 цента здесь, я думаю, что то, что обсуждалось в этом пункте, имеет большой смысл, но есть один важный аспект, который, я думаю, может действительно поляризовать фундамент GNU, и это факт, что Linux становится все более и более больше места, где крупные корпорации вкладывают реальные деньги и время, идея о том, что linux - это своего рода самодельный проект, это не правда, даже немного, может быть, есть какой-то случайный парень, пытающийся привлечь внимание на сцене, давая патч, но по большей части Linux это работа для корпораций.

user2384250
источник
1
Я не думаю, что у FSF есть проблема с корпоративной поддержкой программных проектов. Их основное внимание уделяется принципам свободного программного обеспечения.
Фахим Митха
Корпоративное доминирование было серьезной проблемой, на решение которой была рассчитана GNU GPL. Лицензионное программное обеспечение было обычной процедурой в Массачусетском технологическом институте и в Беркли, но как только код был коммерциализирован, его быстро закрыли. Так, например, я мог бы проверить исходный код Linux сегодня, и все коммерчески разработанные улучшения пойдут на пользу моему потенциальному проекту. Или мой следующий небольшой личный проект может использовать всего пару блоков, суть в том, что любые выпущенные улучшения принесут пользу тому, кто будет работать с кодом дальше.
Дж. М. Беккер
1

Другое объяснение, найденное в FAQ сайта gnu.org :

Заставить GNU Hurd работать достаточно хорошо, чтобы конкурировать с Linux, было бы большой работой, и это явно не нужно. Единственное, что этически не так в Linux как ядре - это включение в него «блобов» прошивки; Лучшее решение этой проблемы - разработка бесплатной замены для блобов .

Кварк
источник
-6

Linux не может быть Unix, поскольку Linux не соответствует Posix .

Так что даже без политических хлопот Linux не может достичь цели дизайна для Херда.

Цитировать : «Hurd - это замена проекта GNU для UNIX, популярного ядра операционной системы».

Удивительно, что есть Debian / Hurd-Projekt . Но это, возможно, другая история ...

Кстати: Windows (начиная с NT / XP) также основана на ядре MACH.

Nils
источник
8
Если вы собираетесь утверждать, что Linux не является POSIX-совместимым, вам придется немного подкрепить это. В том числе там, где FSF говорит, что им требуется абсолютно 100% POSIX-совместимое ядро. Кстати, Unix - это не POSIX. Unix (торговая марка) - это особая проприетарная ОС, поэтому само собой разумеется, что никакая другая ОС не может быть такой ОС.
psusi
6
Цитата для ядра Windows на основе MACH? Википедия говорит, что у них несколько вариантов дизайна; но MACH является прототипом микроядра, в то время как большинство служб ОС Windows работают в ядре, а не в пользовательской среде. Единственный основной компонент OSS в ядре Windows, о котором я знаю, был сетевой стек, который раньше основывался на реализации BSD; однако он был разорван и заменен на тот, который лучше взаимодействовал с остальным дизайном операционной системы несколько версий назад (IIRC в XP или 2k).
Дэн Нили,
14
Но GNU - это не Unix.
Симон
6
@Nils, вопрос , который вы связаны противоречит вашей позиции, а не поддерживает его.
psusi
8
@ Нильс, чушь Маха - еще одно популярное заблуждение. NT абсолютно не похож на mach. Его «серверы подсистем» ничем не отличаются от демонов unix, которые не создают микроядро. Первоначально графический интерфейс был реализован в пользовательском режиме, и это имело лишь мимолетное сходство с системой микроядра (хотя и Xwindows, которая не делает Linux микроядром), но это было пересмотрено в NT4 и перенесено в ядро.
psusi