stanford-oval/wikipedia huggingface dataset:
Hàn Quảng
Yên vương

Theo Sử ký, thời nhà Tần, Hàn Quảng làm chức tốt sử ở Thượng Cốc.
Năm 209 TCN, Trần Thắng và Ngô Quảng khởi nghĩa chống nhà Tần. Trần Thắng đánh đến đất Trần tự xưng là Trương Sở vương, sai các tướng đi đánh dẹp các nơi. Lúc đó Hàn Quảng gia nhập lực lượng chống Tần của Trần Thắng. Ông được cử theo Vũ Thần cùng Trương Nhĩ và Trần Dư đi đánh đất Triệu.
Vũ Thần nhờ Khoái Triệt thuyết phục được các thành ở Triệu đầu hàng, nên thu phục vài chục thành. Đến Hàm Đan, Vũ Thần tự lập làm Triệu vương. Trần Thắng toan giết gia quyến Vũ Thần nhưng nghe lời khuyên của Trụ quốc Sái Tứ nên kết liên minh với Triệu để cùng chống Tần, do đó sai người đưa gia đình của Vũ Thần sang Triệu và sai sứ giả đến chúc mừng Triệu vương.
Vũ Thần lại theo kế của Trương Nhĩ, Trần Dư, không hưởng ứng việc đánh Tần mà đi chinh phục nước Yên để mở rộng thế lực cho Triệu. Triệu Vương cho là phải bèn không đem binh sĩ về hướng tây, mà sai Hàn Quảng cướp lấy đất Yên.
Hàn Quảng đến đất Yên, nhanh chóng thu phục được các thành trì. Sử sách không nói rõ quá trình thu phục đất Yên ra sao nhưng tựu trung việc Hàn Quảng làm chủ nước Yên khá dễ dàng.
Các quan lại và quý tộc cũ cùng hào kiệt ở Yên nói với Hàn Quảng:
Hàn Quảng nói:
Mọi người nói:
Hàn Quảng nghe theo, bèn tự lập làm Yên Vương và sai người báo tin với Vũ Thần. Vũ Thần nổi giận, bèn cùng Trương Nhĩ, Trần Dư đi về phía bắc cướp đất ở biên giới nước Yên. Triệu Vương bất ngờ đi ra trận, sa vào phục binh của quân Yên, bị quân Yên bắt được. Sau khi điều đình với tướng nước Yên, Vũ Thần được thả, phải chấp nhận đưa mẹ và gia quyến của Yên vương Quảng về nước Yên.
Mất ngôi

Tướng Tần là Chương Hàm cầm đại quân vây bức nước Triệu. Nước Triệu cầu cứu các chư hầu. Hàn Quảng làm theo phụ chính nước Tề là Điền Vinh, không hưởng ứng với nước Sở việc đánh Tần cứu Triệu. Viên tướng dưới quyền ông là Tạng Đồ tự mình mang quân đi hội với chư hầu, tách khỏi lực lượng của Yên vương Quảng.
Hạng Vũ đánh tan Chương Hàm ở trận Cự Lộc khiến Hàm phải đầu hàng và các chư hầu khác quy phục. Hạng Vũ cầm đầu chư hầu đi diệt Tần, tiến vào Quan Trung, Tạng Đồ đi theo.
Hạng Vũ làm Tây Sở Bá vương, đứng đầu các chư hầu, phân phong chia đất.
Đổi Yên vương Hàn Quảng làm Liêu Đông vương.
Tướng nước Yên là Tạng Đồ đã theo Sở cứu Triệu, sau đó lại theo Hạng Vũ vào Quan Trung cho nên được lập làm Yên vương, đóng đô ở đất Kế.
Tháng 4 năm 206 TCN, Tạng Đồ thụ phong trở về nước Yên, muốn đuổi Hàn Quảng đi Liêu Đông theo mệnh lệnh của Hạng Vũ nhưng Hàn Quảng không nghe, mang quân chống lại. Tạng Đồ mang quân đánh Hàn Quảng. Hàn Quảng không chống nổi, bỏ chạy về đất Vô Chung. Tạng Đồ mang quân đuổi theo. Hàn Quảng lại bị Tạng Đồ đánh bại ở Vô Chung và bị giết vào tháng 8 năm này. Yên vương Tạng Đồ chiếm luôn đất Liêu Đông của ông, sáp nhập vào nước Yên.
Hàn Quảng làm Yên vương tất cả ba năm, không rõ bao nhiêu tuổi.
Hạt nhân Linux

