Linux历史

历史上,Linux操作系统内核以其不断的发展为特点。它的源代码已经从1991年初次发布的几个C语言文件扩展到2007年的290MB源文件;发布许可也从禁止商业化发布,变为在通用公共许可证GPL下发布。[1]

起源

Unix操作系统在20世纪60年代构思完成并实现,并在1970年首次发布。它因容易获取与可移植性高而广泛被学术机构和工商企业采用、复制和修改。它的设计对其他系统的作者影响很大。

在1983年,理查德·斯托曼创建了一个自由软件,类Unix,与POSIX兼容的操作系统为目标的GNU计划。作为这个计划其中的一部分,他又写了GNU通用公共许可证(GPL)。20世纪90年代初,已经有足够的软件去创建一个完整的操作系统。但因为在1987年时,理查德·斯托曼决定以Mach微内核进行开发,认为可以借此加速操作系统的开发,但因为一直不确定卡内基梅隆大学何时要将核心源代码发布,造成项目三年进展缓慢。GNU的内核,GNU MachGNU Hurd没能够充分吸引开发者,这导致了GNU的未能完成。

在20世纪80年代还有另外一个关于自由操作系统的项目,伯克利软件套件。这是由UC BerkeleyAT&T的第六版Unix开发而来的。因为它包含了AT&T所拥有的的Unix代码,所以AT&T在20世纪90年代初对加利福尼亚大学提起了法律诉讼。这严重限制了BSD的发展与应用。[2][3]

MINIX安德鲁·斯图尔特·塔能鲍姆在1987年发布一个用于教学的微内核架构的类Unix系统。虽然系统的源代码容易得到,但是对源代码的修改与再发布却受到了限制。另外,MINIX的16位的设计与当时日渐便宜及受欢迎的、个人电脑的Intel 80386架构兼容得不好。

这些因素使得Torvalds开始了他的项目。他曾说过,如果那时候有可用的GNU或者386BSD内核的话,他很可能就不会去写他自己的内核了。[4][5]

Linux的诞生

 
2002年的Linus Torvalds

1991年,在赫尔辛基Linus Torvalds开始那个后面成为了Linux内核的项目。最初它只是一个Torvalds用来访问大学里的大型的Unix服务器的虚拟终端。他专门写了一个用于他当时正在用的硬件的,与操作系统无关的程序,因为他要用他那用80386处理器的新PC机的功能。开发是在Minix上,用至今仍为首选的编译器——GCC——来完成的。[来源请求]

Torvalds在他的书《只为欢乐[6]中说过,他最后才意识到自己写了一个操作系统内核。1991年8月25日,他在发布到新闻组“comp.os.minix.”的Usenet上发布了这个系统:

名称的由来

Linus Torvalds本要把他的发时叫做Freax——“fread”,“free”和“x”(暗指Unix)的合成词。在开发系统的前半年里,他把文件以文件名“Freax”存储。Torvalds考虑过Linux这个名字,但是因为觉得它过于自我本位而放弃了使用它[6]

为便于开发,在1991年9月,他把那些文件上传到了赫尔辛基工业大学(HUT)的FTP服务器(ftp.funet.fi)。Torvalds在HUT负责管理那个服务器的同事Ari Lemmke,觉得“Freax”这个名字不是很好,就在不咨询Torvalds的情况下,把项目的名字改成了“Linux”[6]。但是之后,Torvalds也同意“Linux”这个名字了:“经过多次讨论,他承认Linux这个名字更好。在0.01版本Linux的源代码的makefile里仍然使用‘Freax'这个名字,在之后‘Linux'这个名字才被使用。所以,Linux这个名字并不是预先想好的,只是它被广泛接受了而已”[来源请求]

GNU GPL下的Linux

Torvalds先是在它自己的许可下发布Linux内核的,即限制它用于商业活动。和这个内核一起使用的软件是发布在GPL这个自由软件许可下,属于GNU计划一部分的软件。第一次发布的Linux内核,版本0.01,包含了GNU的Bash的二进制版本[8]

在版本0.01的备注中,Torvalds列出了运行Linux所需的GNU软件[8]

很不幸,单单一个内核是什么都做不了的。要让一个系统能够工作,还需要一个shell,编译器,函数库等等。这些各是独立的部分,它们有着或松或紧的著作权限制。与linux一起使用的大多是GNU的软件,而这些软件是非盈利著作权限制的。在Linux的发布版本里没有包含这些工作——你可以向我(或者GNU)索取更多的信息。[8]

