首页 > 程序人生 > 为自由而生的Linux操作系统
2014
07-14

为自由而生的Linux操作系统

“要想成为计算机的主人,而不是它的奴隶,你就应该使用Linux!”

——甘卡兹(美国佐治亚州亚特兰大市的高级编程及应用顾问)

为自由而生的Linux操作系统

 

1991年8月25日,Linux Torvalds宣告Linux操作系统的诞生。此后,开源的Linux系统吸引了各路开发商和研究人员的关注。如今,Linux已经深入到我们生活中的方方面面,存在于你的手机中、ATM机中、你的桌面、电影中、你的汽车中等等许许多多的地方及领域内,可以说是无处不在。

 

一、Linux前传

Linux的起源可以追溯到操作系统的鼻祖——UNIX。1969年,AT&T贝尔实验室的Ken Thompson(图1右侧人物)开始利用一台闲置的PDP-7计算机开发一种多用户、多任务的操作系统。没过多久,Dennis Richie也加入了这个项目,并吸取了麻省理工学院更早的一个名为MULTICS操作系统项目失败的教训。在他们二人的共同努力下,UNIX诞生了。

03bd7a0193a9507af8fe5c22a65e0930

 

C语言之父——Ken Thompson(右一)

早期UNIX是用汇编语言编写的,但从其第三个版本开始,他们为了提高系统的可移植性和开发效率,专门为UNIX开发了一种崭新的编程语言——C语言,并用C语言重新编写大部分代码。

通过这次重新编写,UNIX得以移植到更为强大的DEC PDP-11/45与11/70计算机上运行。在UNIX发展早期,其源代码是公开的,并且开发文档也十分详细,所有这些都为人们进行进一步的研究提供了方便,因此UNIX很快成为当时欧美各大高校讲解操作系统的蓝本,成为当时校园最流行的操作系统。不仅如此,加州大学伯克利分校还根据UNIX源代码开发出了鼎鼎大名的BSD,即UNIX著名的“变种”之一。不过好景不长,从UNIX的Version 7开始,AT&T将UNIX商业化,更换了许可协议,不再允许先前自由开放的做法。

