Чому Linux не сприйнятий як офіційне ядро ​​GNU?


128

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

Linux до цього часу, більш-менш, виконував цю роль 20+ років, проте можна помітити, що проект GNU тримає свою відстань, коли мова йде про Linux. Чому це відбувається? Це через сон, що Hurd (в якийсь момент в майбутньому) буде на рівні якості виробництва? Це тому, що проект GNU не бачить своєї місії відображеною настільки, наскільки хоче в Linux? Це з інших політичних причин?


20
Вигляд "незаконного" питання тут, але цікавий. Трохи пощастивши, він захищається на "історичну значимість", даючи достатньо блискучі відповіді ... ;-)
Хоуке Лагінг

2
@HaukeLaging Thanx mate. Я теж відчуваю, що це гарне запитання, і я можу дати цікаві відповіді, і не можу реально зрозуміти, чому хтось подає ретельний голос. Я впевнений, що це хотілося б знати багатьом людям.
NlightNFotis

1
О, це просто: хтось просто повинен вказати на
найчастіші

5
@HaukeLaging Ви настільки правдиві, і я хотів би, щоб люди були більш прагматичними і могли розпізнати питання з певним значенням, а не просто вказувати на FAQ та кричати. У SO так легко можна побачити, що найцікавіші запитання закриваються, лише дивуватися ...
NlightNFotis

4
Я просто DID перечитав FAQ. ІМХО це на тему тут. Хоча це мета-питання, але питання саме по собі стосується Linux / Unix і є досить зрозумілим.
Нілс

Відповіді:


151

GNU не сприймає щось як проект, якщо розробники не погоджуються з певними умовами, які пов'язують усі офіційні проекти GNU.

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

Крім того, ядро ​​Linux не вимагає простору користувачів GNU більше, ніж для простору користувачів GNU потрібне ядро ​​Linux. Цю незалежність слід вважати хорошою основними принципами інженерії програмного забезпечення, які надають перевагу модульності та більш слабкому з’єднанню на відміну від протилежного (монолітні речі з щільним з'єднанням).

Ще один момент проти цієї ідеї полягає в тому, що, хоча HURD може не зацікавити стільки людей, як Linux, розробники та користувачі HURD можуть заперечити проти того, щоб їхній проект був ефективно забруднений на конкурсі популярності. І добре їм; "конкуренція" подібного роду є позитивною справою, тоді як поклонітися монополізації - ні, ви закінчуєтесь масовими утвореннями, які частково стримують творчість, оскільки вони схильні до монолітного / мегломанського контролю. Linux Foundation вже є незалежною організацією, він також може залишатися таким.


13
Дякую за фантастичну відповідь. +1 від мене, і 2 зауваження: 1) Не зрозумійте мене неправильно: Я маю високу думку про Херда. Я сам розробник неприємностей. Однак (я вважаю, що) не можна сперечатися, що Linux - кращий стан. 2) Я бачу, чому Linux не хотів би поєднуватися з GNU, але з того, що я бачу, саме проект GNU демонструє найбільші заперечення проти цього. Не могли б ви детальніше зупинитися на цьому?
NlightNFotis

14
@NlightNFotis: Ви впевнені, що це переважно заперечення GNU? Просто читаючи це: torvalds-family.blogspot.ca/2008/11/black-and-white.html . Мені здається, всі учасники набагато щасливіші без формальних стосунків.
goldilocks

Дякуємо за цю публікацію в блозі. Зараз це має більше сенсу. Я буду тримати питання відкритим ще деякий час, щоб побачити, чи люди досконаліші відповіді, а якщо ні, то ваш буде обраний як "відповідь" на це питання. Ще одна остання "петиція". Ви не заперечуєте, перефразовуючи, якщо я можу сказати, "ви, можливо, не маєте високої думки про ХУРДУ", тому що це змушує мене відчувати себе неприємно і змушує себе почувати себе погано.
NlightNFotis

4
Мені дуже подобаються ідеї Hurd. Що мені щойно прийшло в голову: Постійна тенденція до віртуалізації може стати великою допомогою Hurd побачити хоча б частину реального світу. Вам не потрібна повна ОС, щоб хтось її використовував. Якщо у вас є кілька додатків, які мають явні переваги від запуску під Hurd, ви можете просто помістити їх у Hurd VM. Схожий на chrooting, lxc або інше.
Hauke ​​Laging

