Hạt nhân Linux

Phổ biến

Sự phổ biến lớn của hệ điều hành Android, với hạt nhân Linux, đã làm cho hạt nhân trở thành lựa chọn phổ biến nhất cho các thiết bị di động, cạnh tranh với nền tảng được cài đặt của tất cả các hệ điều hành khác. Bao gồm những năm trước, ba tỷ điện thoại thông minh Android đã được ước tính đã được bán vào cuối năm 2014.
Nhiều bộ định tuyến tiêu dùng cũng sử dụng hạt nhân Linux, cũng như nhiều loại thiết bị nhúng khác, chẳng hạn như smartTV,set-top box và webcam. Nhiều bản phân phối Linux trên máy tính để bàn bao gồm hạt nhân Linux tồn tại, nhưng tỷ lệ sử dụng bản phân phối Linux thấp so với các hệ điều hành khác.
Tính đến tháng 11/ 2017, tất cả 500 siêu máy tính mạnh nhất thế giới đều chạy Linux.

Điều khoản cấp phép

Ban đầu, Torvalds phát hành Linux theo một giấy phép cấm sử dụng thương mại. Điều này đã được thay đổi trong phiên bản 0.12 bằng cách chuyển sang Giấy phép Công cộng GNU (GPL). Giấy phép này cho phép phân phối và bán các phiên bản có thể sửa đổi và chưa sửa đổi của Linux nhưng yêu cầu tất cả các bản sao đó phải được phát hành theo cùng một giấy phép và được kèm theo mã nguồn tương ứng hoàn chỉnh.
Torvalds đã mô tả việc cấp phép Linux theo GPL là "điều tốt nhất tôi từng làm".

GPL v3

Linux kernel chỉ được cấp phép rõ ràng theo phiên bản 2 của GPL, mà không cung cấp cho người được cấp phép tùy chọn "bất kỳ phiên bản mới hơn", đây là một phần mở rộng GPL phổ biến. Đã có cuộc tranh luận đáng kể về việc giấy phép có thể được thay đổi dễ dàng để sử dụng các phiên bản GPL sau này (bao gồm cả phiên bản 3) và liệu sự thay đổi này có đáng mong muốn hay không. Bản thân Torvalds đã chỉ định cụ thể khi phát hành phiên bản 2.4.0 rằng mã riêng của ông chỉ được phát hành trong phiên bản 2. Tuy nhiên, các điều khoản của trạng thái GPL rằng nếu không có phiên bản nào được chỉ định thì có thể sử dụng bất kỳ phiên bản nào, và Alan Cox chỉ ra rằng rất ít người đóng góp Linux khác đã chỉ định một phiên bản cụ thể của GPL.
Tháng 9/2006, một cuộc khảo sát với 29 lập trình viên hạt nhân chính đã chỉ ra rằng 28 người thích GPLv2 hơn dự thảo hiện tại của GPLv3. Torvalds nhận xét: "Tôi nghĩ rằng một số người ngoài cuộc... tin rằng cá nhân tôi chỉ là người kỳ quặc vì tôi đã công khai không phải là một fan hâm mộ lớn của GPLv3." Nhóm các nhà phát triển hạt nhân cao cấp này, bao gồm Linus Torvalds, Greg Kroah-Hartman và Andrew Morton, đã bình luận trên các phương tiện truyền thông đại chúng về sự phản đối của họ đối với GPLv3. Họ đã đề cập đến các điều khoản liên quan đến DRM/tivoization, bằng sáng chế, "các hạn chế bổ sung" và cảnh báo Balkanisation của "Open Source Universe" của GPLv3. Linus Torvalds, người quyết định không áp dụng GPLv3 cho nhân Linux, đã nhắc lại những lời chỉ trích của mình thậm chí nhiều năm sau đó.

Loadable kernel modules

