欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

操作系统Unix、Windows、Mac OS、Linux的故事

程序员文章站 2022-04-23 19:46:34
电脑,计算机已经成为我们生活中必不可少的一部分。无论是大型的超级计算机,还是手机般小巧的终端设备,都跑着一个操作系统。正是这些操作系统,让那些硬件和芯片得意组合起来,让那... 14-04-28...

我们熟知的操作系统大概都是windows系列,近年来apple的成功,让macos也逐渐走进普通用户。在服务器领域,恐怕linux是无人不知无人不晓。他们都是操作系统,也在自己的领域里独领风骚。这都还得益于另外一个古董级别的操作系统--unix,虽然说古董级别,只是他年纪大了,性能和功能,unix依然有着顽强的生命力。

我们来沏杯茶,回顾unix的传奇,讨论讨论windows与mac os的恩恩怨怨,还有linux的迅速崛起。

unix 传奇

时光追溯到上世纪六十年代,多数计算机都采用批处理命令。为了研发一个多用途,多用户的操作系统。有三个著名的公司联合起来进行研发。三个知名的公司是美国电话及电报公司(american telephone and telegraph inc.;at&t)、通用电器公司(general electrics;g.e.)及麻省理工学院(massachusetts institute of technology;mit)。整个项目研发出来的操作系统被称之为multics。可是后来,multics项目开始迷失,目标过于庞大,功能过于复杂,研发的人们越来越不明白这个项目将会如何走下去。最终隶属 at&t 公司的贝尔实验室(bell labs)退出了这个项目。

值得一提的是 bell labs 。这个实验室在整个人类科技史上都占据重要地位,电话就是在这个实验室诞生。里面有着才华卓越的工程师和黑客。由于贝尔实验室退出了multics,那些习惯了使用multics的贝尔实验室工程师突然之间无法使用multics,这无疑类似把剑客的剑给没收了。当时贝尔实验室有个叫ken thompson的人,他负责为为multics这个操作系统写游戏了个叫“space travel”的游戏。为了让这个游戏能继续下去,他不得不重新编写一个操作系统。当他去申请计算机的时候,显然领导不会因为一个游戏批准你一台计算机。早起的计算机并不像我们现在的pc机那么小巧。当时计算机可是巨无霸,每一台的造价也极其昂贵,只有企业和科研机构才能买得起。

数字设备公司(digital equipment corporation;dec)生产两种小型计算机 pdp系列和vax。 ken无法得到pdp-11,却在一个角落了发现了pdp-7,虽然这个机器已经落后, ken还是觉得如获至宝,随后他很顺利的用汇编完成了操作系统,并写完了游戏。有趣的是,ken的一个同事brian kernighan非常不喜欢这个系统,嘲笑ken thompson说:“你写的系统好真烂,干脆叫unics算了。”(unics在英文里表示单一,与mult相反)。ken对brian的评价到没有多大排斥,本身他的目标是游戏,而不是操作系统,也接受了同事的命名。然后他更乐于推广他的游戏,让同事们茶余饭后娱乐娱乐。那时是1969年8月,恰巧这一年,芬兰诞生了一个婴儿,linus torvalds啼哭的来到这个世界。

事情总是环环相扣,可是谁也不知道这环将会扣向哪一环。ken的另一个同事dennis ritchie对ken的游戏没有多大兴趣,倒是对unics情有独钟。当时ken用汇编完成的unics,如果换到pdp-11上,unics想要运行必须重新冲重新编写代码移植。ken无法为当时不同的机型提供上百个unics版本。这时,dennis ritchie 在bcpl基础上,开发了一种新的高级语言将unics重新写了一遍,并命名为 unix。这个语言是将bcpl语言进行了升级,也就是后来大名鼎鼎的c语言。尽管是游戏和嘲讽,unix和c诞生了,并且完美地结合成为一个统一体,c与unix很快成为世界的主导。新的历史,开始了。

