Linux内核

此条目或章节需要時常更新。有關事物或許會隨著時間而有所變化。 |
![]() | |
![]() Linux内核3.0.0启动画面 | |
开发者 | 林納斯·托瓦茲和几千名合作者 |
---|---|
编程语言 | C語言、汇编语言 |
作業系統家族 | 类Unix系统 |
首次发布 | 0.01 1991年9月17日 |
当前版本 |
|
最新預覽 | Kernel: 6.15-rc6[2](2025年5月11日 )[±] |
支持的语言 | 多语言 |
内核类别 | 單核心 |
许可证 | GPL(僅)第二版[3][4], 各類封闭固件的許可證[5][6] |
官方網站 | www.kernel.org |
仓库 |

Linux内核(英語:Linux kernel),是一种计算机操作系统内核,以C语言和汇编语言写成,符合POSIX标准,以GNU通用公共许可证釋出。Linux内核最早是由芬兰黑客林納斯·托瓦茲为尝试在自己的英特尔x86架构计算机上提供自由免费的类Unix系统而开发的。该计划开始于1991年,林納斯·托瓦茲当时在Usenet新闻组comp.os.minix
登载帖子[7],这份著名的帖子標示着Linux内核计划的正式开始。
在计划的早期有一些Minix的黑客提供了协助,而今天全球有无数程序员正在为该计划无偿提供帮助。
从技术上说Linux只是一个内核。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核并不是一套完整的操作系统。有一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux(在该系统中包含了很多GNU计划的系统组件)。
Linux内核是在GNU通用公共许可证第2版之下发布的[4](加上一些非自由固件、blob与各种非自由许可证)。貢獻者遍佈世界各地,日常开发在Linux内核邮件列表。
历史
![]() | 此章节需要扩充。 (2015年12月11日) |
法律層面
许可证
原先托瓦茲将Linux置于一个禁止任何商业行为的条例之下,但之后改用GNU通用公共许可证第二版。该协议允许任何人对软件进行修改或发行,包括商业行为,只要其遵守该协议,所有基于Linux的软件也必须以该协议的形式发表,并提供源代码。
托瓦茲曾经公开声称将Linux置于GNU通用公共许可证之下是他一生中所做的“最好的决定”。
韌體爭議
許可證爭議的一個重點是Linux使用韌體二進位包以支援某些硬體裝置。理察·馬修·斯托曼認為這些東西讓Linux某部份成為非自由軟體,甚至以此散佈Linux更會破壞GPL,因為GPL需要完全可獲取的原始碼[8]。
林纳斯·托瓦兹及Linux社群中的領導者,支持較寬鬆的許可證,不支持理察·馬修·斯托曼的立場。社群中的Linux-libre提供完整的自由軟體韌體。
GPL第三版
目前Linux使用的版本為GPL 2,2007年,自由軟體基金會發佈了GPL 3。而目前存在一些爭議,討論如何讓Linux較容易地轉成使用後繼版本的GPL,例如第三版(無論是否真的會這樣做)[9]。
2006年1月16日,GPL 3許可證第一版草案發佈。托瓦茲隨後宣布不會讓Linux內核轉換到使用GPL 3許可證[10]。托瓦茲本人認為他自己寫在版本2.4.0的程式碼僅使用版本2的GPL[11]。然而GPL這個詞並沒有明述到底它指的是哪個版本,任何版本都有可能,而艾倫·考克斯指出很多Linux套件有特別指出它們使用哪種版本的GPL[12]。
載入式核心模組許可證
另一個爭論點,就是載入式核心模組是否算是智慧財產權下的衍生創作,意即LKM是否也受GPL約束?托瓦茲本人相信LKM僅用一部分「公開」的核心介面,因此不算衍生創作,因此允許一些僅有二進位包裹的驅動程式或不以GPL宣告的驅動程式用於核心。但也不是每個人都如此同意,且托瓦茲也同意很多LKM的確是純粹的衍生創作,也寫下「基本上,核心模組是衍生創作」這樣的句子。另一方面托瓦茲也說過:
有時候一些驅動程式原先並非為Linux設計,而是為其他作業系統而作(意即並非為Linux作的衍生創作),這是個灰色地帶……這「的確」是個灰色地帶,而我個人相信一些模組可視為非Linux衍生創作,是針對Linux設計,也因此不會遵守Linux訂下的行為準則。[13]
特別像繪圖卡驅動程式就有非常大的爭議,也許到最後得由立法機關給個答案。
SCO爭議
在2003年3月,SCO Group對IBM提告,聲稱IBM將一些在SCO智慧財產權許可證保護下的Unix原始碼植入Linux中,破壞了SCO給予IBM的原始碼使用許可權。另外SCO也發出一大堆存證函給許多公司,警告他們在沒有SCO許可權的情況下使用了Linux,此舉可能導致侵犯智慧財產權,並且以起訴為手段對個別使用者施壓。SCO也同時對Novell、戴姆勒克萊斯勒(DaimlerChrysler,在2004年7月被部份駁回)以及AutoZone提出告訴,且被Red Hat與其他反對SCO論點的公司反告。
技术特性
架构