1992年,他建议在GPL下发布内核。他先在版本0.12中宣布了这个决定[9]。1992年12月中,他在GNU GPL下发布了0.99版。[10]。Linux和GNU的开发者一起把GNU的部件和Linux集成起来,使它成为一个可运行的自由操作系统。[11]Torvalds说,“把Linux发布在GPL下是我所做过的最好的事。”[12]

关于GNU/Linux命名方式的争议

“Linux”这个名称一开始只被Torvalds用于Linux内核。但是这个内核却常和其他软件一起使用,尤其是GNU计划的软件。这很快就成为最受欢迎的GNU软件。1994年六月,在GNU的期刊中,Linux被称作“自由Unix克隆版”,Debian计划也开始把它的产品叫做“Debian GNU/Linux”。1996年5月,Richard Stallman发布了编辑器Emacs的19.31版本,其中系统的名称从Linux变成了Lignux。这种拼法为的是明确指出GNU和Linux的结合。但是这不久就被“GNU/Linux”所代替了[13]

对这个名称,不同人有不同的反应。GNU和Debian项目使用那个名字,但是,多数开发者仍然简单地用“Linux”来指代它们的结合。

官方吉祥物

 
Tux

1996年,Torvalds为Linux选定了企鹅作为它的吉祥物Larry Ewing提供了吉祥物的初稿。现在正在使用的著名的吉祥物就是基于这份初稿的。James Hughes根据“Torvalds's Unix”为它取了名字Tux[6]

新的发展

内核

除了Torvalds,还有许多知名的如阿兰考克斯Alan Cox和马塞洛托萨蒂Marcelo TosattiLinux内核维护者。

Cox维护2.2版的内核直到2003年底,同样, Tosatti维护2.4版的内核直到2006年年中,程序员Andrew Morton 带动了于2003年12月18日发布的首个稳定版本-2.6版内核的开发和维护。而旧版本也还在持续地改进中。

Linux在多方面成功应用,其主要原因在于它是自由软件和它的软件的稳定性、安全性和可扩展性,以及因此而带有的可维护性。虽然确实存在着漏洞,例如vmsplice() exploit,但是这些漏洞会很快被修复[来源请求]

社区

关于Linux的大部分工作都是由社区完成的:世界各地使用Linux的程序员都把建议的改进发给维护员。很多公司还不但参与内核的开发,还参与了一些随Linux一起发布的辅助软件的编写。

Linux的版本当中,既有像Debian那样由自发组织发布的,又有像openSUSEFedora那样直接和一些公司相关的。为了交换意见,各个项目的成员常在各种会议交流会上会面。其中最大的交流会是在德国(目前是柏林)举行的LinuxTag。每年有大约10,000人聚集在一起讨论Linux以及与Linux相关的项目。

开源发展实验室和Linux基金会

开源码发展实验室(Open Source Development Lab)创立于2000年。它是一个独立的非营利性组织。它的目标是优化Linux以应用于数据中心和运营商的领域。它是Linus Torvalds和Andrew Morton工作的赞助来源。2006年年中,Morton去了Google(Google也是使用Linux内核的);Torvalds全职为OSDL开发Linux内核。非商业性运营机制的资金主要来源于Red HatNovell三菱英特尔IBM戴尔惠普等几家大公司。

2007年1月22日,OSDL和自由标准组织合并为Linux基金会,把它们的工作焦点集中在改进GNU/Linux以与Windows竞争[14]

相关公司

虽然是开源项目,但是还是有一些公司从中获取了利益。这些公司大多也是开源发展实验室的成员。它们在Linux的改进与开发中投入了许多资源以使其能够适应不同领域的应用。其中包括驱动程序捐赠的硬件,对开发Linux软件的人员现金的捐赠,以及对Linux程序员的雇用。例如IBM和HP,它们首先在它们的服务器上使用了Linux;又如Red Hat,它维护着它自己的版本。同样,Trolltech通过对Qt的开发和把它GPL许可化,以及启用一些X和KDE开发人员来支持Linux。前者更使得开发KDE成为了可能。

关于Linux的争论

Linux自出现以来就已经引起了反复的争议。

“Linux已经过时”

