Dlaczego Linux nie jest oficjalnym jądrem GNU?

128

Chociaż od dłuższego czasu wiedziałem o istnieniu Hurda i jego misji jako oficjalnego jądra systemu operacyjnego GNU, zastanawiałem się, dlaczego Linux nie jest przez lata uznawany za oficjalne jądro GNU, ponieważ jest w znacznie lepszym stanie niż Hurd?

Linux służył tej roli mniej więcej od ponad 20 lat, jednak widać, że Projekt GNU trzyma dystans, jeśli chodzi o Linuksa. Dlaczego to się dzieje? Czy z powodu snu Hurd (w przyszłości) będzie na poziomie jakości produkcji? Czy dlatego, że projekt GNU nie widzi swojej misji tak bardzo, jak chce w Linuksie? Czy to z innych powodów politycznych?

NlightNFotis
źródło
20
Rodzaj „nielegalnego” pytania tutaj, ale interesujące. Przy odrobinie szczęścia jest chroniony przed „historycznym znaczeniem”, dając wystarczająco genialne odpowiedzi ... ;-)
Hauke ​​Laging
2
@HaukeLaging Thanx mate. Ja też uważam, że jest to dobre pytanie i może dać ciekawe odpowiedzi i nie mogę naprawdę zrozumieć, dlaczego ktoś oddałby bliski głos. Jestem pewien, że jest to coś, co wiele osób chciałoby wiedzieć.
NlightNFotis
1
Och, to proste: ktoś musiałby tylko wskazać na FAQ i wykrzyczeć „nie na temat” ORAZ „zbyt szeroki” ...
Hauke ​​Laging 28.04.13
5
@HaukeLaging Jesteś taki prawdziwy i chciałbym, aby ludzie byli bardziej pragmatyczni i mogli rozpoznać pytanie o pewnej wartości, zamiast tylko wskazywać FAQ i krzyczeć. W SO można łatwo zobaczyć, że najciekawsze pytania są zamykane, tylko po to, by się zastanawiać ...
NlightNFotis 28.04.2013
4
Właśnie przeczytałem ponownie FAQ. IMHO jest na ten temat tutaj. Chociaż jest to meta-pytanie, ale samo w sobie dotyczy Linuksa / Uniksa i jest dość jasne.
Nils

Odpowiedzi:

151

GNU nie przyjmie czegoś jako projektu, chyba że programiści zgodzą się na pewne postanowienia wiążące wszystkie oficjalne projekty GNU.

Obecnie jądro Linuksa prawdopodobnie nie pasuje do tych ograniczeń, a Linus Torvalds, kernel.org i in. czerpać zyski z umieszczenia się pod parasolem GNU i wiele do stracenia - wspomnianą wcześniej wiążącą umowę oraz opinię publiczną, że jądro jest teraz projektem GNU, co miałoby głównie negatywny wpływ. Organizacja macierzysta GNU, Free Software Foundation (FSF), jest organizacją polityczną, a Torvalds krytykował ją publicznie oraz nieco kontrowersyjny, ikonoklastyczny dożywotni lider / założyciel GNU i FSF, Richard M. Stallman.

Co więcej, jądro Linuksa nie wymaga przestrzeni użytkownika GNU bardziej niż przestrzeń użytkownika GNU wymaga jądra Linuksa. Ta niezależność powinna być uważana za dobrą przez podstawowe zasady inżynierii oprogramowania, które sprzyjają modułowości i luźniejszemu sprzężeniu w przeciwieństwie do przeciwieństwa (rzeczy monolityczne z ciasnym sprzężeniem).