Cuộc tranh luận liệu các loadable kernel modules (LKMs) có được coi là tác phẩm phái sinh theo luật bản quyền hay không, và do đó nằm trong các điều khoản của GPL.
Torvalds đã tuyên bố niềm tin của mình rằng các LKM chỉ sử dụng một tập hợp con giới hạn, "công khai" của các giao diện kernel đôi khi có thể là các tác phẩm không có nguồn gốc, do đó cho phép một số trình điều khiển chỉ nhị phân và các LKM khác không được cấp phép theo GPL. Một ví dụ điển hình cho việc này là việc sử dụng dma_buf bởi các trình điều khiển đồ họa Nvidia độc quyền. dma_buf là một tính năng kernel gần đây giống như phần còn lại của kernel, nó được cấp phép theo GPL), cho phép nhiều GPU nhanh chóng sao chép dữ liệu vào bộ đệm khung của nhau. Một trường hợp sử dụng có thể là Nvidia Optimus kết hợp GPU nhanh với GPU tích hợp Intel, trong đó GPU Nvidia ghi vào bộ đệm khung Intel khi nó hoạt động. Nhưng, Nvidia không thể sử dụng cơ sở hạ tầng này vì nó sử dụng một phương tiện kỹ thuật để thực thi quy tắc rằng nó chỉ có thể được sử dụng bởi các LKM cũng là GPL. đã trả lời trên LKML, từ chối yêu cầu từ một trong các kỹ sư của họ để loại bỏ thực thi kỹ thuật này khỏi API. Tuy nhiên, không phải tất cả những người đóng góp nhân Linux đều đồng ý với cách giải thích này, và ngay cả Torvald cũng đồng ý rằng nhiều LKM là các tác phẩm có nguồn gốc rõ ràng, và thực sự ông viết rằng "các mô-đun hạt nhân là dẫn xuất 'theo mặc định'".
Mặt khác, Torvalds cũng đã nói rằng "một vùng màu xám nói riêng giống như một trình điều khiển ban đầu được viết cho một hệ điều hành khác (nghĩa là rõ ràng không phải là một tác phẩm có nguồn gốc từ Linux). [...] ĐÓ là một khu vực màu xám, and _that_ is khu vực mà cá nhân tôi tin rằng một số mô-đun có thể được coi là không có nguồn gốc hoạt động đơn giản vì chúng không được thiết kế cho Linux và không phụ thuộc vào bất kỳ hành vi đặc biệt nào của Linux". Trình điều khiển đồ họa độc quyền, đặc biệt, được thảo luận rất nhiều. Cuối cùng, có khả năng những câu hỏi như vậy chỉ có thể được giải quyết bởi một tòa án.

Firmware binary blobs

Một điểm gây tranh cãi về cấp phép là việc sử dụng firmware "binary blobs" trong Linux kernel để hỗ trợ một số thiết bị phần cứng. Các tệp này thuộc nhiều loại giấy phép, trong đó nhiều tệp bị hạn chế và mã nguồn cơ bản chính xác của chúng thường không được biết.
Năm 2002, Richard Stallman đã tuyên bố tại sao, theo quan điểm của mình, những đốm màu đó làm cho nhân Linux không phải là một phần mềm miễn phí và việc phân phối nhân Linux "vi phạm GPL", đòi hỏi phải có "mã nguồn tương ứng hoàn chỉnh". Năm 2008, Tổ chức Phần mềm Tự do Mỹ Latinh đã khởi động Linux-libre như một dự án tạo ra một biến thể hoàn toàn miễn phí của nhân Linux mà không có đối tượng độc quyền; nó được sử dụng bởi một số bản phân phối Linux hoàn toàn tự do, chẳng hạn như những bản phân phối được chứng nhận bởi Free Software Foundation, trong khi nó cũng có thể được sử dụng trên hầu hết các bản phân phối.
Vào ngày 15 tháng 12 năm 2010, Dự án Debian đã thông báo rằng phiên bản ổn định tiếp theo của Debian "6.0 Squeeze" sẽ đi kèm với một hạt nhân "loại bỏ tất cả các bit phần mềm không tự do". Chính sách này tiếp tục được áp dụng trong các bản phát hành Debian ổn định sau này.