当时的美国公司,工程师研发完毕,往往会有休假,一休就是一年。旅游,探险都是好方式,可是 ken选择了到伯克利(berkeley)进行教学。也难怪欧美的教育科技那么发达,总有黑客将知识和技术进行传承。由于当时at&t被美国反垄断制裁,bell实验室不能销售unix。只能无偿提供大家学习研究。正是因为这样开放环境,使得unxi的功能和特性被不断的丰富。在berkeley,有一个专门研究unix小组,他们为unix提供了很多新特性,例如著名的 tcp/ip协议。并完成了bsd版本。很快,就有公司看到了bsd的商机,分分购买bsd进行商用。

这个时候,at&t公司对其他机构拿着unix赚钱自己却一无所获很不爽。那是一个at&t妄图私有化的unix的时代。为了私有化unix,1986年ieee指定了一个委员会制定了一个一个开放作业系统的标准,称为 posix (portable operating systems interface)。并和bsd进行法律官司,at&t再次被反垄断,这场官司一直打到 at&t再将自己的unix系统实验室卖掉。当然,at&t的unix取得了这个标准制订战争的胜利,并取得了unix注册商标。此时bsd的拥护者自喻为冷酷无情的公司帝国的反抗军。独立的bell实验室就可以单独销售unix,当时价格昂贵。也就在这个时候,人们被昂贵的unix吓怕了,使用的人数骤减。与此同时,berkeley bsd小组的bill joy开始创办了一家公司,也就是后来全球知名的sun公司。就销售量来说,at&t/unix始终赶不上bsd/sun。并且sun生产的小型工作站,风靡整个市场,很快就将 dec 击败,并且让dec退出了历史舞台。

bsd 仍然还在官司缠身,可是其他公司都看到了unix的商机,分分投靠 at&t 并开发自己的unxi,其中有著名的ibm的aix,hp的hp-ux,sun公司的solaris,还有西雅图一个不知名的小公司,也生产着一个叫xenix的unix。时光继续走着,这个小公司的三个创始人打着扑克,心里还在构思。自己的公司如何挑战并取代那些巨无霸公司,成为是microsoft未来的梦想。

windows与mac os的恩恩怨怨

毫无疑问,unix的诞生,对与计算机的发展起到了至关重要的作用。人们可以通过操作系统去使用计算机。然而在当时,尽管dec生产的小型机pdp系列和vax系列比起早起的巨无霸已经算是比较苗条了,可是对于个人而言,计算机还是相当大的东西,并且造价昂贵,无法进行民用。

为了将大型计算机缩小体积,很多公司都在尝试。1975年,ibm推出了早起的pc兼容机。我们知道,操作系统与cpu是有直接关系,不同的cpu运行的操作系统是不一样的。当时unix价格昂贵,ibm一台pc兼容机造价2w美元,操作系统都要花4w。这样还是无法民用,因此ibm选择了一家小公司inter生产的x86系列的cpu。inter是小公司?没错,当时确实是这样,小到不起眼。而主流生产cpu的却是摩托罗拉,摩托罗拉生产的m6800比inter的技术和设计上都要先进很多,更重要的是这个可以运行unix。ibm放弃了兼容机上的unix,因而不得不自己写出了一个兼容x86的操作系统---pl/m。当然这个东东造价也不菲。

微软联合创始人allen同学tim paterson原本是打算写个东西用来测试的16位intel 8086 cpu界面,于是花四个星期写了一个操作系统。当bill gates得知之后,马上花5w美元买下了这个系统,tim paterson欣喜若狂,四个星期就赚了一大笔,简直像做梦,赶紧和bill签订合同,bill得到之后并命名为dos。随后,bill通过其ibm董事会成员的妈妈,得以和ibm高层谈判。ibm兼容机的操作系统价格昂贵,不适合卖个普通用户,ibm定义的主要对手是如火如荼的apple,ibm想要压制apple就需要廉价的计算机。微软可以提供廉价的dos,当然不是卖操作系统,而是卖操作系统的许可。每台ibm兼容机都捆绑一个dos。bill的招数就是捆绑,从dos到ie都是如出一辙,当然特别奏效。ibm也没想多少,他们认为硬件才是赚钱的根本,dos也便宜。两者结合,果然市场颇受欢迎,bill也赚到了千万刀。