Innym argumentem przeciwko tej idei jest to, że chociaż HURD może nie być tak interesujący dla tylu osób jak Linux, programiści i użytkownicy HURD mogą sprzeciwić się efektywnemu wyczyszczeniu projektu w konkursie popularności. I dla nich dobre; „konkurencja” tego rodzaju jest czymś pozytywnym, podczas gdy skłonność do monopolizacji nie jest - powstają masywne byty, które częściowo tłumią kreatywność, ponieważ mają skłonność do monolitycznej / meglomaniakalnej kontroli. Linux Foundation jest już niezależną organizacją, równie dobrze może tak pozostać.

Złotowłosa
źródło
13
Dzięki za fantastyczną odpowiedź. +1 ode mnie i 2 notatki: 1) Nie zrozum mnie źle: mam wysoką opinię na temat Hurda. Sam jestem deweloperem przeszkodą. Jednak (uważam, że) nie można argumentować, że Linux jest lepszym stanem. 2) Rozumiem, dlaczego Linux nie chciałby być połączony z GNU, ale z tego, co widzę, to Projekt GNU wykazuje największe zastrzeżenia. Czy mógłbyś to rozwinąć?
NlightNFotis
14
@NlightNFotis: Czy jesteś pewien, że jest to głównie sprzeciw GNU? Właśnie to czytam: torvalds-family.blogspot.ca/2008/11/black-and-white.html . Wydaje mi się, że wszyscy zaangażowani są znacznie szczęśliwsi bez formalnego związku.
złotowłosa
Dzięki za ten post na blogu. Teraz ma to większy sens. Pozostawię pytanie otwarte przez jakiś czas, aby sprawdzić, czy ludzie opracowują bardziej fantastyczne odpowiedzi, a jeśli nie, twoje zostanie wybrane jako „odpowiedź” na to pytanie. Jeszcze jedna „petycja”. Czy miałbyś coś przeciwko, powtarzając, jeśli mogę powiedzieć, „możesz nie mieć wysokiej opinii na temat HURD”, ponieważ to sprawia, że ​​czuję się trochę nieswojo i źle się ze sobą czuję.
NlightNFotis
4
Bardzo podoba mi się idea Hurda. Co właśnie przyszło mi do głowy: utrzymujący się trend w kierunku wirtualizacji może okazać się dużą pomocą dla Hurda w zobaczeniu przynajmniej części prawdziwego świata. Nie potrzebujesz pełnego systemu operacyjnego, aby ktoś mógł go używać. Jeśli masz kilka aplikacji, które mają wyraźne zalety z działaniem pod Hurd, możesz po prostu umieścić je w maszynie wirtualnej Hurd. Podobne do chrooting, lxc czy cokolwiek innego.
Hauke ​​Laging 28.04.13
2
@NlightNFotis przeformułowany :)
goldilocks
77

W sieci jest wiele dokumentacji i dyskusji na ten temat.

Krótka odpowiedź, że istnieją głębokie różnice ideologiczne między projektem GNU a projektami jądra Linuksa, co przeszkadza w możliwej unifikacji.

FSF, organizacja stojąca za Projektem GNU, koncentruje się na ideologicznej czystości w odniesieniu do idei wolnego oprogramowania. W dużej mierze wynika to z poglądów założyciela FSF / GNU, Richarda Stallmana. Ponadto, jak wspomniała Goldilocks, FSF jest obecnie głównie organizacją polityczną. Od dłuższego czasu FSF nie wkłada znacznych zasobów w Projekt GNU, choć zapewnia infrastrukturę pomocniczą.

Projekt jądra Linuksa ma znacznie bardziej pragmatyczne podejście do wolności oprogramowania, znowu w dużej mierze wywodzące się z jego założyciela, Linusa Torvaldsa. Projekt jądra Linuksa to przede wszystkim projekt wolnego oprogramowania, składający się z programistów specjalizujących się w rozwoju jądra / systemu operacyjnego, a pod żadnym względem nie jest organizacją polityczną.

Jako konkretne przykłady tego, jak te ideologie sprawdzają się w praktyce, należy rozważyć

