万维百科

Linux内核本文重定向自 Linux kernel

(重定向自Linux kernel)
Linux
Tux
Linux 3.0.0 boot.png
Linux内核3.0.0启动画面
开发者 林纳斯·托瓦兹和几千名合作者
编程语言 C语言汇编语言
操作系统家族 类Unix系统
初始版本 0.01(1991年9月17日,​28年前​(1991-09-17
最新版本 Kernel: 5.5.4(2020年2月15日,​0天前​(2020-02-15[±]
最新测试版本 Kernel: 5.6-rc1(2020年2月10日,​5天前​(2020-02-10[±]
支持的语言 多语言
内核类别 宏内核
许可证 GPL(仅)第二版,
各类封闭固件的许可证
官方网站 www.kernel.org 编辑维基数据链接

Linux内核(英语:Linux kernel)是一种开源的类Unix操作系统宏内核。整个Linux操作系统家族基于该内核部署在传统计算机平台(如个人计算机和服务器,以Linux发行版的形式)和各种嵌入式平台,如路由器无线接入点专用小交换机机顶盒FTA接收器英语FTA receiver智能电视数字视频录像机网络附加存储(NAS)等。工作于平板电脑智能手机智能手表Android操作系统同样通过Linux内核提供的服务完成自身功能。尽管于桌面电脑的占用率较低,基于Linux的操作系统统治了几乎从移动设备到主机的其他全部领域。截至2017年11月,世界前500台最强的超级计算机全部使用Linux。

Linux内核最早是于1991年由芬兰黑客林纳斯·托瓦兹为自己的个人电脑开发的,他当时在Usenet新闻组comp.os.minix登载帖子,这份著名的帖子标志着Linux内核计划的正式开始。如今,该计划已经拓展到支持大量的计算机体系架构,远超其他操作系统和内核。它迅速吸引了一批开发者和用户,利用它作为其他自由软件项目的内核,如著名的 GNU 操作系统。而今天,Linux 内核已接受了超过1200家公司的近12000名程序员的贡献,其中包括一些知名的软硬件发行商。

从技术上说,Linux 只是一个符合POSIX 标准的内核。它提供了一套应用程序接口(API),通过接口用户程序能与内核及硬件交互。仅仅一个内核并不是一套完整的操作系统。有一套基于 Linux 内核的完整操作系统叫作Linux 操作系统,或是GNU/Linux(在该系统中包含了很多GNU 计划的系统组件)。

Linux 内核是在GNU通用公共许可证第2版之下发布的(加上一些非自由固件blob 与各种非自由许可证),是一个开源项目协作的突出例子。它的版本支持根据版本最长可达6年,贡献者遍布世界各地,日常开发相关的讨论在Linux 内核邮件列表英语Linux kernel mailing list上。

历史

1991年,林纳斯·托瓦兹,一名21岁的就读于芬兰赫尔辛基大学的计算机科学专业学生,基于一些简单的想法,打算编写一个操作系统内核。他通过英特尔80386汇编语言的任务切换器和一个终端驱动程序开始工作。8月25号,他在 comp.os.minix 新闻组里发了一封帖子:

我在做个(自由的)操作系统(就是个兴趣爱好,我不会搞得像GNU那么大那么专业),打算让它工作在386 AT平台上。它从四月就开始酝酿了,马上就快好了。我想要那些喜欢或不喜欢minix的人的意见,因为我的系统和它有点类似(同样的文件系统的物理布局——由于实际原因——还有些其他的东西)。

我现在已经移植了bash(1.08)和gcc(1.40), 而且看起来奏效了。这意味着我会在几个月内得到一些实用的东西。“……”是的——它没有任何minix代码,并且它有一个多线程的fs。它可移植(使用386任务切换等),而且它可能永远不会支持除AT硬盘之外的其他东西,因为我只有这些:-(。

“……”它基本上是用C语言写的,但是大多数人可能不会把我写的东西叫做C语言。它使用我能找到的386的每个可以想象的特性,因为它也是一个教我关于386的功能的项目。我前面提到过,它使用内存管理单元来进行分页(还没实现到对硬盘的功能)和分段。这个分段功能使得它真正的依赖于386(每个任务都有64Mb的代码和数据段——4Gb中最多64个任务。如果有人需要超过每个任务64Mb的限制,那将是个麻烦事)。“……”我的一些C语言文件(特别是mm.c)几乎用了和C一样多的汇编。“……”不像minix,我也碰巧喜欢中断,所以中断将在不试图隐藏背后的原因的情形下被处理。

之后,许多人为这个项目贡献了代码。在早期,MINIX社区向 Linux 内核贡献了代码和想法。当时,GNU 项目已经创建了许多自由操作系统所需的组件,但是它自己的内核 GNU Hurd 尚不完整且无法使用;而BSD操作系统还没有摆脱合法的阻碍。因此,尽管早期版本的 Linux 功能有限,但它迅速获得了开发人员和用户。

到1991年9月,Linux内核版本 0.01 在芬兰大学和研究网络(FUNET)的FTP服务器(ftp.funet.fi)上发布。它有10,239行代码。在1991年10月,0.02版本的内核发布了。

1991年12月,0.11版本的内核发布。由于它可以由运行相同内核版本的计算机编译,因此该版本是第一个自托管的英语Self-hosting Linux 内核。当托瓦兹于1992年2月发布0.12版本时,他采用了 GNU 通用公共许可证(GPL),而不是以前的自行起草的许可证,原先的许可证不允许商业再分发。

1992年1月19日,第一篇文章提交给新的新闻组 alt.os.linux 出现。 1992年3月31日,该新闻组更名为 comp.os.linux

X Window 系统随后被移植到Linux上,所以在1992年3月,Linux 0.95 是第一个能够运行X的版本。从0.1x到0.9x的版本号大幅跨越是因为期望没有大的缺失部分的版本1.0的即将出现。然而,这被证明是错误的。从1993年到1994年初,出现了0.99版本的15个开发版本。

1994年3月14日,Linux内核1.0.0发布,共176,250行代码。随后的1995年3月,有310,950行代码的 Linux 内核1.2.0发布。

在1996年6月9日发布的 Linux内核2.0版本之后,以2.0为大版本的主要更新有如下这些:

  • 1999年1月25日 - 发布Linux内核2.2.0(1,800,847行代码)
  • 1999年12月18日 - 针对2.2.13的 IBM 大型机补丁发布,允许 Linux 内核用于企业级机器
  • 2001年1月4日 - 发布 Linux 内核2.4.0(3,377,902行代码)
  • 2003年12月17日 - 发布 Linux 内核2.6.0(5,929,913行代码)

从2004年开始,发布过程发生了变化,新的内核每隔2-3个月定期发布,编号为2.6.0、2.6.1,直到2.6.39。

2011年7月21日,Torvalds宣布发布Linux内核3.0:“2.6.<大版本> 的日子过去了”。与Linux 2.6.39相比,大的技术变化同版本跃升没有关系;它标志着内核的20周年纪念。基于时间的发布过程保持不变。

2013年6月发布的Linux内核版本3.10包含15,803,499行代码,而2015年6月发布的4.1版本已发展到超过1950万行代码,由近14000名程序员贡献。

塔能鲍姆-林纳斯辩论

Linux不是微内核架构的事实曾经引起了林纳斯·托瓦兹与安德鲁·斯图尔特·塔能鲍姆之间一场著名的争论。1992年在Usenet讨论组群comp.os.minix开始了一场网络论战,讨论的主题在于操作系统架构的选择。稍后一些著名的黑客也加入讨论,如大卫·米勒曹子德。这场辩论影响了Linux内核的设计走向。塔能鲍姆认为Linux内核采用的宏内核已经过时了,应该采取比较先进的微内核架构,引起了林纳斯的反击。

在2006年5月9日,这个主题被重新审视,并且在2006年5月12日塔能鲍姆写了一份立场声明。

架构

Linux内核地图

Linux是一个单体内核,支持真正的抢占式多任务处理(于用户态,和版本2.6系列之后的内核态)、虚拟内存共享库请求分页英语Demand paging、共享写时复制可执行体(通过内核同页合并英语Kernel same-page merging)、内存管理Internet协议族线程等功能。

设备驱动程序和内核扩展运行于内核空间(在很多CPU架构中是ring 0),可以完全访问硬件,但也有运行于用户空间的一些例外,例如基于FUSE/CUSE的文件系统,和部分UIO。多数人与Linux一起使用的图形系统不运行在内核中。与标准单体内核不同,Linux的设备驱动程序可以轻易的配置为内核模块,并在系统运行期间可直接装载或卸载。也不同于标准单体内核,设备驱动程序可以在特定条件下被抢占;增加这个特征用于正确处理硬件中断并更好的支持对称多处理。出于自愿选择,Linux内核没有二进制内核接口

硬件也被集成入文件层级中。用户应用到设备驱动的接口是在/dev/sys目录下的入口文件。进程信息也通过/proc目录映射到文件系统。

Linux内的各种层,还显示了在用户空间内核空间之间的分离。
用户模态 用户应用 例如:BashLibreOfficeGIMPBlender0 A.D.Mozilla Firefox
低层系统构件 系统守护进程
systemdrunit,logind,networkd,PulseAudio
窗口系统
X11Wayland,SurfaceFlinger(Android)
其他库
GTK+, Qt, EFL, SDL, SFML, FLTK, GNUstep
图形
Mesa,AMD Catalyst等
C标准库 open()exec()sbrk()socket()fopen()calloc(),... (直到2000个子例程)
glibc目标为POSIX/SUS兼容,musluClibc目标为嵌入式系统,bionicAndroid而写等
内核模态 Linux内核 stat, splice, dup, read, open, ioctl, write, mmap, close, exit等(大约380个系统调用)
Linux内核系统调用接口(SCI,目标为POSIX/SUS兼容)
进程调度子系统 IPC子系统 内存管理子系统 虚拟文件子系统 网络子系统
其他构件:ALSA,DRI,evdev,LVM,device mapper,Linux Network Scheduler,Netfilter
Linux安全模块SELinux,TOMOYO,AppArmor, Smack
硬件(CPU内存数据存储设备等。)

编程语言

Linux是用C语言中的GCC版(这种C语言有对标准C进行扩展)写的,还有几个用汇编语言(用的是GCC的"AT&T风格")写的目标架构短段。因为要支持扩展的C语言,GCC在很长的时间里是唯一一个能正确编译Linux的编译器。有许多其他的语言用在一些方面上,主要集中在内核构建过程中(这里指从源代码创建可引导镜像)。包括PerlPython和多种脚本语言。有一些驱动可能是用C++Fortran或其他语言写的,但是这样是强烈不建议的。

编译器兼容性

GCC是Linux内核源代码的缺省编译器。在2004年,Intel主张通过修改内核,以便Intel C++编译器能正确编译内核。在2009年,有通过修改内核2.6.22版而成功编译的报告(并带来平均8-9%性能增长)。

自从2010年,已经开始进行使用Clang建造Linux内核的努力,Clang是一个可作为替代的C语言编译器;截止2014年4月12日,官方内核几乎可以完全用Clang编译。致力于这个目标的计划叫做“LLVMLinux”,得名于Clang所基于的LLVM编译器下部构造。LLVMLinux不意图复制Linux内核或LLVM,因此它是由最终提交给上游计划的补丁构成的一个元计划。使Linux内核可以用Clang编译最大的好处是比GCC有更快的编译速度,内核开发者可以得益于由此而来的更快的工作流程。

接口

区分四种接口:两种内核内部,两种在内核和用户空间之间。

符合标准是Linux内核内部的普遍策略。另一个规则是Linux内核主线不接受只由专有用户空间软件使用的内核模块。

内核至用户空间API

Linux API组成自Linux内核的系统调用接口、GNU C函数库libcgroup、libdrm、libalsa和libevdev。

源代码可移植性确保符合标准的C程序可以在符合同样标准的任何系统上编译和运行。Linux内核开发、GNU C函数库和相关的实用工具致力于追随POSIX单一UNIX规范Linux内核API英语Linux kernel interfaces是内核的系统调用接口。

内核至用户空间ABI

二进制可移植性将保证任何程序在符合标准的给定硬件平台上一旦编译通过,可以在符合同样标准的任何其他硬件平台上以编译后的形式运行。二进制可移植性是在基于Linux内核的操作系统上建造独立软件供应商(ISV)应用有商业可行性的本质要求。现有唯一的二进制兼容标准是Linux标准规范(LSB)。

内核内API

图形的数据和指令被发送至GPU来处理。渲染呈现的结果被存储在帧缓冲器,其中的内容由视频显示控制器扫描并发送至屏幕。

在不同子系统间使用了数个内核内部API。其中一些是跨越多个发行版保持稳定的,另一些则不然。对于内核内API不作担保。维护者和贡献者可以在任何时候增加或变更它们。

内核内API的例子包括针对下列类别设备驱动程序的软件框架/API:

内核内ABI

Linux内核开发者选择不维护稳定的内核内ABI。

技术特性

抢占式调度系统

I/O调度器在Linux内核存储栈各层内的位置。

Linux内核提供在特定条件下的抢先式调度。直到内核版本2.4,只有用户进程是抢先式的,就是说除了时间片用尽,在用户模式下执行的当前进程,如果有更高态优先级的进程进入TASK_RUNNING状态,它就会被中断。自从2.6系列Linux内核,增加了中断执行内核代码的任务的能力,但不是对于内核代码的所有段落。

Linux内核含有不同的调度器类。内核缺省使用的调度机制叫做完全公平调度器,它介入于内核版本2.6.23。这个缺省调度器类在内部也叫做SCHED_OTHER,而内核还含有两个遵循POSIX的实时调度类,分别叫做SCHED_FIFO(实时先进先出)和SCHED_RR(实时轮流式),二者都优先于缺省类。

通过使用实时Linux内核补丁PREEMPT_RT,可以支持对关键段落、中断处理器和“中断禁用”代码序列的完全抢先。 实时Linux内核补丁部分地集成入主线内核已经带给它一些功能。抢先机制改善延迟、增进响应性,并使得Linux更加适合桌面和实时应用。老版本内核有所谓的巨锁英语Giant lock,用于锁定粒度为整个内核的同步,它最终由Arnd Bergmann在2011年移除了。

还有叫做SCHED_DEADLINE英语SCHED_DEADLINE的调度策略,实现了最近截止期限最先英语earliest deadline first scheduling(EDF)算法,它增加于2014年3月30日发行的内核版本3.14。

可移植性

尽管林纳斯·托瓦兹的初衷不是使Linux成为一个可移植的操作系统,今天的Linux却是全球被最广泛移植的操作系统内核。从移动电话到超级电脑,甚至于有人成功的将Linux内核在索尼出品的游戏机PS2PS3微软出品的游戏机Xbox上使用。Linux也是IBM超级计算机Blue Gene的操作系统。直至2011年11月,全球前五百大超级电脑(TOP500)有高达91.4%的比例采用Linux为它们的操作系统。一些为手机开发的操作系统,使用Linux内核的修改后的版本,其中包括谷歌AndroidFirefox OS、HP WebOS和诺基亚Maemo

内核错误和oops

内核错误(Kernel panic)

在Linux中,内核错误Kernel panic)是指操作系统在监测到内核系统内部无法恢复的错误,相对于在用户空间代码类似的错误。操作系统试图读写无效或不允许的内存地址是导致内核错误的一个常见原因。内核错误也有可能在遇到硬件错误或操作系统BUG时发生。在许多情况中,操作系统可以在内存访问违例发生时继续运行。然而,系统处于不稳定状态时,操作系统通常会停止工作以避免造成破坏安全和数据损坏的风险,并提供错误的诊断信息。

在Linux上,oops即Linux内核的行为不正确,并产生了一份相关的错误日志。许多类型的oops会导致内核错误,即令系统立即停止工作,但部分oops也允许继续操作,作为与稳定性的妥协。这个概念只代表一个简单的错误。当内核检测到问题时,它会打印一个oops信息然后杀死全部相关进程。oops信息可以帮助Linux内核工程师调试,检测oops出现的条件,并修复导致oops的程序错误。

安全

计算机安全是一个非常公众化的主题,关系到Linux内核,因为大量在内核中的错误可能成为潜在的安全漏洞,是否允许提升权限漏洞或拒绝服务攻击源漏洞。在过去的几年中,许多这样的缺陷被发现,并在Linux内核中被修补好。新的安全功能被继续实现,以解决在Linux内核中的电脑不安全问题。

批评者指责内核开发人员,称他们掩盖(至少并未公布)安全漏洞。2008年,作为回应,Torvalds称:“个人认为,安全漏洞只是‘正常的漏洞’。这些漏洞我并不去掩盖,不过我不认为应当把它们特殊化,更不认为应该追踪并公示它们……我不理会整个安全团队,原因之一就是,我认为这些漏洞不仅美化还鼓励了错误的行为。这令安全人员成了‘英雄’,就犹如不修补正常漏洞的人就不值一提似的。而事实上,所有无聊的正常漏洞极为重要,仅仅因为它们实在太多了。我不认为该美化和关心那些严重的安全漏洞——它们并不及那些由死锁造成的随机严重崩溃来得更特殊。”

如2012年五月,SYSRET指令被发现在AMD和英特尔处理器间在实现方面有差异,这个差异在WindowsFreeBSD、XenServer和Solaris这些主流操作系统会导致漏洞。2012年六月,Linux内核中该问题已被修复。

开发

内核版本

开发者社区

截止2007年,内核开发已经从20位最活跃开发者写80%的代码转变为顶端30人写30%的代码,而顶端开发者花费更多的时间审核变更。 开发者还可以按从属关系来归类;在2007年,顶端类属是“不知名”而顶端公司是Red Hat,它占有12%的贡献,而知名业余爱好者占3.9%。 在2007年中所做内核变更已经由超过1900位开发者提交。一般假定Linux内核开发者社区由5000或6000名成员组成。

Linux基金会发表的2016年Linux内核开发报告的更新表明,从版本3.18(2014年12月)至4.7(2016年7月)期间:平均每次发行有来自200-250个公司的大约1500位开发者作出贡献。顶端30位开发者贡献了稍大于16%的代码。在公司中,顶端贡献者是Intel(12.9%)和Red Hat(8.0%),第三和第四位为“none”(7.7%)和“unknown”(6.8%)类属。

开发过程与模式

一个想要对 Linux 内核进行修改的开发者一般就从对那个修改的开发和测试开始着手。接下来的过程取决于变化的重要程度,及修改该变更的子系统数量是由单个还是多个修补程序组成。如果仅仅是修改了由单个维护人员维护的单个子系统,那么这些修改的补丁代码就直接通过Cc中某个邮件列表发送给相关的维护人员。邮件列表的阅读者和子系统的维护人员将检查补丁代码并提供反馈。一旦审查过程完成,维护者接受他内核代码树中的补丁。如果这些更改被认为是够重要的错误修复,那么包含这些修补程序的拉取请求(pull request)将在几天内发送给Linus。否则,将在下一个合并窗口时向Linus发送拉取请求。合并窗口通常会持续两周,并在之前的内核版本发布后立即启动。

Linus Torvalds拥有对Linux内核能够接受哪些更改和谁可以成为维护者的最终决定权。内核维护者在他们自愿放弃之前将维持他们的角色。当前,没有任何已知的内核维护者被要求退出。此外,还没有一个内核维护者因与其他维护者的交互风格的因素而受到Linus批评的例子。这为维护者提供了宽松的社区空间。虽然内核开发社区的文化多年来有所改善,但曾有一段时间它的声誉很糟糕。认为自己遭受了不公正对待的开发者可以向Linux基金会的技术专家委员会报告。尽管如此,一些社区成员仍然不认同现在的讨论氛围。

同 Linux 发行版的关系

大多数Linux用户运行一个由他们 Linux 发行版提供的内核。一些发行版搭载的是 Linux 的通用内核(也就是 “vanilla”或“stable”)版本。不过,一些Linux内核发行商(如Red HatSUSE)会维护他们自己的内核分支。这些发行商分支的内核版本通常相对于稳定版本(vanilla)而言更新的速度更慢一些,但是同样会包括所有相关的稳定版本分支的补丁。此外,他们同时也会增添一些新特性和对新硬件的支持,而这些支持是这些发行商分支基于的稳定分支所不包括的。

重新开发的估价

重新开发Linux内核的估价

按照传统商业软件开发的方式,重新开发Linux 2.6.0内核的估计代价将是6.12亿美元(4.67亿欧元、3.94亿英镑),以2004年的COCOMO人月估计模型.在2006年,欧盟资助的一项研究表明,重新开发Linux 2.6.8以后的内核,代价是8.82亿欧元(11.4亿美元、7.44亿英镑)。

截至2011年1月4日,使用当前的代码行(LOC)和大卫·惠勒的计算工资数,这将花费约30亿美元(约22亿欧元),才能够重新开发Linux的内核。

维护

2.6.0之前的版本系列

内核 初始发行日期 最新版本 维护者 支持状态 备注
旧版本,不再支持: 0.01 1991年9月17日 0.03 林纳斯·托瓦兹 EOL
旧版本,不再支持: 0.10 1991年11月 0.12 EOL
旧版本,不再支持: 0.95 1992年3月8日 0.99.15 EOL
旧版本,不再支持: 1.0 1994年3月14日 1.0.9 EOL 有176,250字符串。此版本的Linux内核只支持单处理器基于i386的计算机系统,可移植性成为一个问题。随后1.2版(310,950字符串)支持多种计算机架构例如AlphaSPARCMIPS处理器。
旧版本,不再支持: 1.1 1994年4月6日 1.1.95 EOL
旧版本,不再支持: 1.2 1995年3月7日 1.2.13 EOL
旧版本,不再支持: 1.3 1995年6月12日 1.3.100 EOL
旧版本,不再支持: pre2.0 1996年5月12日 pre2.0.14 EOL
旧版本,不再支持: 2.0 1996年6月9日 2.0.40 David Weinehall EOL
旧版本,不再支持: 2.2 1999年1月26日 2.2.27-rc2 Marc-Christian Petersen(前维护者艾伦·考克斯 EOL
旧版本,不再支持: 2.4 2001年1月4日 2.4.37.11 Willy Tarreau(前维护者Marcelo Tosatti) EOL
格式:
旧版本
旧版本,仍被支持
当前版本
最新的预览版
未来版本

2.6.x.y版本系列(主要版本)

内核 初始发行日期 最新版本 维护者 支持状态 备注
旧版本,不再支持: 2.6.16 2006年3月20日 2.6.16.62 Adrian Bunk(前维护者葛雷格·克罗哈曼 EOL
旧版本,不再支持: 2.6.27 2008年10月9日 2.6.27.62 葛雷格·克罗哈曼 EOL
旧版本,不再支持: 2.6.32 2009年12月3日 2.6.32.71 Willy Tarreau(前维护者葛雷格·克罗哈曼 EOL
旧版本,不再支持: 2.6.34 2010年5月16日 2.6.34.15 Paul Gortmaker(前维护者Andi Kleen) EOL
旧版本,不再支持: 2.6.39 2011年5月19日 2.6.39.4 林纳斯·托瓦兹 EOL

3.x.y版本系列

内核 初始发行日期 最新版本 维护者 支持状态 备注
旧版本,不再支持: 3.0 2011年7月22日 3.0.101 葛雷格·克罗哈曼 EOL 托瓦兹宣布,大的变化是,“没有,绝对没有。”2011年5月30日,托瓦兹宣布,“让我们确保我们真正的下一个版本不只是一个全新的闪亮的数字,而是有一个好的内核。”3.0的发布日接近Linux的20周年纪念日。
旧版本,不再支持: 3.2 2012年1月5日 3.2.99 Ben Hutchings EOL
旧版本,不再支持: 3.4 2012年5月21日 3.4.113 Li Zefan(前维护者葛雷格·克罗哈曼 EOL
旧版本,不再支持: 3.5 2012年7月21日 3.5.7 葛雷格·克罗哈曼 EOL
  • CoDel队列管理算法
  • seccomp filters
  • 沙盒机制
  • Android风格的自动休眠和唤醒锁机制
  • 用户空间探测子系统uprobes
  • TCP连接修复
  • 减少重复确认加快转发的TCP Early Retransmit
  • 连续性内存分配器
  • kcmp ()系统调用
  • ext4文件系统加入元数据校验和
  • 改进Btrfs
旧版本,不再支持: 3.6 2012年10月1日 3.6.11 葛雷格·克罗哈曼 EOL 客户端TCP Fast Open实现
旧版本,不再支持: 3.7 2012年12月11日 3.7.10 葛雷格·克罗哈曼 EOL
  • 改进开源显卡驱动程序,包括: Nvidia、Intel 与 Radeon
  • 通过Xen hypervisor实现对ARM Cortex-A15的硬件虚拟化支持
  • 继续改进BTRFS文件系统
  • TCP Fast open
旧版本,不再支持: 3.8 2013年2月19日 3.8.13 葛雷格·克罗哈曼 EOL
  • 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 2013年4月29日 3.9.11 葛雷格·克罗哈曼 EOL
  • 继续完善F2FS文件系统
  • 省电功能改进
  • 改善ARM处理器支持
  • 音效、音频重大更新
  • Google Goldfish Android模拟器源代码
  • DRM显卡驱动改善
  • 硬件支持改善
旧版本,不再支持: 3.10 2013年6月30日 3.10.108 Willy Tarreau EOL
  • 完整支持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 2013年9月2日 3.11.10 葛雷格·克罗哈曼 EOL
  • 支持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 2013年11月3日 3.12.74 Jiri Slaby(前维护者葛雷格·克罗哈曼 EOL
  • 优化了CPU频率管理器,更有效的实现动态调频功能,间接提升了部分开源和闭源驱动的性能。
  • 进一步改善了Radeon开源驱动的动态电源管理。
  • 增加了逆向工程出来的Snapdragon/Adreno显卡驱动。
  • 支持AMD首个异构计算的Berlin系列服务器APU。
  • *小幅改善了F2FS、XFS和Btrfs文件系统。
  • ext4文件系统加入两个新功能:支持主动extent缓存,减少主读工作负荷的存储器使用,改进异步I/O。
  • *改进英特尔Haswell图形性能。
  • 支持NVIDIA Optimus显示技术的动态GPU电源管理,双显卡笔记本可以动态的关闭或激活第二个GPU。
旧版本,不再支持: 3.13 2014年1月20日 3.13.11 葛雷格·克罗哈曼 EOL
  • 多队列块层允许I/O负载在多CPU内核中均衡,延展性更好,减少磁盘延迟,提供更好的磁盘性能。
  • 支持英特尔Broadwell和AMD Radeon R9 waii的新驱动。
  • 防火墙子系统/包过滤引擎nftables取代iptables。
  • 提供了一个更简单的内核ABI,减少重复代码,更有效的支持过滤规则。
  • 开源NVIDIA驱动加入新的电源管理代码。
  • 改进AMD HDMI音频功能。
  • 英特尔硬件支持立体/3D HDMI设备。
  • Btrfs和F2FS文件系统改进。
  • Linux功率限制框架和即时平均功率限制驱动程序将允许在超出定义临界值时限制某些组件的功耗。
旧版本,不再支持: 3.14 2014年3月31日 3.14.79 葛雷格·克罗哈曼 EOL
  • 开源NVIDIA驱动支持更多NVIDIA显卡。
  • 英特尔Broadwell的显示芯片及音频系统获得更好的支持。
  • VMware SVGA2显示驱动程序重大变更。
  • NVIDIA Tegra初步支持PRIME。
  • 开源AMD驱动部分设备支持改进。
  • 经由新的驱动程序支持AMD加密协作处理器。
  • 通用CPU加速。
  • F2FS及BTRFS文件系统改进。
  • 新增Xen的PVH支持。
  • 加入Deadline调度器。
  • 支持MIPS最新的CPU内核支持。
  • 加入TCP自动抑制功能。
旧版本,不再支持: 3.15 2014年6月8日 3.15.10 葛雷格·克罗哈曼 EOL
  • 支持EFI混合模式,可以在32位的UEFI上运行64位的内核。
  • 激活异步线程来加快暂停及恢复的时间。
  • 开源驱动对新一代的NVIDIA Maxwell显卡的初步支持,以及对近期的AMD显卡的VEC 2.0视频解码支持。
  • CPU前端的AVX-512及RDSEED扩展支持。
  • 支持Sony DualShock 4控制器。
  • LLVM近乎完全支持编译主线内核。
旧版本,仍被支持: 3.16 2014年8月3日 3.16.54 Ben Hutchings 长期支持版本,从2014年8月至2020年4月
  • 部分支持64位ARM架构的EFI。
  • Samsung的Exynos多平台内核支持。
  • 改进ARM的Xen虚拟化支持。
  • 支持Dell Latitude掉落感应器。
  • 新的Synaptics触控版驱动程序。
  • 改进对Sony DualShock 4的支持。
  • 大量声卡驱动程序更新。
  • BtrfsXFS文件系统的重大更新。
旧版本,不再支持: 3.17 2014年10月5日 3.17.8 葛雷格·克罗哈曼 EOL
  • 开源AMD驱动改进。
  • 英特尔显示芯片驱动程序改进。
  • Nvidia显卡驱动程序重大改进。
  • 新的DRM驱动程序。
  • 移除许多旧的或不再维护的驱动程序。
  • 增加了英特尔Braswell音效驱动程序。
  • 对Wacom绘图板更好的支持。
  • 新增许多ARM硬件支持。
  • 支持东芝笔记本电脑掉落感应器。
  • x86上的KVM改进。
  • F2FS改进。
  • XFS有了sysfs接口。
旧版本,不再支持: 3.18 2014年12月7日 3.18.95 Sasha Levin EOL
  • Nouveau支持从DisplayPort输出音频。
  • 许多新的多媒体驱动程序。
  • Wacom绘图板支持改进。
  • 在64位ARM架构上的PCI支持。
  • 在大型服务器上更快的暂停及恢复速度。
  • 邮件信箱框架进入主线代码。
  • ACPI及电源管理改进。
旧版本,不再支持: 3.19 2015年2月9日 3.19.8 葛雷格·克罗哈曼 EOL
  • 对Intel下一代的Skylake架构的显示芯片的初步激活。
  • 对Nvidia GeForce 900系列的基本支持。
  • Btrfs文件系统上对于RAID 5及RAID 6的改进。
  • 对多点触控的支持改进。

4.x.y版本系列

内核 初始发行日期 最新版本 维护者 支持状态 备注
旧版本,不再支持: 4.0 2015年4月12日 4.0.9 葛雷格·克罗哈曼 EOL
  • Skylake架构处理更好的支持。
  • 支持Intel的Quark单片机。
  • 改进对PS3的支持。
  • BtrfsF2FS、pNFS等多个文件系统支持改进。
  • AMD Radeon驱动程序开始支持DisplayPort音源。
旧版本,不再支持: 4.1 2015年6月22日 4.1.52 Sasha Levin
(曾经是葛雷格·克罗哈曼)
EOL
  • ext4支持文件系统层级的加密。
  • F2FSXFSBtrfs文件系统增强与更新。
  • RAID 5/6改进。
  • DellToshiba笔记本电脑支持改进。
  • 音频功能模块化。
旧版本,不再支持: 4.2 2015年8月30日 4.2.8 葛雷格·克罗哈曼 EOL
  • 大量的ARM架构改进。
  • NCQ Trim支持。
  • F2FS每一文件加密支持。
  • 输入设备支持改进。
  • UEFI ESRT支持以让UEFI固件可在系统内更新。
旧版本,不再支持: 4.3 2015年11月2日 4.3.6 葛雷格·克罗哈曼 EOL
  • 默认激活Intel Skylake的显示芯片支持。
  • 许多文件系统方面的修正。
旧版本,仍被支持: 4.4 2016年1月10日 4.4.169 葛雷格·克罗哈曼 长期支持版本,从2016年1月至2022年2月,作为第一个被选为超级长期支持(SLTS)的内核,民间下部构造平台将提供支持直到至少2026年,可能直到2036年。
  • 新增许多AMD硬件支持。
  • UEFI 2.5改进。
  • Toshiba笔记本电脑更多的改进支持。
  • 重要的ext4加密修复。
  • 用于设置内核编译参数的图形化接口之一,Xconfig移植到Qt5。
旧版本,不再支持: 4.5 2016年3月14日 4.5.7 葛雷格·克罗哈曼 EOL
  • 对Kabylake处理器内置显示芯片的初步支持。
  • AMD显卡诸多改进。
  • 对于ARMv6与ARMv7的代码重写。
  • Xbox One控制器支持改进。
  • F2FS文件系统增加了新功能。
旧版本,不再支持: 4.6 2016年5月15日 4.6.7 葛雷格·克罗哈曼 EOL
  • 树莓派的3D图形性能改进。
  • 新增对许多ARM平台的支持。
  • 新增对OrangeFS的支持。
  • XFSF2FSext4Btrfs的诸多改进。
  • EFI安全性改进。
旧版本,不再支持: 4.7 2016年7月24日 4.7.10 葛雷格·克罗哈曼 EOL
  • 支持AMD RX480。
  • 全新的安全模块LoadPin。
  • 支持制作USB/IP协议的虚拟USB设备控制器。
  • 支持在Linux下更新UEFI固件。
  • 新增schedutil频率控制器,CPUFreq动态频率缩放子系统速度更快、更精准。
旧版本,不再支持: 4.8 2016年10月2日 4.8.17 葛雷格·克罗哈曼 EOL
  • tmpfs文件系统支持透明大暂存页。
  • 新的Formatted Kernel Documentation。
  • 解决延迟问题的Timer Wheel。
  • 改进高性能网络路由。
  • 创建内核时允许使用GCC plugins。
  • 加强用户复制。
  • AMD GPU驱动支持超频,改进PowerPlay。
  • 初步支持NVIDIA Pascal显卡。
  • 支持Raspberry Pi 3的BCM2837 SoC。
  • 支持ACPI Low-Power Idle。
  • 支持Microsoft Surface 3触屏。
旧版本,仍被支持: 4.9 2016年12月11日 4.9.148 葛雷格·克罗哈曼 长期支持版本,从2016年12月至2023年1月
  • 2/3 代码翻新。
  • 新增 Greybus 硬件协议。
  • 新增 Vmapped kernel stacks 机制。
  • 支持 Memory Protection Key 机制。
  • 新增 XFS 共享式数据延伸功能。
  • 为 AMDGPU 提供虚拟屏幕支持,更好的 AMDGPU GPU 重置支持,并对这个现代 AMD GCN 驱动程序进行了其他变化。
  • AMDGPU 还有试验性的 Southern Islands 支持 (GCN 1.0),作为 Radeon DRM 中现有支持之外的一种选择。
  • 对英特尔 DRM 作了各种修补和改进,最显著的变化之一就是 DMA-BUF 隐式围栏 (implicit fencing)。
  • 3D渲染期间,为 Raspberry Pi VC4 驱动程序减少 GPU 和存储器方面的使用。
  • CPUFreq 驱动程序继续更充分地使用调度程序的信息。
  • 内存保护密钥 (MPK) 支持。
  • NVDIMM 支持方面的更新。
  • F2FS 性能方面的改进。
  • 支持 OverlayFS SELinux。
  • 支持另外 29 种 ARM 机器,包括 Raspberry Pi Zero、LG Nexus 5 及其他知名的移动/嵌入式硬件。
  • 支持 Mellanox 平台。
  • 内核线程 (Kthread) 方面的改进。
  • 开始支持 BBR congestion control。
  • System calls for memory protection keys。
  • 2017/01/19 确认为长期支持版本。
旧版本,不再支持: 4.10 2017年2月19日 4.10.17 葛雷格·克罗哈曼 EOL
旧版本,不再支持: 4.11 2017年5月1日 4.11.12 葛雷格·克罗哈曼 EOL
  • AMD GPU 电源管理更加成熟。
  • 已经可以处理 DisplayPort MST 音频。
  • 初步支持 Gemini Lake。
  • SSD 支持可扩展 swapping。
  • 支持 SMC-R 协议(RFC7609)。
  • 增强并改进 Intel Turbo Boost Max 3.0。
  • 多队列块层支持可插拔 IO 调度器框架和死线调度器。
  • 新的 perf ftrace 命令。
  • 支持 Opal Storage Specification 驱动。
  • 新的 Raspberry Pi 驱动。
  • MD/RAID5 日志。
  • 新的 statx() 系统调用。
  • SipHash 哈希函数,新的 LZ4 压缩实现。
  • 大量的安全、架构和驱动更新。
旧版本,不再支持: 4.12 2017年7月2日 4.12.14 葛雷格·克罗哈曼 EOL
  • 史上最大更新。
  • 初步支持 AMD Radeon RX Vega GPU
  • 初步支持 nVidia GeForce GTX 1000 "Pascal" 加速。
  • 支持 Gemini Lake 的颜色管理器 (Color Manager)。
  • 增加对 Intel Memory Bandwidth Allocation 的支持。
  • 新增 USB Type-C 控制器接口驱动和管理员。
  • 增加支持 Rivet Networks Killer 1535。
  • IPv4 增加对 L4 哈希函数支持。
  • IPv6 增加支持 NETDEV_RESEND_IGMP event。
  • EXT4 支持 GETFSMAP ioctl。
  • 新 BFQ I/O 调度器。
  • 新 Kyber I/O 调度器。
  • 支持 Raspberry PiBroadcom BCM2835 温度驱动。
  • 存储器管理优化。
  • 加入 TEE (Trusted Execution Environment) 子系统。
  • SELinux 增加 security hook for prlimit。
旧版本,不再支持: 4.13 2017年9月3日 4.13.16 葛雷格·克罗哈曼 EOL
  • 初步支持 Intel Cannon Lake/Coffee Lake CPU。
  • Nouveau 的开源 NVIDIA 具有 HDMI 3D/stereoscopic 支持。
  • 现在还有一个用于统一 UUID/GUID 处理的更多内核代码的 UUID 子系统。
  • 支持 WMI(Windows Management Instrumentation)总线。
  • EXT4 现在支持超大型目录功能,支持到20亿个目录。
  • XFS 现在支持 SEEK_HOLE 和 SEEK_DATA。
  • NVMe 设备现在写入性能更好。
  • 新 HID 硬件支持。
  • Thunderbolt 改进。
  • 新音效芯片支持,包含 Realtek ALC215/ALC285/ALC289。
旧版本,仍被支持: 4.14 2017年11月12日 4.14.91 葛雷格·克罗哈曼 长期支持版本,从2017年11月至2024年1月
  • 2017/09/20 确认为长期支持版本。
  • 支持最大 4,000TB 和 1,280,000TB 存储器。
  • 支持 AMD 加密的协处理器(CCP)。
  • 高通 MSM8916 SoC 耳机插孔检测,Allwinner H3 和 Cirrus Logic CS43130 的支持,Intel Kabylake 系统上对 RT5663、Realtek RT274、TI TLV320AIC32x6 和 Wolfson WM8523 的支持。
  • 支持 Wacom Driver 和 ASUS T100 Touchpad。
  • 增加 Retaltek RTL8822 驱动。
  • 支持 Intel 缓存质量监控(CQM)。
  • ARM64 支持 VMAP_STACK。
  • 为 Btrfs 和 SquashFS 文件系统加入 zstd 压缩功能。
  • 支持 HDMI CEC(Raspberry Pi)。
  • 改善对 Ryzen CPU 的支持。
旧版本,不再支持: 4.15 2018年1月28日 4.15.18 葛雷格·克罗哈曼 EOL
旧版本,不再支持: 4.16 2018年4月1日 4.16.18 葛雷格·克罗哈曼 EOL
  • 完善 MeltdownSpectre 安全漏洞更新。
  • 增进 RISC-V 支持。
  • 支持 KVMAMD 安全加密虚拟化。
  • 移除未使用的代码。
  • 各种系统结构、驱动程序、网络等改进跟修复。
旧版本,不再支持: 4.17 2018年4月1日 4.17.19 葛雷格·克罗哈曼 EOL
  • 改进 CPU 调度器的负载估算
  • raw BPF 跟踪点
  • XF 文件系统支持 lazytime
  • 内核 TLS 协议完全支持
  • histograms 触发器
  • 修补最新 Spectre 漏洞变种
  • 移除八种基本没人再使用的过时处理器架构
  • 支持 AMDGPU WattMan
  • 支持 Intel HDCP
  • 支持 Vega 12 GPU 和 NVIDIA Xavier SoC
  • 默认启用 AMDGPU DC
  • 改进电源管理,等等
旧版本,不再支持: 4.18 2018年6月3日 4.18.20 葛雷格·克罗哈曼 EOL
  • Unprivileged file system mounts:非特权用户现在也能挂载 FUSE 文件系统
  • 用于异步 I/O 的新内核轮询接口
  • Restartable sequences
  • 新的 TCP zero-copy receive API
  • 用于高性能网络的 AF_XDP 机制
  • 支持 Qualcomm Snapdragon 845
旧版本,仍被支持: 4.19 2018年10月22日 4.19.13 葛雷格·克罗哈曼 长期支持版本,从2018年10月至2020年12月,第二个超级长期支持(SLTS)发行带有对ARM64平台的支持。
  • 基于异步 I/O 的轮询接口
  • L1TF 漏洞补丁
  • 块 I/O 延迟控制器
  • Common Applications Kept Enhanced (CAKE)队列管理算法
  • Wi-Fi 6 (802.11ax) 初步支持
  • 实验性文件系统 EROFS
  • Intel Cache Pseudo-locking
  • 基于时间的包传输
  • 改进 RISC-V 架构处理器的支持
旧版本,不再支持: 4.20 2018年12月23日 4.20.2 葛雷格·克罗哈曼 EOL
  • BPF 网络流解析器
  • taprio 流量调度器
  • PCI 层中的点对点 DMA 支持
  • 支持 C-SKY 架构
  • pressure-stall 检测机制
  • XArray 数据结构
格式:
旧版本
旧版本,仍被支持
当前版本
最新的预览版
未来版本

5.x.y版本系列

版本 最初发行日期 当前版本 维护者 支持状态
旧版本,不再支持: 5.0 2019年3月3日 5.0.21 Greg Kroah-Hartman EOL
旧版本,不再支持: 5.1 2019年5月5日 5.1.21 Greg Kroah-Hartman EOL
旧版本,不再支持: 5.2 2019年7月7日 5.2.20 Greg Kroah-Hartman EOL
旧版本,不再支持: 5.3 2019年9月15日 5.3.18 Greg Kroah-Hartman EOL
当前版本: 5.4 2019年11月24日 Kernel: 5.5.4(2020年2月15日,​0天前​(2020-02-15[±] Greg Kroah-Hartman & Sasha Levin 第二十个LTS发行,维护自2019年11月2021年11月
最新预览版本: 5.5 2019年12月22日 Kernel: 5.6-rc1(2020年2月10日,​5天前​(2020-02-10[±] Linus Torvalds 预览版本
格式:
旧版本
旧版本,仍被支持
当前版本
最新的预览版
未来版本

Linux内核的主要贡献者可见于Linux内核黑客列表

版本命名

Linux内核有三个不同的命名方案。早期版本:第一个版本的内核是0.01,其次是0.02,0.03,0.10,0.11,0.12(第一GPL版本),0.95,0.96,0.97,0.98,0.99及1.0。,从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代表:AB是无关紧要的,C是内核的版本,D是安全补丁。

自3.0(2011年7月)发布后,版本的格式为3.A.B,其中A,B代表:A是内核的版本,B是安全补丁。而4.0(2015年4月)发布后,则延续3.A.B的命名格式,只是将主版号变更为4。

版本时间线

来源:kernel.org

法律层面

许可证

原先托瓦兹将 Linux 置于一个禁止任何商业行为的条例之下,但0.12版本之后改用 GNU 通用公共许可证第二版。 该协议允许任何人对软件进行修改或发行,包括商业行为,只要其遵守该协议,所有基于Linux的软件也必须以该协议的形式发表,并提供源代码

托瓦兹曾经公开声称将Linux置于GNU通用公共许可证之下是他一生中所做的“最好的决定”。

GPL第三版

Linux 内核明确地仅发表在 GNU 通用公共许可证(GPL)第二版下,而不向被许可方提供选择“任何更高版本”的选项(这是常见的 GPL 扩展)。关于如何轻松地改变许可证以使用后来的 GPL 版本(包括第3版)以及这种更改是否合乎需要,存在着相当多的争论。 托瓦兹本人在版本2.4.0的发布中明确指出,他自己的代码仅在版本2下发布。然而,GPL的条款规定,如果没有指定版本,那么可以使用任何版本;并且艾伦·考克斯指出,很少有其他 Linux 贡献者指定了特定版本的 GPL。

2006年9月,对29位关键内核程序员的调查显示其中的28位更倾向于使用 GPL 第二版(GPLv2)而非当时的 GPL 第三版(GPLv3)草案。 托瓦兹评论说:“我认为一些外界人士......相信我才是那个古怪不合群的人,因为我这么大张旗鼓地不做 GPLv3 的忠实粉丝。”这些高水平的内核开发者就大众媒体对 GPLv3 的反对发表了评论,其中包括林纳斯·托瓦兹本人、葛雷格·克罗哈曼和安德鲁·莫顿。他们提到有关DRM/TiVo化日语TiVo化、专利及“附加限制”的条款,并警告GPLv3对“开源宇宙”的巴尔干化。决定不采用 GPLv3 作为 Linux 内核许可证的托瓦兹在几年后重申了他的批评。

固件争议

许可证争议的一个重点是Linux使用固件二进制包以支持某些硬件设备。理查德·马修·斯托曼认为这些东西让Linux某部分成为非自由软件,甚至以此散布Linux更会破坏GPL,因为GPL需要完全可获取的源代码

林纳斯·托瓦兹及Linux社群中的领导者,支持较宽松的许可证,不支持理查德·马修·斯托曼的立场。社群中的Linux-libre提供完整的自由软件固件。

加载式内核模块许可证

另一个争论点,就是加载式内核模块是否算是知识产权下的派生创作,意即LKM是否也受GPL约束?托瓦兹本人相信LKM仅用一部分“公开”的内核接口,因此不算派生创作,因此允许一些仅有二进制包裹的驱动程序或不以GPL宣告的驱动程序用于内核。但也不是每个人都如此同意,且托瓦兹也同意很多LKM的确是纯粹的派生创作,也写下“基本上,内核模块派生创作”这样的句子。另一方面托瓦兹也说过:

有时候一些驱动程序原先并非为Linux设计,而是为其他操作系统而作(意即并非为Linux作的派生创作),这是个灰色地带……这“的确”是个灰色地带,而我个人相信一些模块可视为非Linux派生创作,是针对Linux设计,也因此不会遵守Linux订下的行为准则。

特别像绘图卡驱动程序就有非常大的争议,也许到最后得由立法机关给个答案。

SCO争议

在2003年3月,SCO GroupIBM提告,声称IBM将一些在SCO知识产权许可证保护下的Unix源代码植入Linux中,破坏了SCO给予IBM的源代码使用权限。另外SCO也发出一大堆存证函给许多公司,警告他们在没有SCO权限的情况下使用了Linux,此举可能导致侵犯知识产权,并且以起诉为手段对个别用户施压。SCO也同时对Novell戴姆勒克莱斯勒(DaimlerChrysler,在2004年7月被部分驳回)以及AutoZone提出告诉,且被Red Hat与其他反对SCO论点的公司反告。2007年8月24日,联邦法院审理SCO对Novell案(SCO v. Novell),法院认定Novell才是Unix商标的合法拥有者,而不是SCO。2010年3月20日,美国联邦第十巡回上诉法院宣判,Novell才是UNIX与UnixWare商标的合法拥有者。此项判决宣布后,已进入破产保护程序的SCO公司,决定停止继续提出诉讼。

外部链接

参见


本页面最后更新于2020-02-16 10:56,点击更新本页查看原网页。台湾为中国固有领土,本站将对存在错误之处的地图、描述逐步勘正。

本站的所有资料包括但不限于文字、图片等全部转载于维基百科(wikipedia.org),遵循 维基百科:CC BY-SA 3.0协议

万维百科为维基百科爱好者建立的公益网站,旨在为中国大陆网民提供优质内容,因此对部分内容进行改编以符合中国大陆政策,如果您不接受,可以直接访问维基百科官方网站


顶部

如果本页面有数学、化学、物理等公式未正确显示,请使用火狐或者Safari浏览器