Tại sao Linux không được coi là hạt nhân GNU chính thức?


128

Mặc dù tôi đã biết khá lâu về sự tồn tại của Hurd và nhiệm vụ của nó là hạt nhân Hệ điều hành GNU chính thức, tôi đã tự hỏi làm thế nào mà Linux không được coi là hạt nhân GNU chính thức trong nhiều năm qua, vì nó ở trạng thái tốt hơn nhiều hơn Hurd?

Linux đã ít nhiều phục vụ vai trò này từ hơn 20 năm nay, tuy nhiên người ta có thể thấy rằng Dự án GNU đang giữ khoảng cách khi nói đến Linux. Tại sao chuyện này đang xảy ra? Có phải vì một giấc mơ mà Hurd sẽ (ở một thời điểm nào đó trong tương lai) sẽ ở mức chất lượng sản xuất? Có phải vì dự án GNU không thấy nhiệm vụ của nó được phản ánh nhiều như nó muốn trong Linux? Có phải vì lý do chính trị khác?


20
Loại câu hỏi "bất hợp pháp" ở đây nhưng thú vị. Với một chút may mắn, nó được bảo vệ vì "ý nghĩa lịch sử", được đưa ra những câu trả lời đủ tuyệt vời ... ;-)
Hauke ​​Laging

2
@HaukeLaging Thanx giao phối. Tôi cũng cảm thấy như đây là một câu hỏi hay, và có thể tạo ra những câu trả lời thú vị, và thực sự không thể hiểu tại sao ai đó sẽ bỏ phiếu chặt chẽ. Tôi chắc chắn đây là điều mà rất nhiều người muốn biết.
NlightNFotis

1
Ồ, thật đơn giản: Ai đó sẽ phải chỉ vào Câu hỏi thường gặp và hét lên "lạc đề" VÀ "quá rộng" ...
Hauke ​​Laging

5
@HaukeLaging Bạn rất đúng và tôi ước rằng mọi người thực dụng hơn và có thể nhận ra một câu hỏi với một số giá trị thay vì chỉ vào Câu hỏi thường gặp và hét lên. Người ta có thể dễ dàng nhìn thấy trong SO những câu hỏi thú vị nhất đang bị đóng lại, chỉ để tự hỏi ...
NlightNFotis

4
Tôi chỉ cần đọc lại Câu hỏi thường gặp. IMHO đây là về chủ đề ở đây. Mặc dù nó là một câu hỏi meta, nhưng câu hỏi liên quan đến Linux / Unix và khá rõ ràng.
Nils

Câu trả lời:


151

GNU sẽ không chấp nhận một cái gì đó như một dự án trừ khi các nhà phát triển đồng ý với các quy định nhất định ràng buộc tất cả các dự án GNU chính thức.

Hiện tại nhân Linux có thể không phù hợp với những hạn chế này và không có gì cho Linus Torvalds, kernel.org, et al. để đạt được từ việc đặt mình dưới chiếc ô GNU và mất rất nhiều - thỏa thuận ràng buộc đã nói ở trên và nhận thức của công chúng rằng hạt nhân hiện là một dự án GNU, sẽ có tác động tiêu cực. Tổ chức mẹ của GNU, Tổ chức Phần mềm Tự do (FSF), là một tổ chức chính trị và Torvalds đã đưa ra nhiều lời chỉ trích công khai về nó và nhà lãnh đạo / người sáng lập suốt đời mang tính biểu tượng của GNU và FSF, Richard M. Stallman.

Hơn nữa, nhân Linux không yêu cầu không gian người dùng GNU nhiều hơn không gian người dùng GNU yêu cầu nhân Linux. Sự độc lập này nên được coi là một điều tốt bởi các nguyên tắc cơ bản của công nghệ phần mềm, trong đó ưu tiên mô đun hóa và khớp nối lỏng lẻo trái ngược với điều ngược lại (những thứ nguyên khối với khớp nối chặt chẽ).