1) Ten Stallman uważa za niedopuszczalny fakt, że projekt Debian „reklamuje” niewolne oprogramowanie, utrzymując niewolną część swojego archiwum oprogramowania. Jest to ironiczne, ponieważ projekt Debian koncentruje się na wolności oprogramowania, która jest dość podobna do FSF, ale nie jest tak sztywna ideologicznie.

2) To, że jądro Linuksa pozwala na używanie (niewolnych) binarnych modułów jądra z jądrem. Chociaż twórcy jądra nie są zachwyceni tym, tolerują to, ale trudno sobie wyobrazić, że FSF to robi.

Warto również zauważyć, że próba Stallmana nazwania systemów operacyjnych opartych na jądrze Linuksa GNU / Linux prawdopodobnie nie poprawiła relacji między FSF a społecznością jądra Linux, chociaż nie mam na ten temat konkretnych danych.

Oprócz wszystkiego innego, jak wspomina Goldilocks, FSF ma różne reguły, które musi spełniać projekt GNU. Obejmuje to przeniesienie praw autorskich do całego kodu do FSF. To samo w sobie stanowiłoby przełom, ponieważ Linus Torvalds nigdy nie wymagał takiego przeniesienia praw autorskich. Dlatego jeśli jądro Linuksa miałoby stać się częścią projektu GNU, wszystkie znaczące wkłady w jądro Linuksa musiałyby mieć przypisane prawa autorskie do FSF. Biorąc pod uwagę wiek i wielkość projektu oraz liczbę uczestników, jest to w zasadzie niemożliwe. Zdecydowanie mniejsze i młodsze projekty (np. Mercurial) uznały, że ponowne licencjonowanie oprogramowania jest trudnym zadaniem.

Należy pamiętać, że ta odpowiedź nie jest w żaden sposób krytykowana zarówno przez twórców FSF, jak i jądra Linuksa. Obie strony mają własne ważne punkty widzenia. Jednak w rzeczywistości sytuacja jest do pewnego stopnia niezgodna z poglądami.

Faheem Mitha
źródło
4
+1 Podoba mi się ta odpowiedź. Solidne informacje na ten temat. Doceniam twój wkład.
NlightNFotis
1
Warto zauważyć, że w wielu krajach Europy „przeniesienie praw autorskich” nie jest prawnie możliwe. Istnieją inne możliwości (umowa współtwórców), ale cesja praw autorskich może nie być prawnie możliwa - nie tylko technicznie.
Maciej Piechotka
1
@ FaheemMitha, nie według definicji GNU, ponieważ binarne obiekty blob z pewnością częścią jądra; są one rozproszone w kodzie źródłowym jądra i wbudowane w pliki binarne jądra i wymagane do ich działania.
psusi
8
Ahh, zastrzeżone sterowniki to kolejna rzecz, której GNU sprzeciwia się. Był to jeden z powodów, dla których GPLv3; aby zablokować łączenie zastrzeżonych modułów z wolnym kodem, nawet w czasie wykonywania, i dlaczego Linux wybrał pozostanie z GPLv2.
psusi
1
@vonbrand, bez względu na to, czy się z tym zgadzasz, czy nie, nie ma znaczenia; jest to pozycja FSF i dlatego Linux nigdy nie mógłby być projektem GNU.
psusi
35

Cytuję komentarz Richarda Stallmana , dotyczący decyzji o wprowadzeniu Hurda zamiast Linuksa.

Ludzie czasem pytają: `` Dlaczego FSF opracował nowe wolne jądro zamiast używać Linuksa? '' To rozsądne pytanie. Krótko mówiąc, odpowiedź brzmi: nie jest to pytanie, przed którym stoimy.

Kiedy zaczęliśmy rozwijać Hurda w 1990 roku, pytanie, które nas czekało, brzmiało: `` Jak możemy uzyskać darmowe jądro dla systemu GNU? ''. Nie było wtedy wolnego jądra podobnego do Uniksa i nie wiedzieliśmy o żadnym innym planie pisania jeden. Jedynym sposobem, w jaki mogliśmy się spodziewać wolnego jądra, było napisanie go samodzielnie. Więc zaczęliśmy.