1992年,著名的计算机科学家,Minix微核心的作者,安德鲁·斯图尔特·塔能鲍姆在新闻组comp.os.minix上写了一篇题为《Linux已经过时》的文章[15]。这篇文章标志着对Linux内核的著名的大讨论的开始。其中对Linux的批评主要是:

  • 该内核是宏内核的,因此它是过时的;
  • 因使用Intel 386处理器而带来的不可移植性。“写一个与某特定硬件,特别是像Intel这种奇怪的硬件相关的操作系统,在根本上就是错误的。”[16]
  • 没有个人严格控制源代码[17]
  • Linux使用了一系列无用的特色(他认为多线程的文件系统只会使用系统性能低下)[18]

事实证明,塔能鲍姆认为Linux会在几年之内就会过时并被GNU Hurd取替(他认为GNU Hurd更为现代化)的看法是错误的。Linux已经被移植到所有主流的平台,而且它开放的开发模式引领了一种杰出的开发步伐。相反,GNU Hurd还没有拥有可作为产品服务器的稳定性水平。[19]

反对开源文件的出版物

来自微软的竞争

虽然Torvalds说过微软感到的来自Linux的威胁与他无关[20],但是微软和Linux阵营在1997年到2001年间还是有着很多敌对的情况。这种情况在1998年Eric S. Raymond发表《万圣节文件》的时候变得明显起来。这里由一位微软工程师写的关于寻求解决自由软件对微软的威胁的策略的文章。[21]

SCO

2003年3月,SCO Group指责IBM把UNIX的代码移植到Linux侵犯了他们的著作权。SCO声称它们拥有代码的著作权并对IBM提起了诉讼。Red Hat又提起了反诉讼,因此SCO又提起了其他相关的诉讼。在这些诉讼进行的同时,SCO开始把Linux的许可权卖给那些不愿意冒受SCO投诉的险的用户。因为Novell也声称拥有UNIX的著作权,所以它又对SCO提起了诉讼。接着SCO便宣告破产了。[22]

名称的商标

Linux是Linus Torvalds的注册商标。

商标权

在1994和1995年,有多个来自不同国家的人想把Linux注册为商标,从而一些Linux公司可以从中收取特许使用金。很多Linux的开发人员和用户都不同意此举。Torvalds在Linux国际的帮助下得到了Linux这个商标,然后他把这个商标转让给了Linux国际。对这个商标的保护后来就由一个专门的基金会——非营利性的Linux标识协会——来管理。2000年,Linus Torvalds指定了分配许可权的基本规则。这意味着任何要想以Linux的名义发布产品和服务的人,都要拥有许可证。而许可证要通过购买获得。

大事年表

  • 1983:Richard Stallman发起以创建一个自由的操作系统为目标的GNU计划。
  • 1989:Richard Stallman撰写第一版的GNU GPL
  • 1991:Linux内核在8月25日由21岁的芬兰学生Linus Benedict Torvalds公开发布。
  • 1992:在GNU GPL下Linux内核被重新授权使用,产生第一个“Linux发行版本”。
  • 1993:超过100个开发者致力于Linux内核开发。在他们的努力下,内核逐渐适应GNU的环境,这个为Linux创造巨大的应用空间的广阔环境。Slackware首次发布。后来在同一年,Debian项目设立,现已成为最大的社区发布项目。
  • 1994: 3月, Torvalds认为内核的所有组件已经完全成熟,他放出了Linux的1.0版本。XFree86项目组提供了一个图形化用户界面(GUI).同年Red Hat公司和SUSE发行他们各自的Linux 1.0分发版本。
  • 1995: Linux被移植到DEC Alpha和Sun公司的SPARC平台上,而在接下来的几年里它又被广泛地移植到更多的平台上。
  • 1996: Linux内核2.0版本发布。此时内核已经支持多处理器,因而成为各大公司的绝佳选择。
  • 1998:很多大公司,诸如IBM、Compaq ,Oracle表示支持Linux系统。另外,一部分程序员开始图形化用户界面KDE的开发。
  • 1999:一些程序员开始致力于开发图形化环境GNOME,它可以替代依靠Qt工具包才能工作的KDE。在这一年里IBM宣布一项支持Linux的浩大的工程。
  • 2004: XFree86小组分裂,同现有的X Windows标准组织 共同成立X.Org基金会,促使了X Window ServerLinux版本极其快速而迅猛的发展。

参见