Linux是一个宏内核,设备驱动程序可以完全访问硬件。Linux内的设备驱动程序可以方便地以模块化(modularize)的形式设置,并在系统运行期间可直接装载或卸载。
塔能鮑姆-林納斯辯論
Linux不是微内核架构的事实曾经引起了林納斯·托瓦茲与安德鲁·斯图尔特·塔能鲍姆之间一场著名的争论。1992年在Usenet討論群組comp.os.minix[14]開始了一場網路論戰,討論的主題在於作業系統架構的選擇。稍後一些著名的駭客也加入討論,如大衛·米勒、曹子德。這場辯論影響了Linux核心的設計走向。塔能鲍姆認為Linux内核採用的整塊性核心已經過時了,應該採取比較先進的微內核架構,引起了林納斯的反擊。
在2006年5月9日,这个主题被重新审视[15],并且在2006年5月12日塔能鲍姆写了一份立场声明。[16]
抢占式调度系统
- 每个任务赋予唯一的一个优先级(有些操作系统可以动态地改变任务的优先级);
- 假如有几个任务同时处于就绪状态,优先级最高的那个将被运行;
- 只要有一个优先级更高的任务就绪,它就可以中断当前优先级较低的任务的执行;
可移植性


尽管林納斯·托瓦茲的初衷不是使Linux成为一个可移植的操作系统,今天的Linux却是全球被最广泛移植的操作系统内核。從行動電話到超級電腦,甚至於有人成功的將Linux内核在索尼出品的遊戲機PS2及PS3和微軟出品的遊戲機Xbox上使用。Linux也是IBM超级计算机Blue Gene的操作系统。直至2011年11月,全球前五百大超級電腦(TOP500)有高達91.4%的比例採用Linux為它們的作業系統[17]。一些为手机开发的操作系统,使用Linux内核的修改后的版本,其中包括谷歌Android、Firefox OS、HP WebOS和诺基亚Maemo。[18][19][20]
内核错误