O Linuksie słyszeliśmy po jego wydaniu. W tym czasie nasuwało się pytanie: `` Czy powinniśmy anulować projekt Hurd i zamiast tego użyć Linuksa? ''

Słyszeliśmy, że Linux w ogóle nie był przenośny (dziś może to nie być prawda, ale wtedy to słyszeliśmy). I słyszeliśmy, że Linux jest architektonicznie na równi z jądrem Uniksa; nasza praca doprowadziła do czegoś znacznie potężniejszego.

Biorąc pod uwagę lata pracy, które już włożyliśmy w Hurda, postanowiliśmy go ukończyć, a nie wyrzucić.

Gdybyśmy mieli do czynienia z pytaniem, które ludzie zadają --- czy Linux był już dostępny i zastanawialiśmy się, czy zacząć pisać kolejne jądro --- nie zrobilibyśmy tego. Zamiast tego wybralibyśmy inny projekt, coś do wykonania, czego nie może wykonać żadne istniejące wolne oprogramowanie.

Ale wtedy zaczęliśmy Hurda, a teraz sprawiliśmy, że działa. Mamy nadzieję, że dzięki doskonałej architekturze wolne systemy operacyjne będą bardziej wydajne.

NlightNFotis
źródło
7
Pomimo fantastycznych odpowiedzi udzielonych już na pytanie, wybiorę tę odpowiedź jako kanoniczną dla pytania, ponieważ pokazuje ona uzasadnienie wyboru trzymania się Hurda, prosto od twórcy Projektu GNU, Richarda Stallmana.
NlightNFotis 30.04.13
9
Uwaga: „dziś może to nie być prawda” - opinia RMS na temat Linuksa wydaje się opierać na pogłoskach, a nie wiedzy.
Martin Schröder
19
@Martin: (późna odpowiedź, ale :) Kiedy Torvalds po raz pierwszy ogłosił Linuksa, był specyficzny dla x86, a zero planów uczynienia go przenośnym. W początkowym wątku Linus powiedział: „Powiedziałbym, że przeniesienie jest niemożliwe”. Dlatego RMS nie miał powodu, by sądzić, że Linux wyrósłby na to, co ma dzisiaj. Dowody z ust prowadzącego projekt są ledwo słyszalne.
Kevin Cathcart,
@KevinCathcart: RMS / FSF powinien był sam przestudiować kod, zamiast polegać na innych („słyszeliśmy”).
Martin Schröder
21
@ MartinSchröder: Po co studiować kod, kiedy Lider Projektu wyraźnie stwierdził, że nie będzie przenośny? W każdym razie Linux został ogłoszony w 1991 roku. Trwało to do kwietnia 1994 roku (wydanie 1.1.45), zanim Linux nawet dodał foldery dla portów architektury. Zajmie to więcej czasu, zanim jakiekolwiek porty będą praktyczne. Gdyby FSF podjęli decyzję o kontynuowaniu Hurda w 1992 lub 1993 r., Sprawdzenie kodu wzmocniłoby tylko to, że kod nie jest przenośny.
Kevin Cathcart,
4

Właśnie dodam tutaj moje 2 centy, myślę, że to, co zostało omówione w tym momencie, ma wiele sensu, ale myślę, że istnieje jeden ważny aspekt, który naprawdę może spolaryzować podstawy GNU i fakt, że Linux staje się coraz bardziej bardziej miejsce, w którym duże korporacje inwestują prawdziwe pieniądze i czas, pomysł, że Linux jest rodzimym projektem , nie jest prawdą, ani trochę, może jest jakiś przypadkowy facet, który próbuje zwrócić na siebie uwagę, dając załatać, ale dla dużej części Linux to zadanie dla korporacji.

