从 Unix 到 Linux 这一段历史

为什么大家常常会说,Linux是很稳定的一套操作系统呢?这是因为,Linux他有个老前辈,那就是Unix家族!有这个前辈的提携,让Linux这个小老弟很快的就成为一套稳定而优良的操作系统啦!所以,底下我们来谈一谈Unix到Linux的这一段历史吧!

早在Linux出现之前的二十年(大约在1970年代),就有一个相当稳定而成熟的操作系统存在了!那就是Linux的老大哥『Unix』是也!怎么这么说呢?!他们这两个家伙有什么关系呀?这里就给他说一说!众所皆知的,Linux的核心是由Linus Torvalds在1991年的时候给他开发出来的,并且丢到网络上提供大家下载,后来大家觉得这个小东西(Linux Kernel)相当的小而精巧,所以慢慢的就有相当多的朋友投入这个小东西的研究领域里面去了!但是为什么这的小东西这么棒呢?!然而又为什么大家都可以免费的下载这个东西呢?!听我慢慢的道来!

  • 一个没有完成的梦想:Bell, MIT与GE的『Multics』系统

早期的计算机并不像现在的个人计算机一般,他可不是一般人碰的到的玩意儿,除非是军事或者是高科技用途才有可能接触到这类的Computer!而如前面所言,有计算机硬件还需要操作系统的配合才能够发挥计算机的效能,不过,在那个年代,由于计算机算是『奢侈品』,喔~应该说是『贵重物品』,所以,可能一间学校就只有一部大型主机当然,那个年代所谓的大型主机仍然无法提供适度的运算能力的。不过,既然只有一部大型主机,然而有许许多多的教师、学生要想要来使用,怎么办呢?为了解决这个问题,在1960年代初期,麻省理工学院(MIT)发展了所谓的『兼容分时系统(Compatible Time-Sharing System,CTSS)』,就字面上的意义来看,他主要让大型主机可以提供多个终端机联机进入主机使用主机的资源,(附带一提,当时的终端机(Terminal)本身并没有软件或者可供使用的资源,这些终端机要能使用,一定必需要联机登入主机之后,才能够使用主机的资源来工作!)当时可以让约30位使用者联机使用主机。而为了让这个分时系统更加的强大,所以,在1965年前后由贝尔研究室(Bell)、麻省理工学院(MIT)及奇异电器公司(GE)开始来共同开发一个名为Multics的大型计划,目标是想让大型主机可以联机300位以上的使用者。不过,在奋斗了四年之后,该计划仍然宣告不治...喔!是失败啦!(注:Multics有复杂、多数的意思。

  • 一个小型档案系统的产生:1969年Ken Thompson的小型file server system

在复杂的Multics系统的计划失败后,贝尔研究室当然就退出该计划。就在这个计划解散之后,曾经参与Muitics的贝尔研究室的成员KenThompson由于自己工作上的需求,需要一套档案存取的小型操作系统,便在1969年的时候以DEC公司(Digital Equipment Corporation)的计算机PDP-7为硬件基准,设计了一个适合自己工作环境的小型档案系统,其中也含有他自行开发的一些小工具。那个系统就是最早期的Unix的源头!当初Ken设计这个档案系统时,主要是为了自己的存取方便所设计的简单OS,因此将原有的Multics系统大幅度的简化,不过,在当时还并没有Unix这个名词的出现!

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

由于Thompson写的那个操作系统实在太好用了,所以在Bell研究室内部广为流传,并且数度经过改版。到了1973年,Bell研究室的Dennis Ritchie等人为了让这个系统的执行效能更佳化,所以使用编译效能更好的C语言将原有的1969年的那个系统之核心大幅度的改写过,并且确定该操作系统名称为Unix,呵呵!那就是最早的Unix操作系统!不过,由于这个操作系统是由这一群工程师所开发完成的,而且使用者也大多是这方面的工程师,因此造成了后来Unix系统接口较难被一般使用者接受的情况@_@(注:相对于Multics,Unix具有单一的意思!)

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

在Unix早期的发展中,有一件相当重要的事情,那就是BSD的诞生!由于C语言是一种高级语言,他可以被应用在不同的硬件架构上面,而Unix本身就是C语言写成的!在Unix发表之后,柏克莱大学(Berkeley)的教授对于这个操作系统相当的有兴趣,在经过取得Unix的原始码,并且几经修改之后,终于在1977年发表了第一代的Berkeley Software Distribution(BSD)。这个BSD是Unix的一个分支,他的发展对于Unix有相当大的影响,例如后来的Sun公司就是使用BSD发展的核心进行自己商业的Unix版本的发展的!


  • 百家齐鸣的Unix版本

由于C语言是一个相当高阶的程序语言,他与硬件没有很直接的相关性,例如你的Windows也可以执行C程序语言!而由于Unix是由C语言写成的,因此,也就是说,你只要经过稍微的原始码修改程序,就可以在不同的硬件架构上面执行这个操作系统!后来,由于Unix的方便性,因此很多的商业公司及学术机构就加入这个操作系统的研发。不过,也由于Unix的便利性与改写容易,因此就造成了很多的不同版本的Unix,例如ATT的System V、加州大学的BSD版、IBM的AIX等等。


由于『操作系统的核心(Kernel)必须要跟硬件配合,以提供及控制硬件的资源进行良好的工作!』,而在早期每一家生产计算机硬件的公司还没有所谓的『协议』的概念,所以每一个计算机公司出产的硬件自然就不相同!因此他们必须要为自己的计算机硬件开发合适的Unix系统,所以,他们自行开发的Unix当然只能配合本身的硬件配备!例如在学术机构相当有名的Sun、Cray与HP就是这一种情况,他们开发出来的Unix并没有办法在其它的硬件架构下工作的!(我们都称呼这种系统与配备为『超级计算机』)!由于没有厂商针对个人计算机设计Unix系统,因此,在早期并没有支持个人计算机的Unix操作系统的出现(当然,这是由于早期的个人计算机并没有现在这样风行就是了!),每一家公司自己出的Unix虽然在架构上面大同小异,但是却真的仅能支持自身的硬件,所以,早先的Unix只能与服务器(Server)或者是大型工作站(Workstation)划上等号


此外,由于版本太多了,而大家都是同样来自于Unix这个老祖宗,当然也都称自己是Unix,好了,如此一来,许多商业公司自然就会有类似的软件发表,喝!那么自然就有些许的商业纠纷!真是伤脑筋~

                              

  • 1984年的GNU与Free Software Foundation

Unix在商业上面的问题让许多对于Unix喜好者感到相当的忧心,其中一个就是有名的Richard M. Stallman先生。他认为,Unix是一个相当好的操作系统,在这个系统上面,如果大家能够将自己所学的贡献出来,那么这个系统将会更加的优异!Stallman先生认为最大的快乐就是让自己发展的良好的软件让大家来使用了!而且,由于每个人的工作环境(指软硬件平台)可能都不太相同,所以,他也强调应该要有Open Source的概念,让大家都能够分享这一份的心得!他认为,有了Open Source之后,你的程序将有很多的人可以帮忙检验,将使得Unix社群更佳的茁壮。为了自己的理想,Stallman在1984年实际创立了GNU与自由软件基金会(Free Software Foundation, FSF),并创作了许多『自由软件』供大众来使用,此外,对于其作品以自由(free)的GNU General Public License(GPL)的授权模式提供大众使用。这个FSF的核心观念是『版权制度是促进社会进步的手段,版权本身不是自然权力。』而且,Stallman的GNU General Public License一直强调Free这个字眼!

他是这样说的:『"Free software" is  a matter of liberty, not price. To understand the concept, you should think of "free speech", not "free beer"."Free software" refers to the users freedom to run, copy, distribute,study,change, and improve the software』大意是说,自由软件并不是指『免费』的,而是指具有『自由度,freedom』的软件,什么是自由度呢?也就是你在取得这个软件之后,可以进行修改、进一步发表与复制在不同的计算机平台上面。这无疑是个好消息!因为如此一来,你所拿到的软件可能原先只能在Unix上面跑,但是经过原始码的修改之后,你将可以拿他在Linux或者是Windows上面来跑!Stallman先生更直接对自由度下了这样的说明:

    • 你可以根据任何你想要的提议(purpose)来跑这个Free的程序;

    • 你可以在理解了这支Free的程序的运作之后,将他修改成你所想要的样式与功能;

    • 你可以将你自己修改过的Free的程序再次的发表,以帮助你的朋友们;

    • 你可以将这支Free的程序进行改良,并将改良过的程序公开发表,以造福社群!

简单的来说,GPL授权具有几个特点:

    • 任何软件挂上GPL授权之后,即为自由的软件,任何人均可取得,同时,亦可取得其原始码(Source Code);

    • 取得GPL授权之软件后,任何人均可进行修改原始码,以符合自己的喜好;

    • 除此之外,经过修改的Source Code应回报给网络社会,提供大家来参考!


但请特别留意,并非挂上GPL之后的软件就不可贩卖,这个是不同的两回事!举个例子来说,在RedHat的官方网站上面提供RedHat释出的Linux安装光盘提供大众下载,但是RedHat本身依然有在卖Linux的套件,而且还卖的『很不便宜!』为何可以如此呢?呵呵!因为RedHat他们卖的数据当中,含有相当大量经过整了的文件数据,这些数据虽然在网络上面可以下载,然而花了这么多的时间来整理这些数据,当然应该要给予相当程度的报酬!您说是吧!所以,请留意喔!并非GPL不可用来营利


这个GNU对于后来的Linux有相当深远的影响,由于Stallman先生发展了GNU这个计划中,主力在推出各种方便而优异的工具软件,例如广为大家所知的Emacs文书编辑器、GCC,BASH..然而没有作业平台怎么使用这些软件呢?然而,由于他倡导的自由软件,让后来的心血能很快的接触原始码来发展软件,这就是后来的Linux的故事....这是后来的故事,等一下来说~

  • 1988年的图形接口X-Free86project

有鉴于图形使用者接口(Graphical User Interface,GUI)的需求日益加重,在1984年由MIT与其它协力厂商首次发表了X Window System,并且更在1988年成立了非营利性质的XFree86这个组织。所谓的XFree86其实是X window system与Free及x86系统架构的整合名称呢!而这个XFree86的GUI接口更在Linux的核心1.0版于1994年释出时,整合于Linux操作系统当中!


  • 1991年芬兰大学生Linus Torvalds的一则简讯:

在后来的几年内,由于计算机硬件工业的强力运作,以intel主导的x86系统架构的个人计算机大行其道,所以个人计算机算是相当流行的一个机器了!但在此时,人们使用的大多还是旧旧而且需要吃很多系统资源的DOS系列或其它的操作系统。此时,有个芬兰的郝尔辛基大学(Helsinki)Linus Torvalds学生做了件不寻常的事情!

Linus手边有个 Minix系统(这也是Unix的分支),他对这个操作系统相当的有兴趣!此外,由于当时他正好买了一部386的计算机,所以他就想说,咦!这个Unix这么棒!这么稳定,那我可不可以将他移植到个人计算机(X86架构)来使用呢?!好在由于Stallman提倡的Open Source风气,他得以接触到一些source code,而就经由这样的一个想法,呵呵!他就很有心的读取Unix的核心,并且去除较为繁复的核心程序,将他改写成可以适用于一般个人计算机的x86系统上面,到了1991年,他终于将0.02版的hobby放到网络上面供大家下载,并且由于hobby受到大家的肯定,相当多的朋友一起投入这个工作中!终于到了1994年将第一个完整的核心Version1.0释出!并且造成目前的大流行.....由于Linux kernel的发展是由『虚拟团队』所达成的,大家都是透过网络取得Linux的核心原始码,经由自己精心改造后再回传给Linux社群,进而一步一步的发展完成完整的Linux系统,至于Torvalds先生是这个集团中的发起者。由于这个群策群力的缘故,Torvalds先生将Linux定为同样造福大家的GNU授权模式!


  • 企鹅的来源

1994年发表Linux正式核心1.0的时候,大家要Linus Torvalds想一只吉祥物,怪怪的Torvalds突然想到小时候去动物园被一只企鹅追着满地打滚~还被咬了一口!既然想不到其它的吉祥物了,干脆就以这支企鹅来当吉祥物算了!所以,呵呵!目前我们常常看到这一只企鹅就是这么来的咯! 

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