Linux内核


Linux内核 (正體)

跳过字词转换说明

Linux

Tux
开发 林纳斯·托瓦兹 (创造者)与其他人。
最新版本 2.6.32.8 / 2010-02-09(32小时前
最新预览版本 2.6.33-rc7 / 2010-02-06(4天前
编程语言 C
类型 内核
许可协议 GNU通用公共许可证
网站 www.kernel.org

Linux是最受欢迎的自由电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。Linux最早是由芬兰黑客林纳斯·托瓦兹为尝试在英特尔x86架构上提供自由免费的类Unix操作系统而开发的。该计划开始于1991年这里有一份林纳斯·托瓦兹当时在Usenet新闻组comp.os.minix所登载的帖子,这份著名的帖子标示着Linux计划的正式开始。

在计划的早期有一些Minix 黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助。

技术上说Linux是一个内核。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux

目录

架构

Simplified Linux kernel diagram in the form of a matrix map

Linux是一个宏内核(monolithic kernel)系统。设备驱动程序可以完全访问硬件。Linux内的设备驱动程序可以方便地以模块化(modularize)的形式设置,并在系统运行期间可直接装载或卸载。

Linux不是微内核(microkernel)架构的事实曾经引起了林纳斯·托瓦兹与安德鲁·斯图尔特·塔能鲍姆(‎ Andy Tanenbaum)之间一场著名的争论。

可移植性

尽管林纳斯·托瓦兹的初衷不是使Linux成为一个可移植的操作系统,今天的Linux却是全球被最广泛移植的操作系统内核。从掌上电脑iPAQ到IBM S/390(一种可以同时跑成千上百个Linux的大型机),甚至于有人成功的将Linux内核在索尼出品的游戏机PS2PS3微软出品的游戏机Xbox上使用。Linux也是IBM超级计算机Blue Gene的操作系统。直至2008年11月,全球前五百大超级计算机(TOP 500)有高达87.8%的比例采用Linux为它们的操作系统,最快的超级计算机IBM Roadrunner正是采用Linux的。

Linux目前可以在以下结构上运行:

  • Acorn:Archimedes,A5000和RiscPC系列
  • ARC International的 Argonaut RISC Core (ARC)
  • ARM 系列:
    • Acorn Archimedes 与 Risc PC 系列
    • DEC StrongARM
    • Marvel(Intel的前身)XScale
    • Sharp Zaurus
    • iPAQ
    • Palm的 Tungsten Handheld[1]
    • Gamepark Holdings的GP2X
    • Nokia 770 Internet Tablet
    • gumstix
    • 运用DSlinux运行任天堂 DS
  • Hewlett-Packard的 Integrity家族 使用Intel Itanium CPU
  • Renesas Technology(日立的前身)H8 系列
    • H8/300
    • H8/500
  • Intel IA-64 Itanium, Itanium II
  • IBM的 S/390(31-bit)
  • IBM的 zSeries 与 System z9 大型主机(64-bit
  • MIPS 架构:
    • Jazz
    • Cobalt Qube, Cobalt RaQ
    • DECstation
    • Godson(类MIPS), Godson II,及 BLX IC Design Ltd(中华人民共和国)的 Godson IIE
    • 借由PS2 Linux计划,成功移植到一些PlayStation 2模块上
  • FreescaleMotorola的前身)68K 架构(68020, 68030, 68040, 68060):
    • 一些Amiga:A1200,A2500,A3000,A4000
    • Apple Macintosh、Macintosh II、LC、Quadra、Centris 与早期的Performa 系列
    • Sun Microsystem 三系列工作站(实验性质地使用Sun-3 MMU)
  • Power Architecture:
    • IBM 服务器
  • PowerPC 系列:
    • IBM的 CELL
    • 大部份的新型苹果计算机(所有PCI基准的Power Macintosh,对较旧的NuBus Power Macs提供有限支持)
    • Power Computing, UMAX 与 Motorola制作的PCI Power Mac 的克隆品
    • 以"Power-UP"卡升级的Amigas(如 Blizzard 或 CyberStorm)
    • 由Eyetech Group Ltd(英国)制造的AmigaOne主板
    • Soft3(意大利)制造的Samantha
    • Troika的Amy'05 PowerPC主板
    • IBM RS/6000,iSeries 与 pSeries 系统
    • Genesi的Pegasos I与 II
    • 借由Gamecube Linux可运行在Nintendo GameCube
    • Realm Systems, Inc的BlackDog计划
    • Sony Playstation 3
    • Culturecom的V-Dragon CPU
    • 以Xilinx 搭配PowerPC 内核组成的Virtex II Pro Field Programmable Array(FPGA
  • Analog Devices的 Blackfin ADSP BF5xx Processor
  1. ^ http://palmtelinux.sf.net
  2. ^ ELKS project

法律层面

专利权

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

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

固件争议

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

GPL第三版

目前Linux使用的版本为GPL 2,而目前存在一些争议,讨论如何让Linux较容易地转成使用后继版本的GPL,例如第三版(无论是否真的会这样做)[2]。Torvalds本人认为他自己写在版本2.4.0的代码仅使用版本2的GPL[3]。然而GPL这个词并没有明述到底它指的是哪个版本,任何版本都有可能,而Alan Cox指出很多Linux包有特别指出它们使用哪种版本的GPL[4]

加载式内核模块许可证

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

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

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

SCO争议

更多数据:SCO v. IBM

在2003年3月,SCO Group (SCO)对IBM提告,声称IBM将一些在SCO智能财产权许可证保护下的Unix源代码植入Linux中,破坏了SCO给予IBM的源代码使用权限。另外SCO也发出一大堆存证函给许多公司,警告他们在没有SCO权限的情况下使用了Linux,此举可能导致侵犯智能财产权,并且以起诉为手段对个别用户施压。SCO也同时对NovellDaimlerChrysler(在2004年7月被部份驳回)以及AutoZone提出告诉,且被Red Hat与其他反对SCO论点的公司反告。

版本命名

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。[6]

从0.95版有许多的补丁发布于主要版本版本之间。

旧计划(1.0和2.6版之间):

  • A大幅度转变的内核。这是很少发生变化,只有当发生重大变化的代码和内核发生才会发生。在历史上曾改变两次的内核:1994年的1.0及1996年的2.0。
  • B是指一些重大修改的内核。
    • 内核使用了传统的奇数次要版本号码的软件号码系统(用偶数的次要版本号码来表示稳定版本)。
  • C是指轻微修订的内核。这个数字当有安全补丁,bug修复,新的功能或驱动程序,内核便会有变化。

自2.6.0(2003年12月)发布后,人们认识到,更短的发布周期将是有益的。自那时起:

  • AB是无关要的
  • C是内核的版本
  • D是安全补丁

发布历史

  • 1991年9月:0.01(10,239字符串)
  • 1991年10月:0.02
  • 1991年12月:0.11
  • 1992年2月:0.12
  • 1992年3月:0.95
  • 1993年至1994年:0.99
  • 1994年3月14日:1.0.0(176,250字符串)
  • 1995年3月:1.2.0(310,950字符串)
  • 1996年6月9日:2.0.0
  • 1999年1月25日:2.2.0(1,800,847字符串)
  • 1999年12月18日:2.2.13
  • 2001年1月4日:2.4.0(3,377,902字符串)
  • 2003年12月17日:2.6.0(5,929,913字符串)
  • 2009年6月9日:2.6.30(11,637,173字符串)
  • 2009年12月3日:2.6.32(12,606,910字符串[7])


时间线


维护

当前内核 当前版本 维护者
2.0 2.0.40[8] David Weinehall
2.2 2.2.27-rc2[9] Marc-Christian Petersen (前维护者Alan Cox)
2.4 2.4.37.4[10] Willy Tarreau (前维护者Marcelo Tosatti)
2.6.16 2.6.16.62[11] Adrian Bunk
2.6.x (current only) (每3个月发布) 林纳斯·托瓦兹
2.6.x-linux-next 最新开发版本
2.6.x-mm (变化迅速) Andrew Morton

其它Linux内核程序的维护者还包括Robert Love及Ingo Molnár。[12]

参考文献

参见

外部资源







stock | retire | vm
Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History