Một điểm khác chống lại ý tưởng này là trong khi HURD có thể không được nhiều người quan tâm như Linux, thì các nhà phát triển và người dùng HURD có thể phản đối việc dự án của họ được phủ bụi một cách hiệu quả trong một cuộc thi phổ biến. Và tốt cho họ; "cạnh tranh" của loại này là một điều tích cực, trong khi cúi đầu trước sự độc quyền thì không - bạn kết thúc với các thực thể lớn ngăn cản sự sáng tạo một phần chúng dễ bị kiểm soát nguyên khối / meglomaniacal. Linux Foundation đã là một tổ chức độc lập, nó cũng có thể giữ nguyên như vậy.


13
Thanx cho câu trả lời tuyệt vời. +1 từ tôi và 2 ghi chú: 1) Đừng hiểu lầm tôi: Tôi có ý kiến ​​cao về Hurd. Bản thân tôi là một nhà phát triển khó khăn. Tuy nhiên (tôi tin rằng) không thể tranh cãi rằng Linux là một trạng thái tốt hơn. 2) Tôi có thể thấy lý do tại sao Linux không muốn được kết hợp với GNU, nhưng từ những gì tôi có thể thấy đó là Dự án GNU thể hiện sự phản đối lớn nhất đối với điều này. Bạn có thể giải thích về điều này?
NlightNFotis

14
@NlightNFotis: Bạn có chắc chắn đó là sự phản đối của GNU không? Chỉ cần đọc điều này: torvalds-f Family.blogspot.ca/2008/11/black-and-white.html . Đối với tôi có vẻ như mọi người tham gia đều hạnh phúc hơn nhiều nếu không có mối quan hệ chính thức.
goldilocks

Cảm ơn cho bài viết blog này. Nó có ý nghĩa hơn bây giờ. Tôi sẽ giữ câu hỏi mở một thời gian để xem mọi người giải thích bằng những câu trả lời tuyệt vời hơn, và nếu không, câu hỏi của bạn sẽ được chọn làm "câu trả lời" cho câu hỏi này. Chỉ còn một "kiến nghị" cuối cùng. Bạn có phiền không, nói lại nếu tôi có thể nói, "bạn có thể không có ý kiến ​​cao về HURD" bởi vì nó khiến tôi cảm thấy khó chịu và khiến tôi cảm thấy tồi tệ về bản thân.
NlightNFotis

4
Tôi thực sự thích những ý tưởng đằng sau Hurd. Điều tôi vừa nghĩ đến: Xu hướng ảo hóa đang diễn ra có thể trở thành một trợ giúp lớn cho Hurd để thấy ít nhất một phần của thế giới thực. Bạn không cần một hệ điều hành hoàn chỉnh để khiến ai đó sử dụng nó. Nếu bạn có một vài ứng dụng có lợi thế rõ ràng từ việc chạy trong Hurd thì bạn có thể chỉ cần đưa chúng vào máy ảo Hurd. Tương tự như chroot, lxc hoặc bất cứ điều gì.
Hauke ​​Laging

2
@NlightNFotis đăng lại :)
goldilocks

77

Có nhiều tài liệu và thảo luận về điều này trên mạng.

Câu trả lời ngắn gọn rằng có sự khác biệt về ý thức hệ sâu sắc giữa dự án GNU và các dự án nhân Linux, điều này cản trở sự hợp nhất có thể.

Trọng tâm của FSF, tổ chức đứng sau Dự án GNU, là về sự thuần khiết về ý thức hệ đối với ý tưởng về phần mềm miễn phí. Điều này phần lớn dẫn đầu từ quan điểm của người sáng lập FSF / GNU, Richard Stallman. Ngoài ra, như goldilocks đã đề cập, FSF hiện chủ yếu là một tổ chức vận động chính trị. Từ lâu, FSF đã không đưa các nguồn lực quan trọng vào Dự án GNU, mặc dù chúng cung cấp cơ sở hạ tầng hỗ trợ.

Dự án nhân Linux có lập trường thực tế hơn nhiều về tự do phần mềm, một lần nữa, ở một mức độ lớn xuất phát từ người sáng lập, Linus Torvalds. Dự án nhân Linux chủ yếu là một dự án phần mềm miễn phí, bao gồm các nhà phát triển phần mềm chuyên phát triển nhân / HĐH và không liên quan đến một tổ chức vận động chính trị.

Như các ví dụ cụ thể về cách các hệ tư tưởng này diễn ra trong thực tế, hãy xem xét