2
@NlightNFotis перефразував :)
goldilocks

77

З цього питання в мережі багато документації та дискусій.

Коротка відповідь, що між проектом GNU та проектами ядра Linux існують глибокі ідеологічні відмінності, що перешкоджає можливій уніфікації.

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

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

Розглянемо як конкретні приклади того, як ці ідеології грають на практиці

1) Цей Столман вважає неприйнятним той факт, що проект Debian "рекламує" невільне програмне забезпечення, підтримуючи невільну частину свого архіву програмного забезпечення. Це іронічно, оскільки проект Debian зосереджує увагу на свободі програмного забезпечення, яка є досить схожою на FSF, хоча не настільки ідеологічно жорсткою.

2) що ядро ​​Linux дозволяє (невільно) двійкові модулі ядра використовувати з ядром. Хоча розробники ядра не в захваті від цього, вони все це терплять, але важко уявити, як це роблять FSF.

Варто також зазначити, що спроба Сталлмана назвати операційні системи на основі ядра Linux як GNU / Linux, ймовірно, не покращила відносин між FSF та спільнотою ядра Linux, хоча я не маю конкретних даних про це.

Окрім усього іншого, як згадує золотоногих, у ФФС є різні правила, яким повинен відповідати проект GNU. Сюди входить присвоєння авторського права всього коду FSF. Це все само по собі було б розривом угоди, оскільки Лінус Торвальдс ніколи не вимагав такого присвоєння авторських прав. Отже, якби ядро ​​Linux було б частиною проекту GNU, усі суттєві внески до ядра Linux мали б мати їх авторські права присвоєні FSF. Зважаючи на вік та розмір проекту та кількість учасників, це в принципі неможливо. Набагато менші та молодші проекти (наприклад, Mercurial) знайшли програмне забезпечення, що перетворює складні завдання.

Зауважте, що ця відповідь жодним чином не розглядається як критика або FSF, або розробників Linux ядра. Обидві сторони мають свої дійсні точки зору. Однак реальність ситуації полягає в тому, що вони певною мірою є несумісними точками зору.


4
+1 Мені подобається ця відповідь. Суцільна інформація з цього питання. Я ціную ваш внесок.
NlightNFotis

1
Варто зазначити, що в багатьох країнах Європи "присвоєння авторських прав" не є юридично можливим. Існують й інші можливості (угода про дописувачів), але присвоєння авторських прав може бути юридично неможливим - не лише технічно.
Maciej Piechotka

1
@FaheemMitha, не за визначенням GNU, тому що бінарні краплі, безумовно, є частиною ядра; вони розподіляються у вихідному коді ядра та вбудовуються у бінарні файли ядра та вимагають для їх функціонування.
psusi

8
Ах, власні драйвери - це ще одна річ, проти якої GNU заперечує. Це було однією з причин GPLv3; щоб заборонити власні модулі не прив'язуватися до безкоштовного коду, навіть під час виконання, і чому Linux вирішив залишитися з GPLv2.
psusi

1
@vonbrand, чи ви згодні з цим чи ні, не має значення; це позиція FSF, і через це Linux ніколи не може бути проектом GNU.
psusi

35

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

Люди іноді запитують: `` Чому FSF розробив нове безкоштовне ядро ​​замість Linux? '' Це розумне питання. Коротко кажучи, відповідь - це не те питання, з яким ми стикалися.

Коли ми почали розробляти Hurd в 1990 році, перед нами постало питання: `Як ми можемо отримати безкоштовне ядро ​​для системи GNU? '' Тоді не було вільного ядра, схожого на Unix, і ми не знали іншого плану писати один. Єдиний спосіб, коли ми могли сподіватися на отримання безкоштовного ядра, - це написати його самостійно. Так ми і почали.

Ми чули про Linux після його виходу. Тоді перед нами стояло питання: `Чи слід скасувати проект Hurd і використовувати натомість Linux? ''