| --- | --- |
Chú chim cánh cụt Tux biểu tượng của Linux
Linux kernel 3.0.0 đang khởi động
Nhà phát triển: Linus Torvalds và hàng ngàn cộng tác viên
Được viết bằng: C và assembly
Họ hệ điều hành: Tương tự Unix
Phát hành lần đầu: 0.01 (17 tháng 9 năm 1991; 33 năm trước (1991-09-17))
Có hiệu lựctrong: Đa ngôn ngữ
Loại nhân: Monolithic
Giấy phép: GNU General Public License, v2 cộng với nhiều tùy chọn tự do phân phối các gói nhị phân
Nhân Linux hay Linux kernel là một hạt nhân monolithic cho các hệ điều hành tương tự Unix. Họ hệ điều hành Linux dựa trên hạt nhân này và được triển khai trên cả hai hệ thống máy tính truyền thống là máy tính cá nhân và máy chủ, thường dưới dạng bản phân phối Linux, và trên các thiết bị nhúng khác nhau như router, điểm truy cập không dây, PBX, set-top box, máy thu FTA, smart TV, PVR và thiết bị NAS. Hệ điều hành Android cho máy tính bảng, điện thoại thông minh và đồng hồ thông minh sử dụng các dịch vụ do hạt nhân Linux cung cấp để thực hiện chức năng của nó. Trong khi thị phần trên desktop thấp, các hệ điều hành dựa trên Linux chiếm ưu thế gần như mọi phân đoạn máy tính khác, từ thiết bị di động đến máy tính lớn. 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.
Nhân Linux được viết bởi Linus Torvalds vào năm 1991 cho máy tính cá nhân của mình và không có ý định đa nền tảng, nhưng sau đó nó đã mở rộng hỗ trợ số lượng nền tảng kiến trúc máy tính khổng lồ. Linux nhanh chóng thu hút các nhà phát triển và người dùng sử dụng nó làm hạt nhân cho các dự án phần mềm tự do khác, đáng chú ý là Hệ điều hành GNU được tạo ra như một hệ điều hành tự do, không độc quyền và dựa trên UNIX như một sản phẩm phụ của sự sụp đổ của các cuộc chiến Unix. Nhân Linux đã nhận được sự đóng góp của gần 12.000 lập trình viên từ hơn 1.200 công ty, bao gồm một số nhà cung cấp phần mềm và phần cứng lớn nhất.
Linux kernel API, một API thông qua đó các chương trình người dùng tương tác với hạt nhân, nó có ý nghĩa làm ổn định và không phá vỡ các chương trình không gian người dùng (một số chương trình có giao diện đồ họa người dùng GUI, số khác cũng dựa vào các API khác). Là một phần của chức năng của kernel, trình điều khiển thiết bị điều khiển phần cứng; Trình điều khiển "mainlined" (bên trong kernel) cũng có nghĩa là rất ổn định. Tuy nhiên, giao diện giữa các mô-đun hạt nhân và hạt nhân có thể tải (LKMs), không giống như trong nhiều hạt nhân và hệ điều hành khác, không có nghĩa là rất ổn định theo thiết kế.
Hạt nhân Linux được phát triển bởi những người đóng góp trên toàn thế giới, là một ví dụ nổi bật về phần mềm tự do nguồn mở, và nó được hỗ trợ lên đến sáu năm tùy theo phiên bản. Các cuộc thảo luận phát triển hàng ngày diễn ra trên Linux kernel mailing list (LKML). Hạt nhân Linux được phát hành theo Giấy phép Công cộng GNU phiên bản 2 (GPLv2) với một số firmware được phát hành theo nhiều giấy phép không miễn phí.
Lịch sử > Phổ biến