1) Điều đó Stallman coi là không thể chấp nhận được thực tế là dự án Debian "quảng cáo" phần mềm không miễn phí bằng cách duy trì phần không miễn phí của kho lưu trữ phần mềm. Điều này thật mỉa mai, vì dự án Debian tập trung vào tự do phần mềm khá giống với FSF, trong khi không quá cứng nhắc về mặt ý thức hệ.

2) Hạt nhân Linux đó cho phép các mô-đun hạt nhân nhị phân (không miễn phí) được sử dụng với hạt nhân. Mặc dù các nhà phát triển kernel không hào hứng với điều này, nhưng họ chấp nhận điều đó, nhưng thật khó để tưởng tượng FSF làm như vậy.

Điều đáng chú ý là việc Stallman cố gắng đặt tên cho các hệ điều hành dựa trên nhân Linux vì GNU / Linux có thể không cải thiện mối quan hệ giữa FSF và cộng đồng nhân Linux, mặc dù tôi không có dữ liệu cụ thể về điều này.

Ngoài bất cứ điều gì khác, như goldilocks đề cập, FSF có nhiều quy tắc khác nhau mà một dự án GNU phải tuân thủ. Điều này bao gồm việc chuyển nhượng bản quyền của tất cả các mã cho FSF. Điều này tự nó sẽ là một người phá vỡ thỏa thuận, vì Linus Torvalds chưa bao giờ yêu cầu chuyển nhượng bản quyền như vậy. Do đó, nếu hạt nhân Linux trở thành một phần của dự án GNU, tất cả những đóng góp quan trọng cho hạt nhân Linux sẽ phải có bản quyền của chúng được gán cho FSF. Với độ tuổi và quy mô của dự án và số lượng người đóng góp, điều này về cơ bản là không thể. Các dự án nhỏ hơn và trẻ hơn (ví dụ Mercurial) đã tìm thấy phần mềm liên quan đến một nhiệm vụ khó khăn.

Xin lưu ý rằng câu trả lời này hoàn toàn không có ý định chỉ trích các nhà phát triển nhân FSF hoặc Linux. Cả hai bên có quan điểm hợp lệ riêng của họ. Tuy nhiên, thực tế của tình huống là ở một mức độ nào đó, quan điểm không tương thích.


4
+1 Tôi thích câu trả lời này. Thông tin vững chắc về vấn đề này. Tôi đánh giá cao đầu vào của bạn.
NlightNFotis

1
Điều đáng chú ý là ở nhiều quốc gia ở châu Âu, "chuyển nhượng bản quyền" là không thể về mặt pháp lý. Có những khả năng khác (thỏa thuận người đóng góp) nhưng việc chuyển nhượng bản quyền có thể không hợp pháp - không chỉ về mặt kỹ thuật.
Maciej Piechotka

1
@FaheemMitha, không phải theo định nghĩa GNU vì các đốm nhị phân chắc chắn một phần của kernel; chúng được phân phối trong mã nguồn kernel và được tích hợp vào các nhị phân kernel và được yêu cầu để chúng hoạt động.
psusi

8
Ahh, trình điều khiển độc quyền là một thứ khác mà GNU phản đối. Đây là một trong những lý do cho GPLv3; để ngăn chặn các mô-đun độc quyền khỏi được liên kết với mã miễn phí, ngay cả trong thời gian chạy và tại sao Linux chọn ở lại với GPLv2.
psusi

1
@vonbrand, dù bạn có đồng ý hay không thì cũng không liên quan; đó là vị trí của FSF và do đó, Linux không bao giờ có thể là một dự án GNU.
psusi

35

Tôi đang trích dẫn một bình luận của Richard Stallman , liên quan đến quyết định tung ra với Hurd chứ không phải Linux.

Mọi người đôi khi hỏi, 'Tại sao FSF phát triển hạt nhân miễn phí mới thay vì sử dụng Linux?' 'Đó là một câu hỏi hợp lý. Câu trả lời ngắn gọn, đó không phải là câu hỏi mà chúng tôi phải đối mặt.

Khi chúng tôi bắt đầu phát triển Hurd vào năm 1990, câu hỏi mà chúng tôi phải đối mặt là: 'Làm thế nào chúng tôi có thể có một hạt nhân miễn phí cho hệ thống GNU?' 'Lúc đó không có hạt nhân giống như Unix miễn phí một. Cách duy nhất chúng ta có thể mong đợi để có một kernel miễn phí là tự viết nó. Thế là chúng tôi bắt đầu.