ibm兼容机逐渐推向市场,与apple一较高下。此前,在一个车库,两个年轻的极客,一个对机器怀有无比的热情,另外一个则对改变世界十分*,两个人黏在一起,创立了一家伟大的公司apple。与ibm兼容机不一样,apple的早期微机,采用是摩托罗拉的cpu和unix。jobs独特的艺术气质与wozniak的技术天才,让apple的微机在市场上极受欢迎。

jobs对技术和艺术的卓越追求,让他不断的改进apple的电脑。1973年施乐(xerox)的parc研究所开发出gui接口与鼠标(题外话,历史上有两个著名的雷锋实验室,前面提到的bell 和 这个 parc)。但是xerox本身是生产打印机的,董事会莫名其妙的觉得gui一旦出现,顾客就不乐意使用打印机,因此对park实验室的成果冷淡的打入冷宫。

1979年乔布斯到parc研究所看到xerox原型机alto。敏锐的jobs立刻发现了gui和鼠标的商业价值,很快他就说服xerox公司,以一个极低的价格买下了gui进行研究。1983年苹果公司推出了apple lisa,首次采用gui的商品化计算机。lisa一诞生,就震撼了整个微机市场,那个车库里的年轻人因此身价过亿。

apple蒸蒸日上,mcriosoft的bill心里可不是滋味。现在人们习惯把jobs和bill进行比较,不可否认他们都很伟大,至少在it领域。不同于jobs的完美主义和偏执狂的作风,bill更圆滑和更中庸。bill找到了jobs,大加赞赏了jobs的伟大,然后卑微的祈求一份apple的gui,并承诺microsoft的一切成果都是apple的。不可一世的jobs答应了,bill得到了lisa原型机,马上组织团队研发,并在1990年5月份推出windows3.0并一炮而红。商业上取得惊人的成功。打破了任何软件产品的六周内销售记录,从而开始了微软在操作系统上的垄断地位。

此时jobs发现了bill这个小偷,勃然大怒,可是为时已晚。对此,bill并不否认,反而很得意讥讽乔布斯说:“我们有一个富邻居——xerox,他家有一台电视。当我们想偷的时候,发现乔布斯早就偷走了,可他却说我们是小偷。”他们两人,都验证毕加索那句著名的格言:“好的艺术家抄袭,伟大的艺术家偷窃。”

但是jobs心有不甘,因此着手研发macintosh,由于macintosh造价昂贵。在市场上逐步落后与microsoft的windows。windows持续发展着,对于jobs,apple正在酝酿着一个地震,1985 jobs被赶出了apple。
此时,unix在干嘛呢??unix正忙着和bsd打官司,也正是这些时间,错过了操作系统发展的黄金时间,当microsoft和apple逐渐由小人物变成巨人的时候,unix已经脱离了商业的主流。尽管如此,unix先天的优雅并不会就此沉沦,dec生产的机器,原本是自有操作系统,随着后来unix的发展,不得不买pdp和vax的时候添加unix。其中vax本身有一个操作系统vmx。由于unix的入侵,vmx团队面临解散。

windows风靡市场,一时洛阳纸贵。可是早期的windows并不稳定,蓝屏是家常便饭。bill并没有偷到jobs的核心技术,只获得了gui。因此windows可谓先天的不足。郁闷的bill找到了同样郁闷的vmx团队。很快两个失意者结合。microsoft死活硬凑的将windows和vmx结合,诞生了windows nt。nt诞生不久又出现了server版本,server的诞生,敲响了另一家公司的丧钟。当时网络已经出现,novell生产网络操作系统占据网络统治地位,可是nt的出现,novell的生命也走到了尽头。

被赶出apple的jobs同样没有停止他的步伐,jobs离开apple之后创办了如今三维动画巅峰旗帜的pixar公司.并且apple在对microsoft的竞争中逐步走向衰败,apple董事会不得不重新召回jobs挽救apple日益颓废的*。jobs果然是帮主,他的回归,apple散发了第二春,几款革命性的产品ipod,iphone将apple再一次走到了世界的巅峰。macos成为了人们热衷的操作系统,这个曾经败给windows的操作系统又回来了,并且在移动断,ios也成为了霸主,后来google 的android加入争斗,那是后话了。