Thương hiệu

Linux là thương hiệu đã đăng ký của Linus Torvalds tại Mỹ và một số quốc gia khác. Đây là kết quả của một sự cố trong đó William Della Croce, Jr., người không tham gia vào dự án Linux, đã đăng ký nhãn hiệu tên và sau đó yêu cầu tiền bản quyền để sử dụng nó. Một số người ủng hộ Linux đã yêu cầu tư vấn pháp lý và nộp đơn kiện chống lại Della Croce. Vấn đề đã được giải quyết vào tháng 8 năm 1997 khi nhãn hiệu được giao cho Linus Torvalds.

Tranh chấp SCO

Đầu năm 2007, SCO đã đệ trình các chi tiết cụ thể về vi phạm bản quyền có mục đích. Mặc dù các tuyên bố trước đó rằng SCO là chủ sở hữu hợp pháp của 1 triệu dòng mã, họ chỉ xác định 326 dòng mã, hầu hết trong số đó là không bản quyền. Vào tháng 8 năm 2007, tòa án trong vụ Novell đã phán quyết rằng SCO đã không thực sự sở hữu bản quyền của Unix, mặc dù Tòa án phúc thẩm thứ mười phán quyết vào tháng 8 năm 2009 rằng câu hỏi về người sở hữu bản quyền vẫn còn đúng cho bồi thẩm đoàn câu trả lời. Tòa án đã ra phán quyết ngày 30 tháng 3 năm 2010 có lợi cho Novell.

Cộng đồng nhà phát triển

Tính đến năm 2007, sự phát triển của hạt nhân đã chuyển từ top 20 nhà phát triển tích cực nhất, viết 80% mã thành top 30 viết 30% mã, với các nhà phát triển hàng đầu dành nhiều thời gian xem xét thay đổi hơn. Các nhà phát triển cũng có thể được phân loại theo liên kết; trong năm 2007, các nhóm hàng đầu là không rõ trong khi đứng đầu nhóm doanh nghiệp là Red Hat với 12% đóng góp, và những người nghiệp dư được biết ở mức 3.9%. Những thay đổi về hạt nhân được thực hiện trong năm 2007 đã được gửi bởi hơn 1900 nhà phát triển, có thể là một đánh giá thấp đáng kể bởi vì các nhà phát triển làm việc theo nhóm thường được tính là một. Nó thường được giả định rằng cộng đồng các nhà phát triển hạt nhân Linux bao gồm 5000 hoặc 6000 thành viên.
Cập nhật từ 2016 Linux Kernel Development Report, do Linux Foundation phát hành,bao gồm giai đoạn từ 3,18 (tháng 12 năm 2014) đến 4,7 (tháng 7 năm 2016): Khoảng 1500 nhà phát triển đã đóng góp cho mỗi bản phát hành từ khoảng 200-250 công ty trên mỗi bản phát hành. 30 nhà phát triển hàng đầu đã đóng góp hơn 16% mã. Trong khối doanh nghiệp, những công ty đóng góp nhiều nhất là Intel (12,9%) và Red Hat (8,0%), vị trí thứ ba và thứ tư được tổ chức bởi danh mục 'không' (7,7%) và 'không xác định' (6,8%).

Quá trình phát triển

