我们熟知的操作系统大概都是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操作指南深深着迷。

文章转自:云修网

Unix、Windows、Mac OS、Linux系统故事的更多相关文章

  1. iConvert Icons 图标转换生成利器,支持Windows, Mac OS X, Linux, iOS,和Android等系统

    这是一款在线图标转换工具,生成的图标支持Windows, Mac OS X, Linux, iOS, 和 Android等主流系统. 可以上传图标文件转化成另一个平台下的图标文件,例如将windows ...

  2. 微软宣布.NET开发环境将开源 支持三大操作系统(windows,Mac OS X和Linux)(转)

    微软周三(11月12日)公布了.NET开发框架开源计划.公司拟将这长期以来只能运行于Windows系统下的开发环境,通过GitHub开源,以实现跨平台支持Mac OS X和Linux.根据微软公布的计 ...

  3. [.net 面向对象程序设计深入](5)MVC 6 —— 构建跨平台.NET开发环境(Windows/Mac OS X/Linux)

    [.net 面向对象程序设计深入](5)MVC 6 —— 构建跨平台.NET开发环境(Windows/Mac OS X/Linux) 1.关于跨平台 上篇中介绍了MVC的发展历程,说到ASP.NET ...

  4. Mac OS X系统下利用VirtualBox安装和配置Windows XP虚拟机

    准备工作 下载并安装VirtualBox for Mac到https://www.virtualbox.org/wiki/Downloads下载VirtualBox <版本> for OS ...

  5. SSH客户端,FinalShell服务器管理,远程桌面加速软件,支持Windows,Mac OS X,Linux,版本2.6.3.1

    FinalShell是一体化的的服务器,网络管理软件,不仅是ssh客户端,还是功能强大的开发,运维工具,充分满足开发,运维需求. 用户QQ群 342045988 Windows版下载地址:http:/ ...

  6. MAC OS X 系统怎么样?

    朝鲜的 IT 应用状况并不为外界所熟知,过去媒体纷纷报道,朝鲜已故领导人金正日酷爱苹果电子产品,而最近一份调查报告显示,在朝鲜个人电脑操作系统市场,苹果 MAC OS X 系统位居第一名,遥遥领先微软 ...

  7. Mac OS X系统 HomeBrew的安装和简单使用

    1. 前言 作为linux系统的忠实粉丝,我们都很喜欢 (Debian/Ubuntu)系列的apt包管理系统和(Redhat/Fedora)系列的yum包管理系统. 包括Windows用户都有多种方便 ...

  8. 苹果Mac OS X系统十三年视觉变化发展史

    1Mac OS 9 一个普通的桌面操作系统 经过多个测试版本后,苹果终于正式公布OS X 10.10 Yosemite操作系统.苹果称这个第11版的OS X系统是自从2001年问世以来在视觉效果上变化 ...

  9. Mac OS X 系统12个常用的文本编辑快捷键(移动、选中)

    经常和文字处理打交道?如果多多使用下面这 12 个快捷键,在移动.选择.复制等操作文字时效率会大大提升. 6 个移动光标的快捷键第一组快捷键可以用来在文本中快速移动光标: 跳到本行开头 – Comma ...

  10. 如何更改 Mac OS X 系统默认用户名

    说到 Mac 用户名估计有许多人都不知道在哪个地方修改,其实说简单也简单说麻烦也麻烦看你自己的需求.好比如果你只要用户名的登录更改,那是就非常简单的事了.下面这里就给大家介绍mac osx系统如何更改 ...

随机推荐

  1. java中子类继承父类程序执行顺序问题

    Java中,new一个类的对象,类里面的静态代码块.非静态代码.无参构造方法.有参构造方法.类的一般方法等部分,它们的执行顺序相对来说比较简单,用程序也很容易验证.比如新建一个测试父类. public ...

  2. PyCharm2019 激活码

    因公司的需求,需要做一个爬取最近上映的电影.列车号.航班号.机场.车站等信息,所以需要我做一个爬虫项目,当然java也可以做爬虫,但是还是没有python这样方便,所以也开始学习Python啦!!! ...

  3. OAuth 2.0 授权码请求

    关于OAuth 2.0,请参见下面这两篇文章(墙裂推荐): <OAuth 2.0> <Spring Security OAuth 2.0> 纸上得来终觉浅,绝知此事要躬行.理论 ...

  4. Android--逐帧动画FrameAnimation

    前言 开门见山,本篇博客讲解一下如何在Android平台下播放一个逐帧动画.逐帧动画在Android下可以通过代码和XML文件两种方式定义,本篇博客都将讲到,最后将以一个简单的Demo来演示两种方式定 ...

  5. 浅谈新的布局方式-flex

    引言: 网页布局在flex出来之前,是由盒模型为底子,float,position,table,百分比来进行布局的,重绘的比较多,影响性能,复杂又不好维护.flex布局,可以简便.完整.响应式地实现各 ...

  6. 带着新人学springboot的应用11(springboot+Dubbo+Zookeeper 上)

    这次说个在大型项目比较常见的东西,就是分布式,分布式到底是个什么东西呢?概念太大,不好说,就像刚学javaee的人问你,什么是web啊,什么是spring啊等等,你可能觉得,这个东西我好像知道,但是用 ...

  7. ASP.NET Core框架揭秘(持续更新中…)

    之前写了一系列关于.NET Core/ASP.NET Core的文章,但是大都是针对RC版本.到了正式的RTM,很多地方都发生了改变,所以我会将之前发布的文章针对正式版本的.NET Core 1.0进 ...

  8. Classifying with k-Nearest Neighbors(k近邻)

    终于要开始写自己的第一篇博客啦,真有点小激动(手足无措 =.=!).因为最近正在琢磨机器学习,第一篇博客就从学的第一个算法开始:k-nearest neighbors algorithm即k近邻算法. ...

  9. 【转载】ASP.NET Core 依赖注入

    本文转自:http://www.jessetalk.cn/2017/11/06/di-in-aspnetcore/ 为什么要写这个博客 DI在.NET Core里面被提到了一个非常重要的位置, 这篇文 ...

  10. flume 1.8.0 开发基础

    本文由云+社区发表 作者:皮皮熊 概述 Apache Flume是一个用于高效地从大量异构数据源收集.聚合.传输到一个集中式数据存储的分布式.高可靠.高可用的系统. Apache Flume是Apac ...