Các bản phân phối Linux đóng gói nhân Linux với các ứng dụng, chương trình và gói ứng dụng Unix chịu trách nhiệm cho sự phổ biến ngày càng tăng của hệ điều hành Linux với người dùng. Sự phổ biến của hệ điều hành Android, bao gồm nhân Linux, đã khiến hạt nhân này 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 cơ sở được cài đặt của tất cả các hệ điều hành khác.
Nhiều bộ định tuyến cũng sử dụng nhân Linux, cũng như nhiều loại thiết bị nhúng khác, chẳng hạn như smart TVs, set-top boxes, và webcams. Nhiều bản phân phối Linux trên máy tính để bàn bao gồm cả nhân Linux tồn tại, nhưng tỷ lệ sử dụng của các 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.
Kiến trúc > Giao diện

Bài chi tiết: Giao diện nhân Linux
Xem thêm: POSIX, Single UNIX Specification, và Lời gọi hệ thống
Linux là một hệ điều hành giống UNIX, và nhắm tới việc tương thích với POSIX và Single UNIX Specification. Ngoài ra nó còn cung cấp các lời gọi hệ thống và giao diện khác của riêng mình. Một đoạn mã muốn được thêm vào kernel chính thức phải tuân theo một số quy tắc về việc cấp phép.
Giao diện nhị phân ứng dụng (ABI) của Linux nằm giữa kernel và không gian người dùng (user space) có bốn mức độ ổn định (ổn định, testing, lỗi thời và bị xóa bỏ), tuy nhiên các lời gọi hệ thống không bao giờ được phép thay đổi vì điều đó có thể làm hỏng các chương trình user space sử dụng chúng.
Các Loadable kernel module (LKM) được thiết kế không thể phụ thuộc vào một ABI ổn định. Do đo chúng phải luôn được biên dịch lại mỗi khi có một kernel mới được cài đặt vào hệ thống, nếu không sẽ không tải được chúng. Các driver đã có sẵn như là một phần trọng yếu trong tập tin thực thi của kernel (gọi là vmlinux) được liên kết tĩnh trong quá trình biên dịch.
Ngoài ra không có sự đảm bảo nào về tính ổn định của các API trong kernel, vì vậy mã nguồn của driver cũng như các hệ thống trong kernel phải được cập nhật thường xuyên. Bất kỳ lập trình viên nào thay đổi một API cũng được yêu cầu phải sửa tất cả các code bị ảnh hưởng.
Kiến trúc > Giao diện > API giữa kernel và người dùng

Tập hợp API của kernel liên quan đến giao diện viết cho ứng dụng người dùng, về cơ bản, bao gồm các lời gọi hệ thống của UNIX và các lời gọi của riêng Linux. Một lời gọi hệ thống là một điểm vào bên trong kernel. Ví dụ, trong các lời gọi riêng của Linux có một họ các lời gọi là system(2). Hầu hết các mở rộng phải được bật thông qua macro _GNU_SOURCE trong một header file hoặc trong lúc biên dịch chương trình ứng dụng.
Lời gọi hệ thống chỉ được thực hiện bằng cách sử dụng các lệnh bằng hợp ngữ cho phép chuyển từ chế độ người dùng không đặc quyền lên chế độ kernel đặc quyền trong ring 0. Vì vậy, thư viện C chuẩn (libC) có tác dụng như một wrapper của các lời gọi hệ thống, trong đó các hàm C chỉ khi cần thiết mới vào bên trong kernel để thực hiện lời gọi thay cho chương trình gọi nó. Đối với các lời gọi không có trong libC, ví dụ như fast user mutex (futex), thư viện cung cấp hàm syscall(2) cho phép thực hiện thẳng lời gọi đó.
Các hệ thống file giả (ví dụ như sysfs hay procfs) và các file đặc biệt như /dev/random, /dev/sda/ hay /dev/tty, v.v là một cách trừu tượng hóa các thiểt bị phần cứng vật lý hoặc thiết bị phần mềm.
Kiến trúc > Giao diện > ABI giữa kernel và người dùng