Một nhà phát triển muốn thay đổi hạt nhân Linux bắt đầu bằng việc phát triển và thử nghiệm sự thay đổi đó. Tùy thuộc vào mức độ thay đổi đáng kể và số lượng hệ thống con mà nó thay đổi mà thay đổi sẽ bao gồm một bản vá hoặc nhiều bản vá. Trong trường hợp của một hệ thống con duy nhất được duy trì bởi một người bảo trì duy nhất, các bản vá này được gửi dưới dạng e-mail đến người duy trì hệ thống con với danh sách gửi thư thích hợp trong Cc. Người duy trì và độc giả của danh sách gửi thư sẽ xem xét các bản vá và cung cấp phản hồi. Khi quá trình xem xét kết thúc, người duy trì chấp nhận các bản vá lỗi trong cây hạt nhân của mình. Nếu những thay đổi này là sửa lỗi được coi là đủ quan trọng, yêu cầu kéo bao gồm các bản vá sẽ được gửi đến Linus Torvalds trong vòng vài ngày. Nếu không, yêu cầu kéo sẽ được gửi đến Linus Torvalds trong cửa sổ hợp nhất tiếp theo. Cửa sổ hợp nhất thường kéo dài hai tuần và bắt đầu ngay sau khi phát hành phiên bản hạt nhân trước đó.
Linus Torvalds là nhân tố cuối cùng không chỉ qua những thay đổi được chấp nhận vào nhân Linux mà còn hơn những người có thể trở thành một người bảo trì. Các nhà bảo trì hạt nhân giữ vai trò của họ trừ khi họ tự nguyện đóng vai trò của họ. Không có ví dụ nào được biết về các nhà bảo trì hạt nhân đã được yêu cầu từ bỏ. Ngoài ra, không có ví dụ nào được biết đến về trình bảo trì hạt nhân đã bị chỉ trích vì kiểu tương tác của cô ấy với các nhà phát triển của Linus. Điều này mang đến cho người bảo trì một lượng năng lượng đáng kể. Mặc dù văn hóa trong cộng đồng phát triển hạt nhân đã được cải thiện qua nhiều năm, cộng đồng phát triển hạt nhân có tiếng tăm đôi khi rất thô lỗ. Các nhà phát triển cảm thấy bị đối xử không công bằng có thể báo cáo điều này với Linux Foundation's Technical Advisory Board. Một số thành viên cộng đồng hạt nhân không đồng ý với văn hóa thảo luận hiện tại.

Tính năng kĩ thuật

Linux hỗ trợ đa tác vụ ưu tiên (cả user mode và kernel mode), bộ nhớ ảo, thư viện chia sẻ, quản lý bộ nhớ, bộ giao thức Internet và luồng.

Kiến trúc

Linux là nhân nguyên khối. Trình điều khiển thiết bị và hạt nhân chạy trong không gian hạt nhân, với khả năng truy suất đến phần cứng, tuy nhiên một vài ngoại lệ chạy ở không gian user. Hệ thống đồ hoạ mọi người sử dụng với Linux không chạy trong hạt nhân.

"Hoảng loạn hạt nhân"/Lỗi hạt nhân (kernel panic)

Trong Linux, một "hoảng loạn" là lỗi hệ thống không khắc phục được phát hiện bởi hạt nhân. Khả năng mã hạt nhân phát xác định những điều kiện gọi hàm panic ở tệp sys/system.h.

Ngôn ngữ

Linux được viết bằng một phiên bản của ngôn ngữ lập trình C hỗ trợ bởi GCC, cùng với một số phần ngắn viết bằng hợp ngữ cho kiến trúc đích. Bởi vì sự hỗ trợ mở rộng của C mà nó được viết, GCC trong một thời gian dài là trình biên dịch có thể dịch được đúng hạt nhân Linux.

Nhiều ngôn ngữ khác được sử dụng trong nhiều cách, chủ yếu liên quan đến quá trình biên dịch. Bao gồm Perl, Python và nhiều loại shell scripting.

Biên dịch hạt nhân

Với máy tính tốc độ thấp, khả năng biên dịch hạt nhân là khả dĩ. Với trình biên dịch GCC và các công cụ khác như Perl,...
bạn có thể biên dịch hạt nhân Linux. Thời gian biên dịch khoảng trên dưới 1 giờ đồng hồ.
Sau khi biên dịch bạn có thể cấu hình lại boot loader config để khởi động vào hạt nhân mới biên dịch.
Có thể biên dịch đa kiến trúc, ngoài kiến trúc bạn đang dùng.