Chúng tôi đã nghe về Linux sau khi phát hành. Vào thời điểm đó, câu hỏi mà chúng tôi phải đối mặt là, 'Chúng ta có nên hủy dự án Hurd và sử dụng Linux không?' '

Chúng tôi nghe nói rằng Linux hoàn toàn không di động (điều này có thể không đúng trong ngày hôm nay, nhưng đó là những gì chúng tôi đã nghe sau đó). Và chúng tôi đã nghe nói rằng Linux về mặt kiến ​​trúc ngang tầm với nhân Unix; công việc của chúng tôi đã dẫn đến một cái gì đó mạnh mẽ hơn nhiều.

Với nhiều năm làm việc mà chúng tôi đã đưa vào Hurd, chúng tôi quyết định hoàn thành nó thay vì ném chúng đi.

Nếu chúng tôi phải đối mặt với câu hỏi mà mọi người hỏi --- nếu Linux đã có sẵn và chúng tôi đang xem xét liệu có nên bắt đầu viết kernel khác không --- chúng tôi sẽ không làm điều đó. Thay vào đó, chúng tôi sẽ chọn một dự án khác, một cái gì đó để thực hiện một công việc mà không có phần mềm miễn phí hiện có nào có thể làm được.

Nhưng chúng tôi đã bắt đầu Hurd, hồi đó, và bây giờ chúng tôi đã làm cho nó hoạt động. Chúng tôi hy vọng kiến ​​trúc vượt trội của nó sẽ làm cho các hệ điều hành miễn phí mạnh hơn.


7
Mặc dù đã có câu trả lời tuyệt vời cho câu hỏi, tôi sẽ chọn câu trả lời này là câu trả lời chính cho câu hỏi vì nó cho thấy sự hợp lý đằng sau sự lựa chọn gắn bó với Hurd, trực tiếp từ người tạo ra Dự án GNU, Richard Stallman.
NlightNFotis

9
Lưu ý "điều này có thể không đúng trong ngày hôm nay" - Ý kiến ​​của RMS về Linux dường như dựa trên tin đồn chứ không phải kiến ​​thức.
Martin Schröder

19
@Martin: (Trả lời muộn, nhưng :) Khi Torvalds lần đầu tiên công bố Linux, nó là x86 cụ thể, không có kế hoạch nào để làm cho nó di động. Trong chủ đề nội bộ, Linus đã nói thẳng rằng "Tôi muốn nói rằng việc chuyển mạng là không thể". Do đó, rms không có lý do gì để tin rằng ban đầu Linux sẽ phát triển thành những gì nó có ngày nay. Bằng chứng từ miệng của người lãnh đạo dự án hầu như không được nghe.
Kevin Cathcart

@KevinCathcart: RMS / FSF nên tự nghiên cứu mã thay vì dựa vào người khác ("chúng tôi đã nghe").
Martin Schröder

21
@ MartinSchröder: Tại sao phải nghiên cứu mã khi Trưởng dự án nói rõ ràng rằng nó sẽ không thể mang theo được? Dù sao, Linux đã được công bố vào năm 1991. Phải đến tháng 4 năm 1994 (phát hành 1.1,45) trước khi Linux thậm chí thêm các thư mục cho các cổng kiến ​​trúc. Sẽ mất nhiều thời gian hơn trước khi bất kỳ cổng là thực tế. Nếu FSF đưa ra quyết định tiếp tục Hurd vào năm 1992 hoặc 1993, việc xem xét mã sẽ chỉ củng cố rằng mã này không thể mang theo được.
Kevin Cathcart

4

Tôi chỉ thêm 2 xu của mình vào đây, tôi nghĩ rằng những gì nó được thảo luận vào thời điểm này có ý nghĩa rất lớn nhưng có một khía cạnh chính mà tôi nghĩ có thể thực sự phân cực nền tảng GNU và thực tế là Linux đang ngày càng trở nên phổ biến Thêm một nơi mà các tập đoàn lớn đang đầu tư tiền và thời gian thực, ý tưởng rằng linux là một dự án sản xuất tại nhà, điều đó không đúng, thậm chí không một chút, có thể có một anh chàng ngẫu nhiên cố gắng thu hút sự chú ý trong khi đưa ra một vá lỗi, nhưng đối với phần lớn linux, đó là một công việc cho các tập đoàn.