Có sự khác biệt giữa hàng trăm hệ điều hành Linux khác nhau, do đó các tập thực thi nhị phân được biên dịch, hợp dịch (assembly) hay liên kết để chạy trên một kiến trúc máy tính (ISA) cụ thể thường không thể chạy được trên các bản phân phối Linux khác nhau. Lý do chủ yếu là cấu hình riêng của bản phân phối hay các bản vá của kernel, hoặc khác biệt trong thư viện của hệ thống, dịch vụ (daemon), hệ thống file hay biến môi trường.
Tiêu chuẩn chính liên quan đến vấn đề tương thích của các tập tin nhị phân và ứng dụng trong các bản phân phối là Linux Standard Base (LSB). Tuy nhiên LSB không chỉ đề cập đến kernel mà cả các môi trường desktop như thư viện X và Qt, những thứ không liên quan lắm đến kernel. LSB phiên bản 5 dựa trên vài tiêu chuẩn và bản dự thảo như POSIX, SUS, X/Open, File System Hierarchy (FHS), v.v.
Các thành phần phần lớn liên quan đến kernel của LSB gọi là General ABI (gABI), đặc biệt là System V ABI và Executable and Linking Format (ELF) và Processor Specific ABI (psABI), ví dụ như Core Specification for X86-64.
Tiêu chuẩn ABI để các chương trình x86_64 thực hiện lời gọi hệ thống là nạp mã số lời gọi vào thanh ghi rax và các tham số vào các thanh ghi rdi, rsi, rdx, r10, r8 và r9, sau đó thực thi lệnh (hợp ngữ) syscall.
Kiến trúc > Giao diện > API nội bộ kernel

Có vài API nội bộ được sử dụng giữa các hệ thống trong kernel. Một số chỉ truy cập được bên trong hệ thống con, ngoài ra có một tập hợp khá ít ỏi các symbol (bao gồm các biến, hàm và cấu trúc) được xuất ra cho các module có thể tải động (ví dụ, các driver được tải khi yêu cầu) bằng cách thêm vào các macro EXPORT_SYMBOL() hoặc EXPORT_SYMBOL_GPL() (được dùng riêng cho các module có giấy phép GPL).
Linux còn cung cấp các API nội bộ cho phép tương tác với các cấu trúc dữ liệu (như danh sách liên kết, cây radix, cây đỏ-đen và hàng đợi) hay thực hiện các hành động thông thường như sao chép dữ liệu trong user space, cấp phát bộ nhớ, in ra lịch trình hệ thống, v.v. được ổn định kể từ phiên bản 2.6.
Các API nội bộ bao gồm các thư viện cung cấp các dịch vụ cấp thấp cho các trình điều khiển thiết bị phải kể đến:
Giao diện SCSI: một giao thức peer-to-peer cho các thiết bị lưu trữ sử dụng USB, SATA, SAS, Fibre Channel, FireWire, ATAPI và libATA: thư viện hỗ trợ các thiết bị và máy chủ sử dụng SATA.
Direct Rendering Manager (DRM) và Kernel Mode Setting (KMS): giao diện tới GPU và hỗ trợ nhu cầu sử dụng phần cứng 3D hiện đại, và để chọn độ phân giải, màu và tốc độ refresh hiển thị.
Bộ đệm DMA (DMA-BUF): để chia sẻ bộ đệm DMA giữa các driver và các hệ thống khác.
Video4Linux dành cho việc thu lại video.
Advanced Linux Sound Architecture (ALSA) dành cho card âm thanh.
New API cho NIC.
mac80211 và cfg80211 cho các NIC không giây.
Kiến trúc > Giao diện > ABI nội bộ kernel

Các nhà phát triển Linux chọn cách không bảo trì các ABI ổn định bên trong kernel. Các module được biên dịch cho một phiên bản nhất định không thể nạp được vào phiên bản khác nếu không được biên dịch lại , cho dù mã nguồn của API nội bộ kernel không thay đổi. Nếu chúng bị thay đổi thì mã nguồn module phải được viết lại.
Phát triển > 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.[cần dẫn nguồn] 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%).
Phát triển > 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.
Phát triển > Ngôn ngữ lập trình

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 (đã giới thiệu một số phần mở rộng và thay đổi cho tiêu chuẩn C), cùng với một số phần ngắn viết bằng hợp ngữ (trong cú pháp "AT&T-style" của GCC) 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.
Phát triển > Sự tương thích với các trình biên dịch

