本文来源:正厚软件沙老师
Linux的发展历史
年林纳斯.托瓦兹开发了Linux内核,宣布它的诞生。
年,IBM宣布于RedHat公司建立伙伴关系,以确保RedHat在IBN机器上的正确运行。
年,IBM决定投入10亿美元扩大Linux系统的运用,引得许多站点纷纷从windows操作系统转向Linux操作系统。
年,Linux企业化,内核开发者宣布新的Linux系统支持64位的计算机。
年,NEC宣布将在其手机中使用Linux操作系统,代表着Linux进军手机领域。
1、Multics
MULTiplexedInformationandComputingSystem
年前后,由贝尔实验室(Bell),麻省理工学院(MIT)和通用电气公司(GE)共同发起了Multics的项目,Multics项目的目的是想让大型主机可以同时提供台以上的终端机连接使用的一套多用户(multi-user)、多任务(multi-processor)、多层次(multi-level)的操作系统。但到了年前后,项目进度落后,资金短缺,所以虽然项目在继续,但是Bell实验室退出了该项目的研究。
2、Unics
年,原本参与该项目的人员中,KenThompson因为自己的需要(想移植一套之前开发的能用于Multics系统的名为"startravel"的游戏),并总结之前失败的教训,用汇编语言开发出了一个小的文件系统,并戏称这套只能支持两个使用者的系统为Unics(UNiplexedInformationandComputingSystem)。该系统即是Unix的原型。
这个文件系统有两个重要的概念:
●所有的程序或系统装置都是文件
●不管构建编译器还是附属文件,写程序只有一个目标:有效地完成任务
3、Unix
年,因为Thompson写的操作系统太好用了,所以在Bell广为流传,但因为用的是汇编语言写的,因此对硬件的依赖性很强。后来Thompson与同事Ritchie合作将Unics用高级语言B语言重写,但最后发现效果不好,于是DennisRitche将B语言重写改成C语言,再用C语言重新改写Unics的内核,最后发行出Unix的正式版本。
4、Unix的重要分支——BSD
年,因为Unix用C语言编写,所以可移植性较强。于是Unix与学术界合作开发,最重要的接触是Berkeley大学的合作。最后Berkeley的BillJoy开发出一套系统,命名为BerkeleySoftWareDistribution(BSD)。BillJoy也是Sun公司的创始人。
BSDUNIX最终版本即BSD4.3,它是混合开源的,即有开源部分也有闭源部分。由BSDUNIX衍生出最初的SCOXenix(Microsoft及SCO共同开发)、SunOS(SunMicroSystems开发,即Solaris前身)、NEXTSTEP(NeXT开发)等UNIX版本,这些UNIX版本均闭源且受专利保护。
BSDUNIX对现代操作系统的产生与发展产生了巨大的影响,并将开源闭源的争议摆在了人们面前。拥护闭源专利的代表BillGates领导创建了Windows等软件获得了巨大成功,并垄断了桌面以及服务器市场,从而极大丰富了软件产业。而捍卫开源共享的代表RichardStallman开展自由软件运动,创建GNU工程,使自由软件精神深入人心,并促使了GNU/Linux等开源操作系统的普及。
5、版权纠纷
因为Unix的高度可移植性与强大的性能,且当时并没有版权的纠纷,所以很多商业公司都开发Unix。但Bell实验室所隶属的美国电话电报公司ATT出于商业的考虑,将Unix的版权收回。
年,ATT起诉BSD侵犯了Unix的版权,这也是当代版权制度最恶劣的应用之一。
首先,起诉者其实与Unix毫无关系。这是ATT经理层的决定,而不是开发者的决定。事实上,包括KenThompson在内的技术人员一直希望公司能够公开源码。他们完全有理由这么要求,因为Unix从来不是ATT的业务重点,最初是个人项目,后来也没有占用公司太多资源。销售Unix的利润,在公司全部业务中,几乎可以忽略不计。何必为了一点点钱,去打击一个使许多人受益的产品呢?
其次,ATT根本不关心Unix的发展。它真正关心的是金钱和削弱对手。年,官司还没有结束,它就把Unix卖给了Novell公司,从此不再与Unix发生关系,官司也因此不了了之。既然这个产品可有可无,当初为什么要提起诉讼呢?
最后,所谓的侵权几乎是不存在的。因为Novell从ATT买下Unix版权后,检查了BSD的源码,在个组成文件中删除了3个,并对其他文件做了一些小修改,然后BSD就重新获得了自由发布源码的许可。这意味着,至多只有千分之一的BSD代码有版权问题,但是就因为这千分之一的问题,导致百分之百的产品被迫中断,完全不符合比例原则。
所以,这场版权官司就是一家利益至上的公司,以微不足道的理由,为了一个自己根本不在乎的产品,悍然发动一场损人不利己的战争。
这场战争给Unix和BSD带来毁灭性的打击。
从八十年代中后期开始,ATT固执地捍卫Unix版权,完全不顾它的创造者和开发者的愿望,导致Unix丧失活力、一蹶不振,大量开发者无法参与,只好离开了这个平台。
而BSD在~年期间,开发处于停滞,错过了发展的黄金时机。官司结束以后,又不幸发生分裂,变成了FreeBSD、NetBSD和OpenBSD三个版本。这些原因导致BSD直到今天,都还在操作系统的竞争中处在落后地位。
如果换个时间,官司的损失也许还没这么大。偏偏90年代初是计算机工业决定性的年代,错过了那几年,从此就很难翻身了。因为从80年代末期开始,Intel的80x86芯片有巨大的发展,性能快速上升,而成本快速下降,个人电脑的年代就要到来了。市场迫切需要能够运行在芯片上的操作系统,但是Unix和BSD忙于打官司,都没有去做移植操作系统这件事。其他两个这样做的人,改变了人类历史。
一个是比尔·盖茨,他推出了Windows,占领了个人电脑市场,后来赚了几百亿美元。另一个是芬兰大学生LinusTorvalds,他想学习Unix,但是买不起工作站,就自己写了一个能在上运行的Linux操作系统,现在全世界超过一半的网络服务器都在使用这个系统。LinusTorvalds后来说,如果他早知道BSD没有法律问题,并且可以被移植到,他就会加入BSD的开发,而不是自己写一个。
Novell买到Unix版权后,也没在手里放多久,年又转手卖给了别人。从此,Unix原始版本的开发正式结束。
以后的发展集中在两个方向,一个是各个商业公司自己修改的Unix版本,比如Sun的Solaris,HP的HP-UX,IBM的AIX,另一个则是开源项目的开发,比如BSD和Linux。
6、X86架构的Minix
年,ATT由于在商业上的考虑,以及在当时现实环境下的思考,于是想将Unix的版权收回去。因此,ATT在年发行的第七版Unix中,特别提到了不可对学生提供源码的严格限制。
年,一位大学教授AndrewTanenbaum谭宁邦为了教学,在完全不看Unix核心源代码的情况下,开发出了能够兼容Unix的Minix(miniunix)。
7、GNU项目
RichardMathewStallman(史托曼)在年发起GNU项目,对于现今的自由软件风潮有不可磨灭的地位。GNU项目的目的是创建一个自由、开放的Unix操作系统(FreeUnix)。GNU是GNUisnotUnix的缩写。(无限递归定义)
为了避免GNU所开发的自由软件被其他人所利用而成为专利软件,所以拟定了有名的通用公共许可证(Generalpubliclicense,GPL)。
GNU几个重要的软件:
Emacs
GNUCComplier(GCC)
GNUCLibrary(GLIBC)
BashShell
在谭宁邦教授撰写minix时,同时进行的还有另外一件事。那就是GNU计划。GNU计划是由RichardMathewStallman(史托曼)发起的,这个计划对于现今的自由软件风潮,具有不可磨灭的作用。
RichardMathewStallman(生于年)从小就很聪明。他在年的时候,进入黑客圈中相当出名的人工智能实验室(AILab.),当时的黑客圈对于软件的着眼点几乎都是在"分享",所以并没有专利方面的困扰,这个特色对于史托曼影响很大。不过,后来由于管理阶层的问题,导致实验室里优秀黑客离开该实验室,并进入其他商业公司继续发展优秀的软件。但史托曼不服输,仍然持续在原来的实验室开发新的程序和软件。后来,他发现自己一个人无法完成所有的工作,于是想要成立一个开放的团队来继续努力。
年以后,因为实验室硬件的更换,使得史托曼无法继续以原有的硬件和操作系统继续自由程序的撰写。而且他进一步发现到,过去他所使用的Lisp操作系统,是麻省理工学院的专利软件,是无法共享的,这对于想要成立一个开放团体的史托曼是个阻碍。于是他便放弃了Lisp这个系统。后来,他接触到Unix系统,并且发现,Unix在理论上与实际上,都可以在不同的机器间进行移植。虽然Unix依旧是专利软件,但至少Unix架构上还是比较开放的!于是他开始转而使用Unix系统。
年,史托曼开始GNU计划,这个计划的目的是:建立一个自由、开放的Unix操作系统(FreeUnix)。但是建立一个操作系统并不容易。尤其是当时的GNU只有史托曼孤军奋战。
聪明的史托曼干脆反其道而行,既然操作系统太复杂,史托曼便先写可以在Unix上面运行的小程序。史托曼开始参考Unix上面现有的软件,并依据这些软件的作用开发出功能相同的软件,在开发期间史托曼绝不看其他软件的原始码,以避免吃上官司。后来大家知道有免费的GNU软件,开始实际使用后发现与原有的专利软件相比差不了太多,于是便转而使用GNU软件,GNU计划逐渐打开知名度。
虽然GNU计划渐渐打开知名度,但是能见度还是不够。这时史托曼又想:不论是什么软件,都得要事先编译成为二进制文件(binaryprogram)后才能够执行,如果能够写出一个不错的编译程序,那不就是大家都需要的软件了吗?因此他便开始撰写C程序的编译程序,那就是现在相当有名的GNUCCompiler(gcc),它是linux著名的编译器。在撰写过程中,他成立自由软件基金会(FSF,FreeSoftwareFoundation)。此外,他还撰写了更多可以被呼叫的C函式库(GNUClibrary),以及可以被使用来操作操作系统的基本接口BashShell。这些都在年左右完成了!
到了年,为了避免GNU所开发的自由软件被其他人所利用而成为专利软件,所以他与律师草拟了有名的通用公共许可证(GeneralPublicLicense,GPL),并且称呼他为copyleft(相对专利软件的copyright)。
由于有GNU所开发的几个重要软件(比如GCC,Glibc,bashshell)造成后来很多的软件开发者可以藉由这些基础的工具来进行程序开发,进一步壮大了自由软件团体。不过,对于GNU的最初构想“建立一个自由的Unix操作系统”来说,这些优秀的程序是仍无法满足。因为,当下并没有“自由的Unix核心”存在。所以这些软件仍只能在那些专利的Unix平台上工作,一直到Linux的出现。
年,芬兰的赫尔辛基大学的的LinusTorvalds在BBS上面贴了一则消息,宣称他以bash,gcc等工具写了一个小小的核心程序,这个核心程序可以在Intel的机器上面运作,让很多人很感兴趣!从此开始了Linux不平凡的路程!
LinusTorvalds(托瓦兹,年出生)的外祖父是赫尔辛基大学的统计学家,他的外祖父为了让自己的小孙子能够学点东西,所以很小就将托瓦兹带到身边来管理一些微计算机。在这个时期,托瓦兹接触了汇编语言(AssemblyLanguage),那是一种直接和芯片对谈的程序语言,也就是所谓的低级语言。必须要很了解硬件的架构,否则很难以汇编语言编写程序。
在年间,托瓦兹顺利地进入了赫尔辛基大学,幵选读了计算机科学系。在就学期间,因为学业的需要和自己的兴趣,托瓦兹接触到了Unix这个操作系统。当时整个赫尔辛基只有一部最新的Unix系统,同时仅提供16个终端机(terminal)。早期的计算机仅有主机具有运算功能,terminal仅负责提供Input/Output而已。在这种情况下,实在很难满满足托瓦兹的需求,因为光是等待使用Unix的时间,就很耗时。为此,他不禁想到:我何不自己弄一部Unix来用?不过,就如同Stallman当年的GNU计划一样,要写核心程序,谈何容易~不过,幸运之神并未背离托瓦兹,因为不久之后,他就知道有一个类似Unix的系统,并且和Unix完全兼容,还可以在Intel(就是教科书上的I咯)机器上面跑的操作系统,那就是我们上面提过的,谭宁邦教授为了教育需要而撰写的Minix系统!他在购买了最新的Intel的个人计算机后,就立即安装了Minix这个操作系统。另外,Minix这个操作系统是有附上原始码的,所以托瓦兹也经由这个原始码学习到了很多的核心程序的设计概念。
托瓦兹跟在研究Minix的过程中,发现Minix虽然真的很棒,但是谭宁邦教授就是不愿意进行功能的加强,导致一堆工程师在操作系统功能上面达不到需求。这时,年轻的托瓦兹想:既然如此,那我何不自己来改写一个我想要的操作系统?于是他开始了操作系统核心程序的撰写。
撰写程序需要什么呢?首先需要的是能够进行工作的环境,再来则是可以将原始码编译成为可执行文件的编译程序。好在有GNU计划提供的bash工作环境软件以及gcc编译程序等自由软件,让托瓦兹得以顺利地撰写核心程序。他参考Minix的设计理念和书上的程序代码,然后仔细研究出个人计算机的性能优化,然后使用GNU的自由软件将核心程序代码和紧紧地结合在一起,最终写出他所需要的核心程序。而这个小玩意竟然真的可以在上面顺利地跑起来,还可以读取Minix的文件系统。真是太好了!不过还不够,他希望这个程序可以获得大家的一些修改建议,于是他便将这个核心代码放置在网络上提供给大家下载,同时在BBS上面贴了一则消息:(这就是Linux出现时的宣言吧)
Helloeverybodyoutthereusingminix.Imdoinga(free)operationsystem(justahobby,wontbebigandprofessionallikegnu)for()ATclones.Ivecurrentlyportedbash(1.08)andgcc(1.40),andthingsseemtowork.ThisimpliesthatIllgetsomethingpracticalwithinafewmonths,andIdliketoknowwhatfeaturesmostpeoplewant.Anysuggestionsarewel