参考

  1. ^ Linux总部关于内核的页面. [2007-12-04]. (原始内容存档于2001-01-07). 
  2. ^ Berkeley UNIX和开源软件的诞生. [2008-12-12]. (原始内容存档于2015-01-04). 
  3. ^ Marshall Kirk McKusick. 从AT&T的BerkeleyUnix到可自由再发布的20年. [2008-12-12]. (原始内容存档于2009-10-01). 
  4. ^ Linus vs. Tanenbaum debate. [2008-12-12]. (原始内容存档于2008-12-02). 
  5. ^ The Choice of a GNU Generation - An Interview With Linus Torvalds. [2008-12-12]. (原始内容存档于2009-02-25). 
  6. ^ 6.0 6.1 6.2 6.3 Torvalds, Linus and David Diamond, Just for Fun: The Story of an Accidental Revolutionary, 2001, ISBN 0-06-662072-4
  7. ^ Torvalds,Linus: What would you like to see most in minix?页面存档备份,存于互联网档案馆 Usenet group comp.os.minix, August 25, 1991.
  8. ^ 8.0 8.1 8.2 Torvalds, Linus: Notes for linux release 0.01页面存档备份,存于互联网档案馆 kernel.org, 1991.
  9. ^ Torvalds, Linus. RELEASE NOTES FOR LINUX v0.12. Linux Kernel Archives. 1992-01-05 [2007-07-23]. (原始内容存档于2011-08-21). The Linux copyright will change: I've had a couple of requests to make it compatible with the GNU copyleft, removing the "you may not distribute it for money" condition. I agree. I propose that the copyright be changed so that it confirms to GNU - pending approval of the persons who have helped write code. I assume this is going to be no problem for anybody: If you have grievances ("I wrote that code assuming the copyright would stay the same") mail me. Otherwise The GNU copyleft takes effect as of the first of February. If you do not know the gist of the GNU copyright - read it. 
  10. ^ z-archive of Linux version 0.99 Wikiwix的存档,存档日期2011-07-01, kernel.org, December 1992
  11. ^ [1]页面存档备份,存于互联网档案馆
  12. ^ Hiroo Yamagata: The ragmatist of Free Software, Linus Torvalds Interview页面存档备份,存于互联网档案馆), 05.08.1997
  13. ^ Linux and GNU - GNU Project - Free Software Foundation (FSF). [2008-12-12]. (原始内容存档于2011-06-29). 
  14. ^ New Linux Foundation Launches – Merger of Open Source Development Labs and Free Standards Group (新闻稿). The Linux Foundation. January 22, 2007 [2007-01-21]. (原始内容存档于2009-05-15). Computing is entering a world dominated by two platforms: Linux and Windows. 
  15. ^ A. S. Tanenbaum. LINUX is obsolete. Newsgroupcomp.os.minix. January 29, 1992 [2008-07-16]. [email protected]. (原始内容存档于2013-05-26). 
  16. ^ A. S. Tanenbaum. Re: LINUX is obsolete. Newsgroupcomp.os.minix. January 30, 1992 [2008-07-16]. [email protected]. (原始内容存档于2013-05-30). 
  17. ^ Tanenbaum, Andy. Re: Unhappy campers. February 1992 [2008-10-19]. (原始内容存档于2009-06-05). 
  18. ^ Andrew Tanenbaum, Linus Torvalds and others: Linux is obsolete页面存档备份,存于互联网档案馆 Usenet post, 29.01.1992
  19. ^ The GNU Hurd Project页面存档备份,存于互联网档案馆
  20. ^ Hiroo Yamagata. The Pragmatist of Free Software: Linus Torvalds Interview. [2007-11-28]. (原始内容存档于2007-08-26). I don't try to be a threat to MicroSoft, mainly because I don't really see MS as competition. Especially not Windows - the goals of Linux and Windows are simply so different. 
  21. ^ Free Software Foundation. Is Microsoft the Great Satan?. Philosophy of the GNU Project. 2007-06-19 [2007-08-14]. (原始内容存档于2020-11-15). We see that Microsoft is doing something that is bad for software users: making software proprietary and thus denying users their rightful freedom. But Microsoft is not alone in this; almost all software companies do the same thing to the users. If other companies manage to dominate fewer users than Microsoft, that is not for lack of trying. 
  22. ^ SCO Group files for bankruptcy protection. CNet News.com. 2007-09-14 [2008-01-14]. (原始内容存档于2008-10-08). 

外部链接