Ми чули, що Linux зовсім не є портативним (це може бути неправдою сьогодні, але це ми почули тоді). І ми чули, що Linux був архітектурно нарівні з ядром Unix; наша робота вела до чогось набагато потужнішого.

Враховуючи роки роботи, які ми вже вклали в Хард, ми вирішили закінчити це, а не викидати їх.

Якби ми стикалися з питанням, яке задають люди --- якщо Linux вже був доступний, і ми розглядали, чи почати писати інше ядро ​​---, ми б цього не зробили. Замість цього ми вибрали б інший проект, який би виконував роботу, яку не може зробити жодне вільне програмне забезпечення.

Але ми все-таки запустили Хард, і тоді ми зробили це. Ми сподіваємось, що його покращена архітектура зробить безкоштовні операційні системи більш потужними.


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 навіть додав папки для портів архітектури. Минуло б більше часу, перш ніж будь-які порти будуть практичними. Якби FSF прийняв своє рішення продовжити Hurd у 1992 або 1993 роках, дивлячись на код, було б лише підкріплено, що код не переноситься.
Кевін Кеткарт

4

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


1
Я не думаю, що у ФФС є проблеми з корпоративною підтримкою програмних проектів. Їх головна увага приділяється принципам вільного програмного забезпечення.
Faheem Mitha

Корпоративне домінування викликало велике занепокоєння, з яким GNU GPL мав на меті вирішити питання. Дозвільно ліцензоване програмне забезпечення насправді було звичайною процедурою як для MIT, так і для Берклі, але після комерційного кодування його було негайно закрито. Так, наприклад, я можу сьогодні перевірити джерело Linux, і всі комерційно розроблені удосконалення принесуть користь моєму потенційному проекту. Або мій наступний невеликий особистий проект може використовувати лише пару блоків, справа в тому, що будь-які випущені вдосконалення приносять користь тому, хто працює з кодом далі.
Дж. М. Бекер

1

Ще одне пояснення, знайдене в FAQ на gnu.org :

Зробити роботу GNU Hurd достатньо добре для конкуренції з Linux було б великою роботою, і це однозначно не потрібно. Єдине, що етично неправильно з Linux як ядром, - це включення мікропрограмного забезпечення «краплі»; найкраще вирішення цієї проблеми - розробка безкоштовної заміни краплі .


-6

Linux не може бути Unix, оскільки Linux не відповідає Posix .

Тож навіть без політичних клопотів Linux не може досягти мети дизайну Hurd.

Цитуйте : "Hurd - це заміна проекту GNU на UNIX, популярне ядро ​​операційної системи."

Дивно, що існує Debian / Hurd-Projekt . Але це, можливо, інша історія ...

BTW: Windows (оскільки NT / XP) також базується на ядрі MACH.


8
Якщо ви збираєтеся стверджувати, що Linux не відповідає POSIX, вам доведеться трохи створити резервну копію. У тому числі, де FSF говорить, що їм потрібне абсолютно 100% сумісне POSIX ядро. До речі, Unix - це не POSIX. Unix (торгова марка) є специфічною власною ОС, тому безперечно, жодна інша ОС не може бути цією ОС.
psusi

6
Цитування для ядра Windows засноване на MACH? Вікіпедія каже, що вони поділяють певний вибір дизайну; але MACH є прототипним мікроядром, тоді як більшість служб ОС Windows працює в ядрі, а не в країні користувача. Єдиний головний компонент OSS в ядрі Windows, про який я знаю, - це мережевий стек, який раніше базувався на реалізації BSD; однак він був вирваний і замінений на той, який краще поєднується з рештою дизайну OS кілька версій тому (IIRC в XP або 2k).
Ден Нелі

14
Але GNU також не Unix.
Саймон

6
@Nils, питання, яке ви пов’язали, суперечить вашій позиції, а не підтримує її.
psusi

8
@Nils, дурниця Маха - ще одна популярна помилка. NT не має нічого спільного з Mach. Його "підсистеми-сервери" нічим не відрізняються від демонів Unix, які не роблять мікроядер. Спочатку gui реалізовувався в користувальницькому режимі, і це мало лише схожість з системою мікроядер (хоча так і Xwindows, що не робить Linux мікроядром), але це було перероблено в NT4 і переміщено до ядра.
psusi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.