GCC là trình biên dịch mặc định cho nguồn nhân Linux. Năm 2014, Intel ttuyên bố đã sửa đổi kernel để trình biên dịch C của họ cũng có khả năng biên dịch hạt nhân. Có một báo cáo thành công như vậy trong năm 2009, với phiên bản kernel đã được sửa đổi 2.6,22.
Từ năm 2010, nỗ lực đã được tiến hành để xây dựng nhân Linux với Clang, một trình biên dịch thay thế cho ngôn ngữ C; kể từ ngày 12 tháng 4 năm 2014, kernel chính thức gần như có thể được biên dịch bằng Clang. Dự án dành riêng cho nỗ lực này được đặt tên là LLVMLinux theo cơ sở hạ tầng trình biên dịch LLVM mà Clang được xây dựng. LLVMLinux không nhằm mục đích phân nhánh hạt nhân Linux hoặc LLVM, do đó, đây là một siêu dự án bao gồm các bản vá cuối cùng được gửi cho các dự án ngược dòng. Bằng cách cho phép nhân Linux được Clang biên dịch, trong số các ưu điểm khác, được biết đến với khả năng biên dịch nhanh hơn so với GCC, các nhà phát triển nhân có thể được hưởng lợi từ quy trình làm việc nhanh hơn do thời gian biên dịch ngắn hơn.
Phát triển > Xung đột cộng đồng phát triển

Đã có một số xung đột đáng chú ý giữa các nhà phát triển nhân Linux. Ví dụ về những xung đột đó là:
Ngày 10 tháng 7 năm 2007 Con Kolivas tuyên bố rằng ông sẽ ngừng phát triển cho nhân Linux. Thảo luận về lý do của mình trong một cuộc phỏng vấn, ông bày tỏ sự thất vọng với các khía cạnh của quy trình phát triển nhân chính, mà ông cảm thấy không ưu tiên đủ cho tương tác máy tính để bàn, ngoài việc hack gây tổn hại cho sức khỏe, công việc và gia đình.
Ngày 28 tháng 7 năm 2009, Alan Cox đã từ bỏ vai trò là người duy trì lớp TTY sau khi không đồng ý với Torvalds về phạm vi công việc cần thiết để sửa lỗi trong hệ thống con đó.
Tháng 12 năm 2010, đã có một cuộc thảo luận giữa nhà bảo trì SCSI James bottomley và nhà duy trì SCST Vladislav Bolkhovitin về việc ngăn xếp mục tiêu SCSI nào sẽ được đưa vào nhân Linux - SCST hoặc LIO. Mặc dù tại thời điểm đó SCST được coi là vượt trội về mặt kỹ thuật, LIO đã được sáp nhập ngược dòng. Điều này làm cho một số người dùng Linux buồn bã.
Vào ngày 14 tháng 6 năm 2012 Linus Torvalds đã nói rất rõ rằng ông không đồng ý với việc NVIDIA phát hành trình điều khiển của mình dưới dạng trình điều khiển nguồn đóng.
Ngày 6 tháng 10 năm 2014, Lennart Poettering đã cáo buộc Linus Torvalds dung túng kiểu thảo luận thô lỗ trong danh sách gửi thư liên quan đến nhân Linux và là một mô hình vai trò xấu.
Ngày 5 tháng 3 năm 2015, Christoph Hellwig đã đệ đơn kiện VMware vì vi phạm bản quyền trên nhân Linux. Linus Torvalds nói rõ rằng ông không đồng ý với việc này và các ý định tương tự bằng cách gọi luật sư là một bệnh hoạn.
Các nhà phát triển nhân Linux nổi bật đã nhận thức được tầm quan trọng của việc tránh xung đột giữa các nhà phát triển. Trong một thời gian dài, không có quy tắc ứng xử nào cho các nhà phát triển nhân do sự phản đối của Linus Torvalds. Tuy nhiên, một Linux Kernel Code of Conflict đã được giới thiệu vào ngày 8 tháng 3 năm 2015. Nó đã được thay thế vào ngày 16 tháng 9 năm 2018 bởi Code of Conduct dựa trên Giao ước cộng tác viên (Contributor Covenant). Điều này trùng hợp với một lời xin lỗi công khai của Linus và một thông báo rằng ông đang tạm nghỉ phát triển nhân.
Phương diện luật pháp > Đ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".
Phương diện luật pháp > Điều khoản cấp phép > 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 đó.
Phương diện luật pháp > 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.[cần dẫn nguồn] 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.