在Linux中,内核错误(Kernel panic)是指操作系统在监测到内核系统内部无法恢复的错误,相对于在用户空间代码类似的错误。操作系统试图读写无效或不允许的内存地址是导致内核错误的一个常见原因。内核错误也有可能在遇到硬件错误或操作系统BUG时发生。在许多情况中,操作系统可以在内存访问违例发生时继续运行。然而,系统处于不稳定状态时,操作系统通常会停止工作以避免造成破坏安全和数据损坏的风险,并提供错误的诊断信息。
内核oops
在Linux上,oops即Linux内核的行为不正确,并产生了一份相关的错误日志。许多类型的oops会导致内核错误,即令系统立即停止工作,但部分oops也允许继续操作,作为与稳定性的妥协。这个概念只代表一个简单的错误。
当内核检测到问题时,它会打印一个oops信息然后杀死全部相关进程。oops信息可以帮助Linux内核工程师调试,检测oops出现的条件,并修复导致oops的程序错误。
Linux官方内核文档中提到的oops信息被放在内核源代码Documentation/oops-tracing.txt
中[21]。通常klogd
是用来将oops信息从内核缓存中提取出来的,然而,在某些系统上,例如最近的Debian发行版中,rsyslogd
代替了klogd
,因此,缺少klogd
进程并不能说明log文件中缺少oops信息的原因。
若系统遇到了oops,一些内部资源可能不再可用。即使系统看起来工作正常,非预期的副作用可能导致活动进程被终止。内核oops常常导致内核错误,若系统试图使用被禁用的资源。
Kerneloops提到了一种用于收集和提交oops到http://www.kerneloops.org/ 的软件[22]。Kerneloops.org同时也提供oops的统计信息[23]。
編寫語言
Linux是用C語言中的GCC版(這種C語言有對標準C進行擴展)寫的,還有幾個用組合語言(用的是GCC的"AT&T風格")寫的目標構架短段。因為要支持擴展的C語言,GCC在很長的時間里是唯一一个能正确编译Linux的编译器。在2004年,Intel主张通过修改内核,以便它的编译器能正确编译内核。[24]在2009年,有通过修改内核2.6.22版而成功编译的报告(並帶來平均8-9%效能增長)。[25][26] 有許多其他的語言用在一些方面上,主要集中在內核構建過程中(這裡指從源代碼創建可啟動鏡像)。包括Perl,Python,和多種腳本語言。有一些驅動可能是用C++,Fortran,或其他語言寫的,但是這樣是強烈不建議的。 Linux的官方構建系統僅僅支持GCC作為其內核和驅動的編譯器。
重新开发的估价
按照传统商业软件开发的方式,重新开发Linux 2.6.0内核的估计代价将是6.12亿美元(4.67亿欧元、3.94亿英镑),以2004年的COCOMO人月估计模型.[27]在2006年,欧盟资助的一项研究表明,重新开发Linux 2.6.8以后的内核,代价是8.82亿欧元(11.4亿美元、7.44亿英镑)[28]。
截至2011年1月4日,使用当前的代码行(LOC)和大卫·惠勒的计算工资数,这将花费约30亿美元(约22亿欧元),才能够重新开发的Linux内核。[29]
安全
计算机安全是一个非常公众化的主题,关系到Linux内核,因为大量在内核中的错误可能成为潜在的安全漏洞,是否允许提升权限漏洞或拒绝服务攻击源漏洞。[30]在过去的几年中,许多这样的缺陷被发现,并在Linux内核中被修补好。新的安全功能被继续实现,以解决在Linux内核中的电脑不安全问题。[31][32]
批評者指責內核開發人員,稱他們掩蓋(至少並未公佈)安全漏洞。2008年,作為回應,Torvalds稱:「個人認為,安全漏洞只是『正常的漏洞』。這些漏洞我並不去掩蓋,不過我不認為應當把它們特殊化,更不認為應該追蹤並公示它們……我不理會整個安全團隊,原因之一就是,我認為這些漏洞不僅美化還鼓勵了錯誤的行為。這令安全人員成了『英雄』,就猶如不修補正常漏洞的人就不值一提似的。而事實上,所有無聊的正常漏洞極為重要,僅僅因為它們實在太多了。我不認為該美化和關心那些嚴重的安全漏洞——它們並不及那些由死鎖造成的隨機嚴重崩潰來得更特殊。」[33][34]
如2012年五月,SYSRET指令被發現在AMD和英特爾處理器間在實現方面有差異,這個差異在Windows、FreeBSD、XenServer和Solaris這些主流作業系統會導致漏洞。2012年六月,Linux核心中該問題已被修復。[35]
开發
時間線
來源:kernel.org[36]
开发模式
![]() |
Linux内核目前的开发模式是Linus Torvalds制作的新版本的发布,也被称为“vanilla”或“mainline”的内核,这意味着它们包含了主要的,通用的开发分支。在托瓦尔兹进行初始一轮整合由所有其他程序员,几个回合的bug修正预发布版的主要变化之后,这个分支大约每3个月正式发布一个新的版本。
特性历史
1.0版本
有176,250字串。[37]此版本的Linux内核只支持单处理器基于i386的计算机系统,可移植性成为一个问题。随后1.2版(310,950字串)[38]支持多种计算机架构例如Alpha、SPARC、MIPS处理器。
3.0版本
托瓦兹宣布,大的变化是,“没有,绝对没有。”[39]2011年5月30日,托瓦兹宣布,“让我们确保我们真正的下一个版本不只是一个全新的闪亮的数字,而是有一个好的内核。”3.0的发布日接近Linux的20周年纪念日。
3.5版本
- CoDel队列管理算法
- seccomp filters
- 沙盒机制
- Android风格的自动休眠和唤醒锁机制
- 用户空间探测子系统uprobes
- TCP连接修复
- 减少重复确认加快转发的TCP Early Retransmit
- 连续性内存分配器
- kcmp ()系统调用
- ext4文件系统加入元数据校验和
- 改进Btrfs
3.6版本
- 客户端TCP Fast Open实现
3.7版本
- 改进开源显卡驱动程序,包括:Nvidia, Intel and Radeon.
- 通过Xen hypervisor实现对ARM Cortex-A15的硬件虚拟化支持
- 继续改进BTRFS文件系统
- TCP Fast open
3.8版本
- CPU热插拔支持;
- 改进ACPI电源管理;
- 改善XFS文件系统;
- 支持64位ARMv8/AArch64;
- 放弃支持旧的i386处理器,减少内核复杂度;
- Video 4 Linux 2驱动支持DMA-BUF;
- 在某些工作负荷下减少物理内存占用;
- 支持微软Windows 8多重触摸协议;
- 音频驱动改进;
- 加密性能改进;
- 支持下一代IBM POWER8处理器(2013年发布)
- XFS文件系统的元数据完整性检查
- 提升了NUMA调度
- 核心内存使用审计和关联使用率限制
- EXT4文件系统的inline data support
- 近乎完全支持user namespace等待
3.9版本
- 繼續完善F2FS檔案系统
- 省電功能改進
- 改善ARM處理器支援
- 音效、音訊重大更新
- Google Goldfish Android模擬器原始碼
- DRM顯示卡驅動改善
- 硬體支援改善
3.10版本
- 完整支持DynTicks(动态定时器),并成为内核级别的核心特性。
- KVM虚拟化改进。
- 音频/声音驱动更新。
- ARM架构支持改进,包括更好地支持64位架构。
- 大量的Linux加密子系统优化。
- AMD电源管理改进。
- 分阶段驱动(Staging Drivers)改进与新举措。
- BCache固态硬盘/机械硬盘缓存框架已经可用,使用两种硬盘的系统将会大大提速。
- eCryptfs AES-NI性能改进,支持AES指令集的AMD/Intel x86处理器将会大大提速。
- Btrfs文件系统支持skinny extent,quota也进行了一些重建。
- F2FS闪存文件系统重大改进。
- XFS额外保护。
- DRM驱动多方面改进。
- Radeon DRM驱动支持golden registers、UVD视频解码、RadeonSI tiling。
- 引入QXL KMS驱动。
3.11版本
- 支持LZ4压缩,LZ4压缩和解压缩速度快于LZO、Snappy和zlib,目前只支持ARM架构,在ARMv7 1.5GHz硬件上它的压缩速度能达到45.6MB/s,相比之下LZO是25.2 MB/s
- 轻量级压缩交换缓存Zswap
- 例行的Btrfs和XFS文件系统bug修正和性能改进,F2FS修正了Linux 3.10中发现的一个性能退化bug,首次加入高性能并行分布式文件系统Lustre
- 动态电源管理支持从Radeon HD 2000到Radeon HD 7000系列的GPU
- KVM和Xen虚拟化支持64位硬件(AArch64)
3.12版本
- 優化了CPU頻率管理器,更有效的實現動態調頻功能,間接提昇了部分開源和閉源驅動的性能。
- 進一步改善了Radeon開源驅動的動態電源管理。
- 增加了逆向工程出來的Snapdragon/Adreno顯卡驅動。
- 支援AMD首個異構計算的Berlin系列伺服器APU。
- 小幅改善了F2FS、XFS和Btrfs文件系統。
- ext4檔案系統加入兩個新功能:支持主動extent緩存,減少主讀工作負荷的記憶體使用,改進非同步I/O。
- 改進英特爾Haswell圖形性能。
- 支援NVIDIA Optimus顯示技術的動態GPU電源管理,雙顯卡筆記本可以動態的關閉或啟用第二個GPU。
3.13版本
- 多佇列塊層允許I/O負載在多CPU核心中均衡,延展性更好,減少磁碟延遲,提供更好的磁碟效能。
- 支援英特爾Broadwell和AMD Radeon R9 waii的新驅動。
- 防火牆子系統/包過濾引擎nftables取代iptables。
- 提供了一個更簡單的核心ABI,減少重複程式碼,更有效的支援過濾規則。
- 開源NVIDIA驅動加入新的電源管理程式碼。
- 改進AMD HDMI音訊功能。
- 英特爾硬體支援立體/3D HDMI裝置。
- Btrfs和F2FS檔案系統改進。
- Linux功率限制框架和即時平均功率限制驅動程式將允許在超出定義臨界值時限制某些元件的功耗。
3.14版本
- 開源NVIDIA驅動支援更多NVIDIA顯示卡。
- 英特爾Broadwell的顯示晶片及音訊系統獲得更好的支援。
- VMware SVGA2顯示驅動程式重大變更。
- NVIDIA Tegra初步支援PRIME。
- 開源AMD驅動部份裝置支援改進。
- 經由新的驅動程式支援AMD加密協作處理器。
- 通用CPU加速。
- F2FS及BTRFS檔案系統改進。
- 新增Xen的PVH支援。
- 加入Deadline調度器。
- 支援MIPS最新的CPU核心支援。
- 加入TCP自動抑制功能。
3.15版本
- 支援EFI混合模式,可以在32位元的UEFI上執行64位元的核心。
- 啟用異步執行緒來加快暫停及恢復的時間。
- 開源驅動對新一代的NVIDIA Maxwell顯示卡的初步支援,以及對近期的AMD顯示卡的VEC 2.0視訊解碼支援。
- CPU前端的AVX-512及RDSEED擴充支援。
- 支援Sony DualShock 4控制器。
- LLVM近乎完全支援編譯主線核心。
3.16版本
- 部份支援64位元ARM架構的EFI。
- Samsung的Exynos多平臺核心支援。
- 改進ARM的Xen虛擬化支援。
- 支援Dell Latitude掉落感應器。
- 新的Synaptics觸控版驅動程式。
- 改進對Sony DualShock 4的支援。
- 大量音效卡驅動程式更新。
- Btrfs及XFS檔案系統的重大更新。
3.17版本
- 開源AMD驅動改進。
- 英特爾顯示晶片驅動程式改進。
- Nvidia顯示卡驅動程式重大改進。
- 新的DRM驅動程式。
- 移除許多舊的或不再維護的驅動程式。
- 增加了英特爾Braswell音效驅動程式。
- 對Wacom繪圖板更好的支援。
- 新增許多ARM硬體支援。
- 支援東芝筆記型電腦掉落感應器。
- x86上的KVM改進。
- F2FS改進。
- XFS有了sysfs介面。
3.18版本
- Nouveau支援從DisplayPort輸出音訊。
- 許多新的多媒體驅動程式。
- Wacom繪圖板支援改進。
- 在64位元ARM架構上的PCI支援。
- 在大型伺服器上更快的暫停及恢復速度。
- 郵件信箱框架進入主線代碼。
- ACPI及電源管理改進。
3.19版本
- 對Intel下一代的Skylake架構的顯示晶片的初步啟用。
- 對Nvidia GeForce 900系列的基本支援。
- 在Btrfs檔案系統上對於RAID 5及RAID 6的改進。
- 對多點觸控的支援改進。
4.0版本
- Skylake架構處理更好的支援。
- 支援Intel的Quark單晶片。
- 改進對PS3的支援。
- 對Btrfs、F2FS、pNFS等多個檔案系統支援改進。
- AMD Radeon驅動程式開始支援DisplayPort音源。
4.1版本
4.2版本
4.3版本
- 預設啟用Intel Skylake的顯示晶片支援。
- 許多檔案系統方面的修正。
4.4版本
4.5版本
4.6版本
4.7版本
- 支援AMD RX480。
- 全新的安全模塊LoadPin。
- 支援製作USB/IP協議的虛擬USB設備控制器。
- 支援在Linux下更新UEFI韌體。
- 新增schedutil頻率控制器,CPUFreq動態頻率縮放子系統速度更快、更精準。
4.8版本
- tmpfs文件系统支援透明大暫存頁。
- 新的Formatted Kernel Documentation。[40]
- 解決延遲問題的Timer Wheel。[41]
- 改進高性能網路路由。[42]
- 建立核心時允許使用GCC plugins。[43]
- 加強使用者複製。[44]
- AMD GPU驅動支援超頻,改進PowerPlay。
- 初步支援NVIDIA Pascal顯卡。
- 支援Raspberry Pi 3的BCM2837 SoC。
- 支援ACPI Low-Power Idle。
- 支援Microsoft Surface 3觸控螢幕。
4.9版本
- 2/3程式碼翻新。
- 新增Greybus硬體協定[45]。
- 新增Vmapped kernel stacks機制[45]。
- 支援Memory Protection Key機制[45]。
- 新增XFS共享式資料延伸功能[45]。
- 為AMDGPU提供虛擬螢幕支援,更好的AMDGPU GPU重置支持,並對這個現代AMD GCN驅動程序進行了其他變化[46]。
- AMDGPU還有試驗性的Southern Islands支持(GCN 1.0),作為Radeon DRM中現有支持之外的一種選擇[46]。
- 對英特爾DRM作了各種修補和改進,最顯著的變化之一就是DMA-BUF隱式圍欄(implicit fencing)[46]。
- 3D渲染期間,為Raspberry Pi VC4驅動程序減少GPU和記憶體方面的使用[46]。
- CPUFreq驅動程序繼續更充分地使用調度程序的信息[46]。
- 內存保護密鑰(MPK)支持。
- NVDIMM支持方面的更新。
- F2FS性能方面的改進。
- 支援OverlayFS SELinux。
- 支援另外29種ARM機器,包括Raspberry Pi Zero、LG Nexus 5及其他知名的移動/嵌入式硬體[46]。
- 支持Mellanox平台[46]。
- 內核線程(Kthread)方面的改進。
- BBR congestion control[47]。
- System calls for memory protection keys[48]。
- 2017/01/19 確認為長期支援版本[49]。
4.10版本[50]
- 支援虛擬GPU。
- 支援 Intel CPU L2/L3 Cache。
- 優化對 EXT4、F2FS、XFS、OverlayFS、NFS、CIFS、UBIFS、BEFS 和 LOGFS 檔案系統的支援。
- 針對 AMD Radeon GPU 驅動進行強化。
- 全新的「perfc2c」工具。
維護
內核 | 初始发行日期 | 當前版本 | 維護者 | 支援 |
---|---|---|---|---|
2.0 | 1996年6月9日 | 2.0.40[51] | David Weinehall | EOL(已不再支援) |
2.2 | 1999年1月26日 | 2.2.27-rc2[52] | Marc-Christian Petersen(前維護者艾倫·考克斯) | EOL(已不再支援) |
2.4 | 2001年1月4日 | 2.4.37.11[53] | Willy Tarreau(前維護者Marcelo Tosatti) | EOL(已不再支援) |
2.6.16 | 2006年3月20日 | 2.6.16.62[54] | Adrian Bunk(前維護者葛雷格·克羅哈曼) | EOL(已不再支援) |
2.6.27 | 2008年10月9日 | 2.6.27.62 | 葛雷格·克羅哈曼[55] | EOL(已不再支援) |
2.6.32 | 2009年12月3日 | 2.6.32.71[56] | Willy Tarreau(前維護者葛雷格·克羅哈曼) | EOL,长期支持版本,由2009年12月3日至2016年3月 |
2.6.34 | 2010年5月16日 | 2.6.34.15[57] | Paul Gortmaker(前維護者Andi Kleen) | EOL,长期支持版本,從2010年6月至2014年2月 |
2.6.39 | 2011年5月19日 | 2.6.39.4 | 林納斯·托瓦茲 | EOL,2.6核心系列最後穩定版。 |
3.0 | 2011年7月22日 | 3.0.101 | 葛雷格·克羅哈曼 | EOL,长期支持版本,從2011年7月至2013年10月 |
3.2 | 2012年1月5日 | 3.2.88 | Ben Hutchings | 长期支持版本,從2011年12月至2018年5月 |
3.4 | 2012年5月21日 | 3.4.113 | Li Zefan(前維護者葛雷格·克羅哈曼) | 长期支持版本,從2012年5月至2017年4月 |
3.5 | 2012年7月21日 | 3.5.7 | 葛雷格·克羅哈曼 | EOL |
3.6 | 2012年10月1日 | 3.6.11 | 葛雷格·克羅哈曼 | EOL |
3.7 | 2012年12月11日 | 3.7.10 | 葛雷格·克羅哈曼 | EOL |
3.8 | 2013年2月19日 | 3.8.13 | 葛雷格·克羅哈曼 | EOL |
3.9 | 2013年4月29日[58] | 3.9.11 | 葛雷格·克羅哈曼 | EOL |
3.10 | 2013年6月30日 | 3.10.105 | Willy Tarreau | 长期支持版本,從2013年6月至2017年10月 |
3.11 | 2013年9月2日 | 3.11.10 | 葛雷格·克羅哈曼 | EOL |
3.12 | 2013年11月3日 | 3.12.73 | Jiri Slaby(前維護者葛雷格·克羅哈曼) | 长期支持版本,從2013年11月至2017年5月 |
3.13 | 2014年1月20日 | 3.13.11 | 葛雷格·克羅哈曼 | EOL |
3.14 | 2014年3月31日 | 3.14.79 | 葛雷格·克羅哈曼 | EOL,长期支持版本,從2014年3月至2016年8月 |
3.15 | 2014年6月8日 | 3.15.10 | 葛雷格·克羅哈曼 | EOL |
3.16 | 2014年8月3日 | 3.16.43 | Ben Hutchings | 长期支持版本,從2014年8月至2020年4月 |
3.17 | 2014年10月5日 | 3.17.8 | 葛雷格·克羅哈曼 | EOL |
3.18 | 2014年12月7日 | 3.18.50 | Sasha Levin | EOL,长期支持版本,從2014年12月至2017年1月 |
3.19 | 2015年2月9日 | 3.19.8 | 葛雷格·克羅哈曼 | EOL |
4.0 | 2015年4月12日 | 4.0.9 | 葛雷格·克羅哈曼 | EOL |
4.1 | 2015年6月22日 | 4.1.39 | 葛雷格·克羅哈曼 | 长期支持版本,從2015年6月至2017年9月 |
4.2 | 2015年8月30日 | 4.2.8 | 葛雷格·克羅哈曼 | EOL |
4.3 | 2015年11月2日 | 4.3.6 | 葛雷格·克羅哈曼 | EOL |
4.4 | 2016年1月10日 | 4.4.63 | 葛雷格·克羅哈曼 | 长期支持版本,從2016年1月至2018年2月 |
4.5 | 2016年3月14日 | 4.5.7 | 葛雷格·克羅哈曼 | EOL |
4.6 | 2016年5月15日 | 4.6.7 | 葛雷格·克羅哈曼 | EOL |
4.7 | 2016年7月24日 | 4.7.10 | 葛雷格·克羅哈曼 | EOL |
4.8 | 2016年10月2日 | 4.8.17 | 葛雷格·克羅哈曼 | EOL |
4.9 | 2016年12月11日 | 4.9.24 | 葛雷格·克羅哈曼 | 长期支持版本,從2016年12月至2019年1月 |
4.10 | 2017年2月19日 | 4.10.12 | 葛雷格·克羅哈曼 | 最新的穩定版本 |
4.11 | 4.11-rc8 | 林納斯·托瓦茲 | 最新的測試版本 | |
linux-next | next-20170424 | 開發版本 |
其它Linux核心程序的維護者還包括:
版本命名
Linux内核有三个不同的命名方案。
早期版本:
从0.95版有许多的补丁发布於主要版本版本之间。
旧计划(1.0和2.6版之间),版本的格式為A.B.C,其中A,B,C代表:
- A大幅度转变的内核。这是很少发生变化,只有当发生重大变化的代码和核心发生才会发生。在历史上曾改变两次的内核:1994年的1.0及1996年的2.0。
- B是指一些重大修改的内核。
- 内核使用了传统的奇数次要版本号码的软件号码系统(用偶数的次要版本号码来表示稳定版本)。
- C是指轻微修订的内核。这个数字当有安全补丁,bug修复,新的功能或驱动程序,内核便会有变化。
自2.6.0(2003年12月)发布後,人们认识到,更短的发布周期将是有益的。自那时起,版本的格式為A.B.C.D,其中A,B,C,D代表:
- A和B是无关緊要的
- C是内核的版本
- D是安全补丁
自3.0(2011年7月)发布后,版本的格式為3.A.B,其中A,B代表:
- A是内核的版本
- B是安全补丁
而4.0(2015年4月)釋出後,則延續3.A.B的命名格式,只是將主版號變更為4。
参考文献
- ^ 葛雷格·克羅哈曼. Linux 6.15.1. 2025年6月4日 [2025年6月5日].
- ^ Torvalds, Linus. Linux 6.15-rc6. LKML (邮件列表). 2025-05-11 [2025-05-11].
- ^ InfoWorld. Linux creator Torvalds still no fan of GPLv3. [2008-10-11].
- ^ 4.0 4.1 COPYING
- ^ Stallman, Richard. Linux, GNU, and freedom. Free Software Foundation. 2002 [2007-02-21].
- ^ linux/kernel/git/stable/linux-stable.git/blob - firmware/WHENCE. git.kernel.org. 2002-10-16 [2012-08-21].
- ^ What would you like to see most in minix?. Linus Benedict Torvalds. 1991-08-26 [2010-12-21].
- ^ http://www.gnu.org/philosophy/linux-gnu-freedom.html
- ^ http://lwn.net/Articles/169797/
- ^ Stephen Shankland. Torvalds: No GPL 3 for Linux. CNet. 2006-01-26 [2014年1月28日] (英语).
- ^ http://www.uwsg.iu.edu/hypermail/linux/kernel/0009.1/0096.html
- ^ http://lwn.net/Articles/169831/
- ^ http://www.ussg.iu.edu/hypermail/linux/kernel/0312.0/0670.html
- ^ A. S. Tanenbaum. LINUX is obsolete. Newsgroup: comp.os.minix. January 29, 1992 [2006-11-27]. 12595@star.cs.vu.nl.
- ^ Torvalds, Linus. Hybrid kernel, not NT. 9 May 2006 [2007-01-06].
- ^ Tanenbaum, Andy. Tanenbaum-Torvalds Debate: Part II. 12 May 2006 [2007-01-06].
- ^ TOP500 Statistics. Top500. [2012-04-26].
- ^ Greg Kroah-Hartman. Android and the Linux kernel community. 2010-02-02 [2010-02-03].
This means that any drivers written for Android hardware platforms, can not get merged into the main kernel tree because they have dependencies on code that only lives in Google's kernel tree, causing it to fail to build in the kernel.org tree. Because of this, Google has now prevented a large chunk of hardware drivers and platform code from ever getting merged into the main kernel tree. Effectively creating a kernel branch that a number of different vendors are now relying on.
- ^ Linux developer explains Android kernel code removal. ZDNet. 2010-02-02 [2010-02-03].
- ^ Maemo platform described as being based on Linux kernel. Maemo community. 2010-04-09 [2010-04-09].
- ^ http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.27.y.git;a=blob;f=Documentation/oops-tracing.txt;h=b152e81da5923e5150de6ba6a67d6ec37219ca43;hb=HEAD
- ^ http://linux.die.net/man/8/kerneloops
- ^ http://www.kerneloops.org/
- ^ Ingo A. Kubbilun. Linux kernel patch for Intel Compiler. Pyrillion.org. 2004-06-02 [2010-11-12].
- ^ Slashdot. Linux.slashdot.org. [2010-10-30]. 已忽略文本“ High Performance Linux Kernel Project—LinuxDNA ” (帮助)
- ^ LinuxDNA Supercharges Linux with the Intel C/C++ Compiler. Linux Journal. [2010-10-30].
- ^ David A. Wheeler. Linux Kernel 2.6: It's Worth More!.
- ^ Economic impact of FLOSS on innovation and competitiveness of the EU ICT sector, Table 3 on page 50.
- ^ Wheeler, David. The Linux Kernel: It’s Worth More!. [17 September 2012].
- ^ K.K. Mookhey, Nilesh Burghate and ISACA. Linux-- Security, Audit and Control Features. ISACA. 2005: 14. ISBN 1-893209-78-4.
- ^ Brian Hatch. Hacking exposed Linux: Linux security secrets & solutions. McGraw Hill Professional. 2008: 524. ISBN 0-07-226257-5.
- ^ Trent Jaeger. Operating system security. Morgan & Claypool Publishers. 2008: 122. ISBN 1-59829-212-9.
- ^ Jeremy Andrews. Security Bugs and Full Disclosure. 2008-07-16 [2010-12-31]. (原始内容存档于2012-07-10).
- ^ Brad Spengler. Linux's unofficial security-through-coverup policy. Full-Disclosure (邮件列表). 2008-07-16 [2010-12-31].
- ^ The Intel SYSRET privilege escalation –. Blog.xen.org. 2012-06-13 [2012-07-26].
- ^ Index of /pub/linux/kernel. Kernel.org. [2012-03-12].
- ^ Kernel 1.0 Source Code Release(last checked 2008-10-27)
- ^ Kernel 1.2 Source Code Release(last checked 2008-10-27)
- ^ Linux 3.0-rc1, Linus Torvalds, 30 May 2011, accessed 31 May 2011
- ^ Kernel documentation with Sphinx, part 1: how we got here
- ^ Reinventing the timer wheel
- ^ Early packet drop — and more — with BPF
- ^ Kernel building with GCC plugins
- ^ Hardened usercopy
- ^ 45.0 45.1 45.2 45.3 Linux核心4.9出爐,Linus保證史上最大改版!. iThome. [2017-02-05] (中文(繁體)).
- ^ 46.0 46.1 46.2 46.3 46.4 46.5 46.6 Linux 4.9內核那些激動人心的功能. [2017-02-05] (中文(臺灣)).
- ^ BBR congestion control [LWN.net]. lwn.net. [2017-02-05].
- ^ System calls for memory protection keys [LWN.net]. lwn.net. [2017-02-05].
- ^ Yes, 4.9 is the next longterm kernel. I've been saying that for a while, but .... [2017-02-05] (中文).
- ^ cnBeta. Linux Kernel 4.10正式发布_Linux_cnBeta.COM. www.cnbeta.com. [2017-02-23].
- ^ David Weinehall. [ANNOUNCE] Linux-kernel 2.0.40 aka ``The Moss-covered Tortoise. 2004-02-08. (原始内容存档于2012-05-30).
- ^ Marc-Christian Petersen. Linux 2.2.27-rc2. 2005-01-13. (原始内容存档于2012-05-30).
- ^ Willy Tarreau. Linux 2.4.37.7. linux-kernel (邮件列表). 2009-07-26.
- ^ Adrian Bunk. Linux 2.6.16.62. linux-kernel (邮件列表). 2008-07-21.
- ^ Greg Kroah-Hartman. Re: 2.6.27 maintenance plans after 2.6.32 is released. linux-kernel (邮件列表). 2009-09-08.
- ^ Greg Kroah-Hartman. Linux 2.6.32.71. linux-kernel (邮件列表). 2015-09-18.
- ^ http://kernel.org/
- ^ Torvalds, Linus. Linux 3.9 released. Linux kernel mailing list. 28 May 2013 [12 May 2013].
- ^ Linux Kernel Archives - Volume 1(Riley Williams)
外部連結

- (英文)Linux内核官方下载中心
- (英文)日渐膨胀的Linux邮件列表内容摘要
- (英文)林納斯與塔能包姆爭論微核心的筆仗
- (英文)Greg Kroah Hartman on the Linux Kernel at youtube