użytkownik2384250
źródło
1
Nie sądzę, że FSF ma problem ze wsparciem korporacyjnym projektów oprogramowania. Koncentrują się głównie na zasadach wolnego oprogramowania.
Faheem Mitha
Dominacja korporacyjna była dużym problemem, do którego GNU GPL miała się odnieść. Licencjonowane oprogramowanie było w rzeczywistości normalną procedurą zarówno na MIT, jak i w Berkeley, ale po komercjalizacji kodu zostało ono natychmiast zamknięte. Na przykład mógłbym dzisiaj sprawdzić źródło Linuksa, a wszystkie komercyjnie udoskonalenia przyniosą korzyści mojemu potencjalnemu projektowi. Lub mój następny mały projekt osobisty może wykorzystywać tylko kilka bloków, chodzi o to, że wszelkie wprowadzone ulepszenia przynoszą korzyść każdemu, kto będzie pracował z kodem jako następnym.
JM Becker,
1

Inne wyjaśnienie znalezione w FAQ gnu.org :

Sprawienie, by GNU Hurd działało wystarczająco dobrze, aby konkurować z Linuksem, byłoby dużym zadaniem i nie jest absolutnie konieczne. Jedyną etycznie niewłaściwą cechą Linuksa jako jądra jest włączenie „obiektów blob” oprogramowania układowego; najlepszym rozwiązaniem tego problemu jest opracowanie bezpłatnego zamiennika dla obiektów blob .

Kwark
źródło
-6

Linux nie może być Uniksem, ponieważ Linux nie jest zgodny z Posix .

Więc nawet bez problemów politycznych Linux nie może osiągnąć celu projektowego Hurda.

Cytowanie : „Hurd jest zamiennikiem projektu GNU dla popularnego jądra systemu operacyjnego UNIX”.

Zadziwiające, że istnieje Debian / Hurd-Projekt . Ale to prawdopodobnie inna historia ...

BTW: Windows (od NT / XP) również opiera się na jądrze MACH.

Nils
źródło
8
Jeśli chcesz twierdzić, że Linux nie jest zgodny z POSIX, będziesz musiał to zrobić trochę. Włącznie z tym, gdzie FSF mówi, że wymagają absolutnie w 100% zgodnego z POSIX jądra. Nawiasem mówiąc, Unix to nie POSIX. Unix (znak towarowy) jest konkretnym zastrzeżonym systemem operacyjnym, więc nie trzeba dodawać, że żaden inny system operacyjny nie może być tym systemem operacyjnym.
psusi
6
Powołanie na jądro systemu Windows oparte na MACH? Wikipedia twierdzi, że dzielą się niektórymi opcjami projektowania; ale MACH jest prototypowym mikrojądrem, podczas gdy większość usług systemu operacyjnego Windows działa w jądrze, a nie w przestrzeni użytkownika. Jedynym ważnym składnikiem OSS w jądrze systemu Windows, o którym wiem, był stos sieciowy, który kiedyś był oparty na implementacji BSD; jednak został rozerwany i zastąpiony tym, który lepiej współpracuje z resztą projektu systemu operacyjnego kilka wersji temu (IIRC w XP lub 2k).
Dan Neely
14
Ale GNU też nie jest Unixem.
Simon
6
@Nils, pytanie, które podłączyłeś, zaprzecza twojej pozycji, a nie ją popiera.
psusi
8
@Nils, nonsens Macha to kolejny popularny błąd. NT nie ma nic wspólnego z mach. Jego „serwery podsystemu” nie różnią się od demonów unixowych, które nie tworzą mikrojądra. Pierwotnie gui zostało zaimplementowane w trybie użytkownika, a to miało jedynie przejściowe podobieństwo do systemu mikrojądra (choć tak samo jest z Xwindows, który nie czyni Linuksa mikrojądrem), ale zostało to zezłomowane w NT4 i przeniesione do jądra.
psusi