Linux学习-Linux历史(总结篇)

      Linux之前,Unix的历史

  • 1969年以前,一个伟大的梦想:Bell,MIT与GE的Multics系统

      在此之前的计算机主机少,用户从多,程序是在读卡纸上打洞,光是等待。为了更加强化大型主机的功能,以讥主机的资源可以提供更多使用者来利用,所以在 1965 年前后, 由贝尔实验室(Bell)、麻省理工学院(MIT)及奇异公司(GE,或称为通用电器)共同发起了 Multics 的计划,Multics 计划的目的是想要讥大型主机可以达成提供 300 个以上的织端机联机使用的目标。 不过,到了 1969 年前后,计划一度落后,资金也短缺,所以全计划虽然继续在研究,但贝尔实验室还是退出了全计划的研究工作。 Multics 计划虽然后来没有受到很大的重规,但是他培养出来的人材是相当优秀的!

  • Ken Thompson就是当时贝尔实验室的一位

      1969年8分份左右,经过四个星期,Thompson以汇编语言Assembler写出了一组核心程序,同时包括一些核心工具程序,以及一个小小的文件系统。那个系统就是Unix的原型。当时Thompson将Multics庞大的复杂系统简化不少,于是同实验室的朋友都称种这个系统为Unics。

  • 1973年:Unix正式诞生,Ritchie等人用C语言写出一个正式Unix核心

      由于Thompson写的系统好用,在贝尔实验室文为流传。但是因为Unics是汇编语言写成的,加上当时计算机机器架构都不太相同,所以每次安装到不同的机器都得要重新编写汇编语言,不方便。1973年,Dennis Ritchie以C语言重新改写与编译Unics的核心,最后改名Unix,正试版本。

      早期的Unix没有版权的纠纷,采取比较开放的态度。此外,Unix是以高阶的C语言写的,理论上具有较好的移植性。亦即只要取得Unix的原始码,并且针对大型主机的特性加以修订原代码,就可以将Unix移植到另一部不同的主机上头了。所以,在1973年以后,Unix便得以与学术界合作开发。

  • 1977年:重要的Unix分支——BSD的诞生

      柏克莱大学(Berkeley)的Bill Joy在取得了Unix核心原代码后,着手修改成适合自己机器的版本,并且同时增加了很多工具软件与编译程序,最终将它命名为Berkeley Software Distribution(BSD)。这个BSD是Unix很重要的一个分支,Bill Joy也是Sun公司的创办者。Sun公司即是以BSD发展核心进行自己的商业Unix版本的发展的。

  • 1979年:第七版Unix及版权宣告

      早先的Unix只能与服务器或者大型工作站划上等号。但是到了1979年,AT&T推出Unix第七个版本后,这个情况就有点改善了。这一版最重要的特色是可以支持x86架构的个人计算机系统,也就是说Unix第七个版可以在个人计算机上面安装与运作了。贝尔实验室是AT&T公司的,出于商业与现实环境的考虑,AT&T将Unix的版权收回去。因此,AT&T在1979年发行的第七版Unix中,许可证就开始禁业大学使用Unix源码,包括在授课中学习。同时,也造成Unix业界紧张气氛,并且也引爆了很多商业纠纷。

      到了1980年,有两个最主要的Unix的版本线,一个是Berkeley的BSD UNIX,另一个是AT&T的Unix,在这个时候,很显然,竞争最终引发了Unix的战争。在这场战争中,好的是,软件开发人员还是能够得到Unix的源码并对其按照自己的需要和兴致进行裁剪。而不好的是,Unix开始一发不可收拾地开发不停地出现各种各样的变种。很多商业公司也开始了Unix操作系统的发展,例如AT&T自家公司的Unix System V,IBM的AIX以及HP的DEC等公司,都有推出自家的主机搭配自己的Unix操作系统。每一家公司自己的Unix虽然在架构上大同小异,但是却真的仅能支持自身的硬件。

      Unix历史造一段落,不过目前被称为纯种的Unix指的就是AT&T的Unix以及BSD这两套。

 


 

 

  •  1984年:x86架构的Minix操作系统诞生

      对于1979年的版权声明中,最受影响的是学校教Unix核心相关学问的教授了。1984年Andrew Tanenbaum(谭宁邦)教授开始撰写Minix这个Unix Like的核心程序,在撰写过程中,完全不看Unix核心代码,到了1986年终于完成并于次年出版Minix相关书籍。这个Minix有趣的是,它并不是完全免费的,无法在网络上下载,必须通过购买磁盘磁带才行。导致Minix的传递速度并不是很快。此外,Tanenbaum始终认为Minix主要用在教育用途上面,所以对于Minix是点到为止。

  • 1984年:GNU计划与FSF基金会的成立

      1984年Richard Mathew Stallman(史托曼)发起GNU:GNU's Not Unix(读音为new)计划,对于现今的自由软件风潮,真有不可磨灭的地位!目前我们所使用的很多自由软件,几乎均直接或间接受益于GNU这个计划。这个计划的目的是:建立一个自由,开放的Unix操作系统(Free Unix)。但是建立一个操作系统谈何容易。而且在当时GNU仅仅有自己一个人。Stallman这么想的,既然操作系统太复杂了,我就先写可以在Unix上面运行的小程序,这总可以了吧。Stallman开始参考Unix上面的其他软件,并依据这些软件的作用开发出功能相同的软件,且不看其他原码,避免吃官司。后来一堆人知道免费的GNU软件和一些专利软件差不了太多,于是便转而使用GNU软件,GNU计划开始逐渐打开知名度。

      虽然GNU计划渐渐打开知名度,但是能见度还是不够。这时Stallman又想:不认是什么软件,都要进行编译成二进制文件(binary program)才能够执行,如果能够写出一个不错的编译程序,那不就是大家都需要的软件了吗?因此他便开始撰写C语言的编译程序,那就是现在相当有名的GNU C Compiler(gcc)!开始写GCC时并不顺利,他先转而将他原先就已经写过的Emacs编辑器写成可以在Unix上面跑的软件,并公布原码。Emacs是一种程序编辑器,他可以在用户编写程序的过程中进行程序语法检验,此一功能可以减少程序员除错的时间!因为Emacs太优秀了,因此,很多人便直接向他购买。此时因因特网尚未流行,所以,Stallman将Emacs以磁带(tape)出售,赚了一点钱,进面开始全力撰写其他软件。

      1985年Stallman又创立了自由软件基金会FSF(Free Software Foundation)来为GNU计划提供技术、法律以及财政支持。同时为了避免GNU所开发的自由软件被其他人利用而成为专利软件,所以他与律师起草了有名的通用公共许可证(General Public License,GPL)。到了1990年,GNU计划已经开发出的软件包括了一个功能强大的文字编辑器Emacs,GNU C Compiler(gcc),GNU C Library(glibc)以及可以被用来操作操作系统的基本接口BASH shell。

      说到软件,这里说一下图形用户接口(Graphical User Interface,GUI)。有1984年由MIT与其他第三方首次发表了X Window System研究,之后变成Unix,Unix Like等操作系统所一致适用的标准化软件工具包及显示架构运作协议,X Window System通过软件工具及架构协议来创建操作系统所用的图形用户界面,此后则逐渐扩展适用到各形各色的其他操作系统上。现在几乎所有的操作系统都能支持与使用X。更重要的是,今日知名的桌面环境——GNOME和KDE也都是以X窗口系统为基础建构成的。1988年成立了的非营利性质XFree86组织。XFree86是X Window System + Free + x86整合名称。这个XFree的GUI在1994年Linux的核心1.0版本时整合到了Linux操作系统中。

  • 1992年:芬兰大学生Linus Torvalds写出第一版Linux 0.02

      到了1991年,芬兰的赫尔辛基大学的Linus Torvalds(托瓦兹)在BBS上面贴了一则消息,宣称他以bash,gcc等工具写了一个小小的核心程序,这个核心程序可以在Intel的386机器上运行,让很多人很感兴趣。从此开始了Linux不平凡的路程。

      早期的Intel x86架构计算机不是很受重视,因为x86的芯片对于多任务处理不佳,CPU在不同的工作间切换不是很顺畅,这个情况在386计算机推出后,有很大的改善。Torvalds在得知新的386芯片相关信息后,就决定贷款去买了一部Intel 386来玩。在研究过程中,他发现Minix虽然很棒,但是Tanenbaum(谭宁邦)教授不愿意进行功能的加强,这个时候年轻的Torvalds就想,既然如此,我何不自己来改写一个我想要的操作系统?于是他就开始了核心程序的撰写。

      好在有GNU计划提供的bash工作环境软件及gcc编译程序,让Torvalds得以顺利的撰写核心程序。最终他写出了所需的核心(Linux kernel 0.02)程序,这个玩意竟然真的可以在386上面顺利的跑起来,还可以读取Minix的文件系统。真的太好了!不过还不够,他希望这个程序可以获得大家的一些修改建议,于是他便将这个核心放置在网络上供大家下载。有趣的是,因为Torvalds放置核心的那个FTP网站的目录为:Linux,从此,大家便称这个核心为Linux了。同时为了让自己的Linux能够兼容Unix系统,Torvalds决定开始参考标准的POSIX规范。

      POSIX是可携式操作系统接口(Portable Operating System Interface)的缩写,重点在规范核心与应用程序之间的接口,这是IEEE所发布的一项标准。这个正确的决定让Linux的起步就比别人优良,因为POSIX标准主要是针对Unix与一些软件运行的标准规范,只要依据这些标准规范来设计的核心与软件,理论上,就可以搭配在一起执行。如此一来,Linux与Unix兼容共享互有软件了。同时Linux直接放置在网络下,提供大家下载,所以流通的速度相当快。

 


 

  •  Linux的发展:虚拟团队的产生

      Linux能够成功除了Torvalds个人理念与力量之外,其实还有个重要的团队!

      Linux虽然是Torvalds发明的,而且内容还绝不会涉及专利软件的版权问题。不过要靠Torvalds自己一个人的话,那么Linux要茁壮实在很困难——因为一个人的力量是很有限的。好在Torvalds选择Linux的开发方式相当务实!首选,他将Linux kernel放置在FTP上面,并告诉大家新的版本信息,等到用户下载了这个kernel且安装后,如果发生问题,或者是由于特殊需求亟需某些硬件驱动程序,那么这些使用就会主动回报给Torvalds。在Torvalds能够解决问题的范围内,他都奶快速的进行kernel的更新与除错。

      不过,Torvalds总是有些硬件无法取得的啊,那么他当然无法帮助进行驱动程序的编写与相关软件的改良。这个时候,就会有社区的志工跳出来说:“这个硬件我有,我来帮忙写相关的驱动程序。”因为Linux的核心是Open Source的,志工们很容易跟随Linux的设计架构,并且写出驱动程序/软件带入核心中,并且加以测试。只要测试可以运行,并且没有什么主要的问题,那么他就会很乐意将志工们写的程序代码加入核心中。再次证明,Torvalds是个很务实的人,对于Linux核心所欠缺的项目,他总是“先求有且能跑,再求进一步改良”的心态!这让Linux使用者与志工得到了相当大的鼓励!因为Linux的进步太快了!用户要求虚拟内存,结果不到一个星期推出的新版Linux就有了!这不得不让人佩服啊!特别值得注意的是,这些Torvalds的Linux的发展副手,以及及自愿传送修补程序的志工,其实都没有见过面,而且彼此在地球各个角落,大家群策群力的共同社发展出现今的Linux,我们称这群人为虚拟团队!

      1994年终于完成了Linux核心正式版1.0。1996年完成了2.0版。此外,Torvalds指明了企鹅为Linux的吉祥物。

 


 

 

  • Linux distributions

      我们知道Linux是一个操作系统最底层的核心及其提供的核心工具,他是GNU GPL授权模式,所以,任何人均可以取得原码并修改。此外,因为Linux参考POSIX设计规范,于是兼容Unix系统,故亦可称之为Unix Like的一种。Linux的出现让GNU计划放下了心里原一块大石头,因为GNU一直以来就是缺乏核心程序,导致他们的GNU自由软件只能在其他的Unix上跑。Stallman认为Linux的全名应该为GNU/Linux。因为GNU让大多软件围绕Linux操作系统进行开发。这样,可以在Linux上面运行的软件也越来越多。

      这时,一个Linux Kernel + Softwares + Tools的可完全安装的东西,我们称之为Linux distribution。一般中文翻译成可完全安装套件,或者Linux发布商套件等。

      由于GNU的GPL授权并非不能从事商业行为,于是很多商业公司便成立来贩卖Linux distribution。不过,由于发展Linux distributions的社群与公司实在太多了,例如有名的Red Hat,SuSE,Ubuntu,Fedora,Debian等等。所以很多人都很担心,如此一来每个distribution是否都不相同呢?这就不用担心了,因为每个Linux distributions使用的kernel都是http://www.kernel.org所发布的。

 


 

 

      最后总结一下吧。

posted @ 2013-09-03 17:22  Angus艳  阅读(554)  评论(0编辑  收藏  举报