为了方便教学和研究,1997年图灵奖(计算机界的诺贝尔奖)的获得者Andrew S. Tanenbaum((图2,该人也是Linux创始人Linus的老师)以Version 7为蓝本开发了基于Intel X86平台的Minix。此外,Andrew Tanenbaum还著有一本被世界各大高校广泛采用的经典操作系统教材——《现代操作系统》(《Modern Operating System》(图3)。

294e3b422ce16490a98ff536892392ac

631dcaf11bfad4ca369e8c824f195231

操作系统的经典之作
Andrew S. Tanenbaum ——Modern Operating System

Minix与Version 7在系统调用级兼容,但没有任何UNIX代码。因此,可以不受AT&T许可协议约束,不仅如此,Minix还公开源代码,允许用于教学科研目的。

可能是Linux过于光彩夺目,掩盖了其启蒙前辈Minix的风采,以至于大家对它知之甚少,了解它的人寥寥无几,最新的Minix是3.0版本,这个版本的图形用户界面也于2007年1月10日正式发布,Minix不仅仅是一个教学系统,它的应用范围也越来越广。

3cee345f294098f0fe9e538012b16771

二、Linux传奇

而Linux,则源于一个芬兰赫尔辛基大学学生——Linus Torvalds(Andrew S. Tanenbaum的学生)的简单需求:由于当时的UNIX是十分昂贵的操作系统,而Linus Torvalds 当时只是个学生,并希望能在个人电脑上使用类似UNIX的系统,所以Linus在上大学时主要使用Minix。在使用中Linus对Minix许多地方都不是很满意,但由于受到Minix协议的限制,无法修改和完善,后来Linus决定自己编写一个操作系统,他以自己熟悉的Minix和UNIX作为原型,在一台Intel 386 PC上开始了他的工作。

由于Linus的进展很快,受工作成绩的鼓舞,他决定将这个项目通过互联网与其他人分享。1991 年8 月25 日,Linus向所有Minix用户询问”What would you like to see in Minix?”(“你最想在Minix中见到什么?”),在该消息中(图5)他首次透露出正在开发一个(免费的)386(486)操作系统,并且说只是兴趣而已,代码不会很大,也不会象GNU 的那样专业。开发免费操作系统这个想法从4 月份就开始酝酿了,希望大家反馈一些对于Minix 系统中喜欢那些特色不喜欢什么等信息,由于实际的和其它一些原因,新开发的系统刚开始与Minix很象(并且使用了Minix的文件系统)。并且已经成功地将bash(1.08 版)和gcc(1.40 版)移植到了新系统上,而且在过几个月就可以实用了。

3c0dac56a5f02238d4c5260241ed5184

Linus在1991年8月25日,向所有Minix用户询问的部分信息

 

最后,Linus 声明他开发的操作系统没有使用一行Minix 的源代码;而且由于使用了386 的任务切换特性,所以该操作系统不好移植(没有可移植性),并且只能使用AT 硬盘。对于Linux 的移植性问题,Linus 当时并没有考虑。但是目前Linux 几乎可以运行在任何一种硬件体系结构上。

到了1991 年的10 月5 日,Linus 在comp.os.minix 新闻组上发布消息,正式向外宣布Linux 内核系统的诞生(Free minix-like kernel sources for 386-AT)。这段消息可以称为Linux 的诞生宣言,并且一直广为流传。

a39c01814ca7a17b473fda0c08f0c06f

1991年10月,Linus在USNET新闻组——comp.os.minix上发的文章。

 

其中比较重要的内容翻译过来是:“我正在写一个类似Minix的基于AT-386的免费操作系统,现在终于到了可用的状态,我愿意公开代码以便使它得到进一步的发展……”

也就是因为这篇文章,Linux才开始了以后的快速发展。其实此时发表的版本,也就是第一个Linux内核的Release(正式版本)——Linux Kernel 0.0.2。从上面的文章可以了解到Linus Torvalds本人设计Linux的初衷以及Linux的精神:

Linux是基于Andrew S. Tanenbaum开发的Minix,但Linux比其更加开放和自由。

最初,Linux是以Linus的386硬件平台为设计平台,但目前Linux支持的平台几乎涵盖了所有的主流硬件平台,例如Intel X86系列、AMD64系列、IBM PowerPC系列和Sun SPARC系列。需要注意的是,虽然Linux和UNIX有很大的渊源,但Linux并没有包括标准UNIX的源代码,它是按照公开的POSIX标准重新编写的。不过,Linux使用了大量的GNU软件。

Linux从1991年发布到互联网以后,得到了越来越多的黑客、程序员的青睐和支持。他们来自于世界各地,通过互联网,无私地为人类奉献自己的智慧,正是他们积极地推动了Linux的高速发展,成就了一个自由软件世界。经过这么多年的高速发展,Linux无论从可用性上还是功能上都日趋成熟,基本形成了与UNIX、Windows三分天下的局面。

由于Linux是由Linus开发的,所以这个操作系统的名称自然也以Linus’s UNIX来命名,它的英语发音类似于“丽尼克思”,重音在第一个字上,大家可以模仿Linus Torvalds本人的Linux发音,该文件可从UbuntuChina互动社区下载,下载地址为:http://dwz.cn/dnb3320,其内容是:“Hello,This is Linus Torvalds and I pronounce Linux as Linux.”同时Linux以一只可爱的企鹅作为自己的Logo,它的名字叫做Tux。标志的由来是因为Linus在澳洲时曾被一只动物园里的企鹅咬了一口,便选择了企鹅作为Linux的标志。

619412603d16902c80e4f03519772ec7

 

三、Linux的全称-GNU/Linux

GNU/Linux是Linux的全称,通常大家都习惯于将GNU/Linux简称为Linux。也许正是大家习惯于使用简称,所以就淡忘了其全称。严格说来Linux只是一个内核(Kernel),如果没有GNU提供的丰富软件什么也干不了,而大家使用的各种Linux发行版本其实只是Linux内核配以GNU丰富的应用的软件而已,所以作为一个Linux使用者,首先要知道Linux的全称——GNU/Linux,这很重要。

 

上面提到Linux的全称是GNU/Linux,其严格说来只是个内核(Kernel)而已。内核主要负责管理、分配计算机软件和硬件资源,具体包括管理和控制硬件设备、内存管理、虚拟文件系统、系统进程等比较核心和底层的工作。

随着内核的发展,其功能范围已经不仅仅局限于此,还实现了很多其他重要功能,如声卡驱动功能ASLA、网络包过滤功能Netfilter、虚拟化支持功能KVM等,但这不包括大家经常使用的程序,如浏览器、OpenOffice.org办公套件、多媒体播放或制作程序,以及系统和网络维护管理工具等。与这些程序相比,内核就显得“底层和原始”得多了。

需要强调的是,一个优秀的操作系统,不仅需要强大的核心功能,更需要众多优秀的应用程序,否则仅有一个好的内核,也是无法充分发挥其优秀功效的。

讲到这里,就不能不提著名的GNU(Gnu is Not UNIX)项目了,可以说正是这个著名项目才有了后来轰轰烈烈的自由软件运动。GNU项目创立于1984年,创始人为Richard Stallman,其近照如图7所示。

1c61bf563fce5853a88803818edc7a78

Richard Stallman近照

Stallman先生1974年毕业于哈佛大学,获得物理学MBA学位。1971年,年轻的Stallman 进入麻省理工学院(MIT)人工智能实验室工作,成为软件共享社区的重要成员。作为实验室的系统黑客,Stallman的工作就是改进系统。在20世纪70年代中期,当时的软件是鼓励自由复制,而计算机业的传统就是一切为人人所共享。但好景不长,20世纪70年代末,以微软公司创始人比尔盖茨的《至电脑业余爱好者的一公开信》为标志,以世界知识产权组织制定的《伯尔尼公约》为框架,软件进入了版权时代,这种制度是通过一个偶然的事件影响了Richard Stallman先生。

事情是这样的,当时施乐(Xerox)公司赠送了一台激光打印机给实验室,要知道20世纪70年代的激光打印机大得如吉普车一样,放置这么一个庞然大物就成了问题,最后发现只有实验室的9楼有地方放下它,激光打印机的打印速度自然没得说,只是一旦出了问题,哪怕只是像卡纸这样的小问题,人们都不得不爬上九楼,于是乎,一天的工作时间就这样爬上爬下,这谁受得了,好在施乐公司随激光打印机附带了驱动程序,实验室的人就把控制打印的驱动程序功能做了修改,问题才得以解决。但到了1978年,一切都改变了,施乐又送了一台名为Dover的新打印机给实验室,可这次,他们不再提供打印机的驱动的源代码。Staman先生想获得驱动代码,从而改进打印机功能,结果被严正拒绝,由此,Stallman再也无法说不公开协议是纯洁清白的了。

Stallman希望做一名程序员并能为这个社会作出更大的贡献,所以他认为当时最需要的是开发一个自由的操作系统来改变这种状态,于是GNU项目应运而生,通过从其采用程序设计中递归方式命名就可以看出,其目标是开发一个类UNIX但又不是UNIX的免费操作系统。该项目包括内核、Shell和应用程序等多个项目,几乎涵盖了应用的方方面面。这里着重介绍的是GNU的内核Hard项目,由于其开发过程中因种种原因而一再滞后。而这时,恰好Linux诞生了,填补了GNU应用平台的空缺。

Linux免费的内核推出后,由于其宽松的授权,允许用户或厂商自行定制内核和应用程序的特性,再加上GNU数量巨大、功能丰富的应用程序,所以很多厂商或个人纷纷推出自己的定制和组合方案,这就构成了我们当今能够看到的丰富多彩的Linux发行版本。所以不论Linux发行版的名称或开发厂商是什么,它们都同属于Linux范畴,因为它们有着相同的内核。这个内核就是源自Linus Torvalds维护Linux Kernel项目,其官方网站地址为http://www.kernel.org/,最新的内核都在这里发布,对于内核“喜新厌旧”的朋友可以来这里下载最新的内核进行编译和升级。

四、Linux内核的进化

从狭义来说,Linux其实只是一个内核-kernel,大家可以到https://www.kernel.org/去查看内核的详细信息。

b63a63eae802059b970c726196f2c4ae

用Chrome浏览器Linux内核的网站,可以看到有很多内核可供下载,最新的稳定内核 3.10.7(Latest Stable kernel)最为醒目,单击那个黄色按钮即可下载到内核的源代码。再仔细看看,下面还有一些列内核版本,有stable字样的是内核的稳定版本,大家如果要自己动手编译Linux内核首选就是带有stable字样的版本,而有longterm字样则是长期维护版本。此外,每个Linux内核版本都有一个版本号,通常的版本号形式为X.Y.Z,如最新稳定版本为3.10.7,其中X表示内核的主版本号,Y则是辅助版本号,奇数为开发版本,偶数为稳定版本,而Z则为内核修订编号。

此外,Linux内核对于Linux来说还有更重要的意义,正是由于Linux有一个统一的并有Linus本人维护的内核,才使得Linux不会重蹈UNIX四分五裂的覆辙,才有Linux繁荣的今天。

 

 

五、Linux在高性能计算(HPC)和超级计算机领域大显身手

与其他操作系统相比,Linux还具有以下三大突出优势:

· 可靠性高

实践证明,Linux是能够达到主机可靠性要求的少数操作系统之一,许多Linux主机和服务器在国内和国外大中型企业中每天24小时,每年365天不间断地运行。这是Microsoft Windows Server等操作系统所不能比拟的。

· 彻底的开放性

这是Linux系统最重要的特征之一,也是Linux强大生命力所在。开放系统的概念已被计算机业界普遍接受,而且成为今后发展的主要趋势。所有的计算机厂商都声称自己的产品是开放系统,而且开放的概念也在不断发展和完善,几乎所有的系统都能在其中找到自己的位置。但程序上是有明显差别的,我们认为系统最本质的特征应该是其所有技术的规格说明是可以公开并且自由使用的,而且是不受某一家具体厂商所垄断并控制的。Linux是最能充分体现这一本质特征的开放式操作系统,正是这种较为彻底的开放性,使Linux的发展充满动力和生机。

· 强大的网络功能

实际上,Linux诞生于互联网,并且也是依靠互联网才迅速发展起来的,因此Linux具有强大的网络功能也就不足为奇了。它支持所有标准互联网协议(事实上,Linux是第一个支持IPv6的操作系统),可以轻松地与TCP/IP、LANManager、Windows for Workgroups、Novell Netware或Windows NT网络集成在一起,还可以通过以太网或调制解调器连接到Internet上。由于低成本、高可靠、丰富的Internet应用软件,Linux成为互联网服务提供商ISP中最流行的服务器操作系统。任何Linux发行版都提供了电子邮件、文件传输、网络新闻等服务软件,使得Linux不仅能够作为网络工作站使用,更可以充当各类服务器,如应用服务器、文件服务器、打印服务器、邮件服务器、新闻服务器等。

976ca87f8c2f910fd2befba0abd1014b

为Linux而设计的服务器

正式由于linux这三大突出优势,使得Linux在世界超级计算机500强排行榜中占据了462个席位,比率高达92%。基于Windows的超级计算机仅有2个席位,还有1个基于BSD的系统,11个基于混合操作系统,另外24个基于UNIX系统。

六、Linux在智能手机,平板电脑以及游戏机领域

Linux系统是世界上唯一能够在嵌入式设备,如智能手机、平板电脑、游戏机上运行的操作系统,没有其他操作系统能够做到这一点。

Linux的低成本、强大的定制功能以及良好的移植性能,使得Linux在嵌入式系统方面也得到广泛应用。流行的TiVo数字视频录像机还采用了定制的Linux,思科在网络防火墙和路由器也使用了定制的Linux。 Korg OASYS、Korg的KRONOS、雅马哈的YAMAHA MOTIF XS/Motif XF音乐工作站、雅马哈的S90XS/S70XS、雅马哈MOX6/MOX8次合成器、雅马哈MOTIF-RACK XS音源模块,以及Roland RD-700GX 数码钢琴均运行Linux。 Linux也用于舞台灯光控制系统,如WholeHogIII控制台。在游戏领域SONY利用Linux系统为其著名的游戏机Play station打造了操作系统。

b48da8abf7751e7fd33276da6b562539

目前最为流行的Android系统正是基于Linux内核

在手机、平板电脑等移动设备方面,Linux也得到重要发展,基于Linux内核的操作系统也成为最广泛的操作系统。从2007年起,手机和掌上电脑上运行基于Linux的操作系统变得更加普遍,例如诺基亚N810 , Openmoko的Neo1973 ,摩托罗拉的ROKR E8。Palm(后来被HP公司收购)推出了一个新的基于Linux的webOS操作系统,并使用在新生产的Palm Pre智能手机上。MeeGo是诺基亚和英特尔于2010年2月联合推出的基于Linux的操作系统,诺基亚也推出了使用MeeGo操作系统的N9手机。2011年9月28日,继诺基亚宣布放弃开发MeeGo之后,英特尔也正式宣布将MeeGo与LiMo合并成为新的系统Tizen。Jolla Mobile公司成立并推出了由MeeGo发展而来的Sailfish操作系统。

基于Linux内核的智能手机系统Android已经成为世界上最为流行的移动操作系统,基于Android系统的智能手机以及平板电脑大量涌现,Android应用总数超过100万,应用次数超过100亿次,标志着Android生态系统基本成熟。而所有这些辉煌的成就都离不开Linux这个幕后英雄。Linux发行版没有实现的桌面梦想已经被后起之秀Android实现了。

最后编辑:
作者:M.Poison
M.Poison
这个作者貌似有点懒,什么都没有留下。