microsoft的 windows xp成为微软史上成功的操作系统。可是jobs回归之后的apple,xp丑陋的界面很难和炫目的macos较量。microsoft早期和ibm共同研发os/2,由于后来和vmx的结合而退出了os/2。ibm又一次验证了谁跟微软合作谁被坑的规律。可是针对macos,microsoft一直对和vmx的结合产品心有余悸。最终用低价从ibm手下买回了os/2,并重新拼凑了一个“绚丽”的操作系统windows vista。
显然,os/2被ibm定义为史上最失败的产品,具有讽刺的是,vista也不约而同的被microsoft定义为失败的产品。microsoft不得不在短时间内重新开发。推出了xp的取代者--windows7。先如今,microsoft在互联网遭遇google强大的统治, 移动方面windows phone也生存在apple ios的阴影之下。

曾经强大到像日不落帝国的microsoft,也在谋求着新的蜕变。当然,microsoft依然统治着桌面操作系统,在服务器端,另外一个崛起的不是unix,不是macos,也不是wndows的操作系统,他已然加冕成为新的王者。那就是linux的故事,这个故事也很有趣,伴随*的运动,黑客的分享的精神。比起之前少了很多商业的争斗气息,更多是那些黑客传奇的故事。我们得重新打开历史书,回到1991那年的夏天,阳光明媚的芬兰赫尔辛基大学的校园里...

linux的崛起

我是你可怕的恶梦
------------eric raymond

eric raymond,黑客,他写了一篇论文《大教堂与市集》,也写过一本书叫《unix编程艺术》。于是整个世界都改变了。

纪录片《revolution os》描述,一次开发者大会,他遇到一个微软工程师,看见衣服上microsoft的标志便询问对方:“你为微软工作?”当那位西装革履的工程师带有嘲讽和鄙视看着这个衣着普通的黑客回复:“是啊,你呢?”raymond送去了一个微笑:我是你们可怕的恶梦。。。

黑客是microsoft的恶梦?不,不仅仅是,黑客是一切不*的恶梦。电脑和网络,已经成为现代社会和文明不可或缺的产品。很多人电脑使用microsoft的windows系统,而这些机器所访问的web页面。其背后的服务器系统却是windows的死敌---linux。相比windows成为家喻户晓并家家都在使用的操作系统。linux很少被普通人知道,但是这并不妨碍它的伟大。他们分别在桌面和服务器两个环境,各自称霸着世界。
 
谈到linux的起源,这个故事平凡却扣人心弦。1991那年,对于芬兰人绝对是一个有意思的一年。世界上首次全球通对话在诺基亚的radiolinja网络中完成,诺基亚征服世界的脚步已经无法遏制。

与此同时,阳光明媚的芬兰赫尔辛基大学的校园里,一个少年正好拥有了一台完全属于自己的电脑,不必再忍受学校机房漫长的等待。他当时对安德鲁·塔南鲍姆(andrew tanenbaum)的著作《操作系统:设计与实现》——一本minix操作指南深深着迷。

由于at&t对于unix商业化,而后将unix进行了闭源。andrew所教授的课程《操作系统》却没有了“操作系统”。对此andrew一咬牙,狠狠心,写出了一个兼容unix的操作系统。人家就是厉害,你不给我使用,我自己写一个出来用。尽管andrew的成果很简单,但是还是具备了unix的基本功能,当然比较mini,因此命名为minix。minix作为unix的变种,彼时的minix正凭借低廉的价格和简易的操作在大学大行其道。
minix由于过于短小精悍,只能运行这一种机器,其他机器没有驱动。andrew的学生就写了好多好用驱动来扩展minix。可是,教授andrew却觉得自己的操作系统要保持纯洁,不能有其他的代码来源。于是学生们就很郁闷,其中就有个叫linus的同学。

拥有自己的pc的linus却不能将minix运行在自己的电脑上。linus也不得不走上了他无数前辈的道路,不让用,不给用,那就自己写一个操作系统来用。仅仅两个月后,一个“千疮百孔但却碰巧可以使用”的磁盘驱动程序和一个小到不能再小的文件系统就诞生了,这就是第0.01版的linux。随后linus将操作系统上传至ftp,并公布了全部源代码。在usenet讨论区,linus阐述其初衷:在新操作系统中,“人们可以自己编写驱动程序,可以随意修改操作系统以适应不同需求,可以尝试在minix上运行所有程序,这是minix从未有过的美好一天。”