1
Tôi không nghĩ rằng FSF có vấn đề với sự hỗ trợ của các dự án phần mềm. Trọng tâm chính của họ là các nguyên tắc của phần mềm miễn phí.
Faheem Mitha

Sự thống trị của công ty là mối quan tâm lớn mà GNU GPL dự định sẽ giải quyết. Phần mềm được cấp phép cho phép thực sự là thủ tục bình thường ở cả MIT và Berkeley, nhưng một khi mã được thương mại hóa, nó đã nhanh chóng bị đóng cửa. Vì vậy, ví dụ, tôi có thể kiểm tra nguồn Linux ngày hôm nay và tất cả các cải tiến được phát triển thương mại sẽ có lợi cho dự án tiềm năng của tôi. Hoặc dự án cá nhân nhỏ tiếp theo của tôi có thể chỉ sử dụng một vài khối, điểm quan trọng là mọi cải tiến được phát hành đều có lợi cho bất kỳ ai làm việc với mã tiếp theo.
JM Becker

1

Một lời giải thích khác được tìm thấy trên FAQ của gnu.org :

Làm cho GNU Hurd hoạt động đủ tốt để cạnh tranh với Linux sẽ là một công việc lớn và rõ ràng là không cần thiết. Điều duy nhất sai về mặt đạo đức với Linux như là một hạt nhân là nó bao gồm phần sụn của Google Cách khắc phục tốt nhất cho vấn đề đó là phát triển thay thế miễn phí cho các đốm màu .


-6

Linux không thể là Unix, vì Linux không tuân thủ Posix .

Vì vậy, ngay cả khi không gặp rắc rối chính trị, Linux cũng không thể đáp ứng mục tiêu thiết kế cho Hurd.

Trích dẫn : "Hurd là dự án GNU thay thế cho UNIX, một nhân hệ điều hành phổ biến."

Đáng kinh ngạc, có Debian / Hurd-Projekt . Nhưng đó có thể là một câu chuyện khác ...

BTW: Windows (kể từ NT / XP) cũng dựa trên kernel Mach.


8
Nếu bạn định tuyên bố rằng Linux không phù hợp với POSIX, bạn sẽ phải sao lưu điều đó một chút. Bao gồm cả nơi mà FSF nói rằng họ yêu cầu hạt nhân hoàn toàn tuân thủ POSIX 100%. Nhân tiện, Unix không phải là POSIX. Unix (đã đăng ký nhãn hiệu) là một HĐH độc quyền cụ thể, do đó, không cần phải nói rằng không có HĐH nào khác có thể là HĐH đó .
psusi

6
Trích dẫn cho nhân Windows được dựa trên Mach? Wikipedia cho biết họ chia sẻ một số lựa chọn thiết kế; nhưng với Mach là hạt nhân nguyên mẫu trong khi phần lớn các dịch vụ HĐH Windows chạy trong kernel không phải là userland. Thành phần OSS chính duy nhất trong nhân Windows mà tôi biết là ngăn xếp mạng được sử dụng dựa trên triển khai BSD; tuy nhiên, nó đã được tách ra và thay thế bằng một phiên bản giao tiếp tốt hơn với phần còn lại của thiết kế os một vài phiên bản trước đây (IIRC trong XP hoặc 2k).
Dan Neely

14
Nhưng GNU cũng không phải Unix.
Simon

6
@Nils, câu hỏi bạn liên kết mâu thuẫn với vị trí của bạn, thay vì hỗ trợ nó.
psusi

8
@Nils, Mach vô nghĩa là một chút hiểu lầm phổ biến. NT không có gì chung với mach. Các "máy chủ hệ thống con" của nó không khác gì các trình nền unix, không tạo ra một hạt nhân. Ban đầu gui được triển khai trong chế độ người dùng và điều này chỉ giống với hệ thống vi hạt nhân (mặc dù Xwindows cũng không biến Linux thành một hạt nhân), nhưng điều này đã bị loại bỏ trong NT4 và được chuyển sang kernel.
psusi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.