美好的日子渐渐来临,unix生态还是老样子,在商业的争斗中裹足不前。microsoft和apple的争斗也逐渐明朗,microsoft靠卖软件大发特发。这让一个黑客很不满。

理查德·斯托曼(richard stallman)登场,他认为所有软件都是人类智慧和思想的结晶。软件应该*的让人们使用。1983年,stallman发起了“gnu(gnu’s not unix的递归缩写)”计划,目的是创建一套完全*的操作系统,以“重现软件界合作互助的团结精神”。他以“著佐权”(copyleft)标准为范本拟定了一份通用公用版权协议(general public license,gpl)。与强调个人版权但限制*传播的著作权(copyright)不同,gpl更强调公共版权和鼓励*传播,它允许修改程序、复制软件和销售获利。但前提是公布修改后的全部源代码,必须保证*思想的传递。gnu计划激发了软件界极大的热情,世界各地的软件奇才们纷纷参与其中。并且开发出包括文字编辑器emacs、c语言编译器,gcc以及大部分unix系统程序库和工具在内的绝大多数软件,很多免费软件的水平甚至都已经超过了相应的付费版本。

可是问题又来了,gnu编写了很多*免费的软件,可是这些免费软件却运行在不*的unix上,这真是一个巨大的讽刺。stallman承诺大家要两年内重新写一个操作系统,可是五年过去了,依然看不清成功的那一天。

与前面很多故事一样,事情总是环环相扣,可是谁也不知道这环将会扣向哪一环。stallman苦于没有操作系统,芬兰的那边,linus只有一个操作系统内核而没有应用软件。

于是,他们在各自的领域奋斗多年之后,命运终于安排他们走到了一起,linus率领linux加盟stallman的gnu计划,上帝说要有光,于是牛顿出生了;人类需要*,于是linux与gun结婚。这一“联姻”堪称是软件界的天作之合。
 
 
1992年,在linux kernel平台上工作的开发者只有100位,平台中的核心代码只有几万行。如今,在平台上工作的开发者已经多达1000人,人员的背景也从最初的黑客扩散至更多的行业,平台中的核心代码则已经超过千万行。

1998年,全球前500台超级计算机中还只有1台运行linux。今天在全球前500台超级计算机中,有413台选用linux。这些计算机遍布世界各地的多个行业,共同主宰着这个智慧的地球。

大到航天科技,小到ic卡芯片,无不存在linux的影子。在移动领域,android来势汹汹,已经逾越ios成为移动的王者,完成了对windows的完美复仇。

linux“可*扩散”并不等同于“缺乏支持”和“业余水平”,恰恰相反,正是起开发的政策,让无数天才黑客参与进来,这是*的胜利。

就连商业软件公司也参与进来,这些公司技术雄厚又善于市场运作,开创了新的商业模式----销售服务而不是软件。使linux从网络黑客和业余爱好者自娱自乐的工具,变成了一个具有全球影响力的软件帝国。

98年的奥斯卡颁奖典礼上,当卡梅隆手握“最佳导演奖”的小金人,模仿《泰坦尼克》中的男主角jack发出“我是世界之王”的宣言时,全世界无不为之倾倒。影片中那被重新描绘过的“唯美”海难,使人们惊叹于卡氏的神奇。但完美的电影也使人们忽略了另一个伟大事实:电影史上崭新的技术时代悄然来临。而这一时代,是由linux开启的。

从那时开始,梦工厂、迪斯尼、皮克斯等公司都逐渐将各自的工作平台转向linux,无数伟大的银幕经典因此横空出世。从《魔戒》到《金刚》,从《哈利波特》到《霍比特人》,再从《指环王》到《阿凡达》,linux几乎以一己之力缔造了无数人梦中的玄幻王国。也是从那时开始,linux终将埋葬microsoft就开始成为江湖中著名的传说之一。

悠悠苍天,传来一股由弱变强的声音----- 我是你可怕的恶梦!!!