世界操作系统发展简史
发表于 2019-06-17 20:59
我们回顾操作系统的发展历史发现,操作系统已经发展了近半个世纪,其覆盖的范围包括:个人电脑端操作系统、工业应用操作系统以及移动端操作系统。
其中,个人电脑端操作系统包括我们熟知和常用的微软Windows操作系统、苹果Mac操作系统以及门槛较高的Linux开源操作系统。
移动操作系统目前是安卓和苹果操作系统的二分天下。
至于工业操作系统,由于距离普通大众甚远,在此不做分析。本篇文章重点回顾一下个人电脑端操作系统的发展历程。
现代所有操作系统的鼻祖可追溯到美国AT&T公司和贝尔实验室等共同开发的MULTICS(多路信息计算系统)。自那开始,整个操作系统的演化可分成以下三个阶段:
(1)Unix初始系统诞生。此时的操作系统主要面向专业人士,无可视化界面,非专业人士不可用。
(2)可视化操作系统演进。以苹果 Mac、微软Windows为代表的可视化操作系统诞生,降低了使用者门槛。
(3)开源Linux诞生与演进。全世界软件人员合力开发的免费开源操作系统的诞生和长足发展。
下面,我们以操作系统在这三个阶段的发展做为主线,来大致回顾一下电脑端操作系统的发展历程。
一 Unix初始系统诞生
计算机操作系统的鼻祖来自MULTICS(多路信息计算系统),我们在这里简称为M系统。
M系统由贝尔实验室、麻省理工学院和美国通用电气公司于1964年开发。M系统的目的是开发一个安装在大型主机和多人多路机上的操作系统。因为在那个时候,计算机一次只能接受一个任务,需要排队执行多人的任务。
后来,原M系统设计员Ken Thompson(肯·汤普森)开发了一个软件包,因为他是无聊,想移植一个游戏叫“太空旅行”的游戏在他们的实电脑上面。M系统的设计,但该函数的目的是单身,实验室的人称之为软件Unics(单路信息计算系统)。
由于当时使用的是Unics,所以每次移植到新机器时,都需要在机器上重复处理,对于不同的机器,还需要额外的编程。对于熟悉计算机的人来说,驱动程序必须自己编写并匹配它。当时,系统的推广受到硬件和用户能力的限制,只有少数人能够使用。
1971年,肯·汤普森 和DennisRitchie(丹尼斯·里奇)为了使当时的Unics具有更好的移植性、适用于不同的硬件设施,创造了C语言。
1973年,他们用C语言重写和编译了Unics的核心,并将其正式命名为Unix,形成了Unix的第一个版本。由于使用了C语言,这个版本被重写了,C语言在当时看来是一种高级语言,它减轻了依赖底层硬件的问题,因此可以在各种机器上广泛使用。
第一代Unix使用了200多个程序命令,虽然内核很小,但是功能非常精简和强大。那时,传统的程序需要使用100行到1000行代码,而Unix最多只能使用10条命令。由于其高效率,它已经能够在AT&T内部广泛而迅速地传播。那些不了解软件编程的人可以想象,如果使用Unix,一天就可以完成的工作,几分钟就可以完成一整天的工作。这种神器能不快速传播吗?
计算机软件的开发是一个不断优化和提高效率的过程。Unics的发明是为了简化复杂的任务。同时,为了简化软件和硬件的简化过程,重新创建一种新的语言(C语言),软件和硬件的分离,为现代操作系统(Unix)的开发奠定了坚实的基础。
需要指出的是,当时的Unix属于美国AT&T公司下的贝尔实验室,但该公司和学术界合作开发(加州伯克利大学),从而快速将其在各大高校传开。随后在1977年,伯克利大学的Bill Joy在取得了Unix的核心原始码后,着手修改成适合自己机器的版本, 同时增加了很多功能软件与编译工具,最终将它命名为Berkeley Software Distribution (简称BSD)。这个BSD是Unix很重要的一个分支,苹果的操作系统实际源自此分支。
1979年,出于商业考虑,AT&T收回了Unix的版权。因此,AT&T在1979年发布的Unix第七版中,特别提到了“学生不能使用源代码”的严格限制。这导致了学术界的自力更生。Andrew Tanenbaum (安德鲁·塔能鲍姆)参照Unix的功能编写了一个Minix系统来教授学生操作系统。该系统于1986年完成并发布,相关书籍于次年发布。这是后来著名的Linus Torvalds(林纳斯·托瓦兹)能够构建Linux第一代系统的基础。
二 可视化操作系统演进
在1984年以前,所有的操作系统都是基于企业的大型机或高校科研机构来设计和使用的,还没有普及到普通人能用的地步。
当时,大部分的计算机系统都是基于命令行终端,没有图形化的操作界面。这样的操作系统只被极少部分的高级专业人员和学术界的老师、学生使用。等到了1984年,一切都发生了变化。
1984年前后,操作系统的发展,发生了哪些变化呢?
1. VisiCorp的第一款可视化操作系统Visi On 发布; 2. 苹果的第一款可视化操作系统Mac OS System 1.0发布; 3. 微软推出Windows 1.0 (1985年); 4. 日本NEC公司宣布基于ITRON/86规范,第一个实现了ITRON操作系统。 几乎不约而同的,世界上几个重要的操作系统都在这个时间段内发布了基于操作系统的商用版本,且都是图形化界面。而这四个操作系统近40年的演进,几乎影响了我们现代生活的方方面面。
VisiCorp公司的操作系统专为大型企业设计和使用,普通人无从得知其演进历程。我们这里也不赘述。
苹果的Mac OS 实际来源于Unix(free BSD版本),是Unix阵营向普通消费者进军的主力,图形化的界面和应用程序,降低了系统和机器的使用门槛。
微软之前一直使用MS-Dos命令行的系统,在看到苹果的可视化界面后,马上开发出Windows系统,共同抢占普通消费者市场,由此也导致了苹果和微软两大公司长达30多年相恨相杀的争斗。
ITRON和日本的精密机械工业相结合,使日本在数据系统、工业机器人、办公机器方面处于世界领先地位。例如日本的本田汽车中的引擎控制系统就是基于ITron的。
三 开源Linux诞生与演进 从上世纪80年代中后期开始,大量的基于可视化操作界面的系统问世后,操作系统真正普及开来。
不过,可视化的操作系统是直接装在机器上的,它在降低了用户使用门槛的同时,也封闭了内在复杂的软件设计。这对于具有骇客精神的学院派老师、学生来讲,难以看到其被隐藏的具体设计。由此,基于开源的操作系统Linux出现了。
1991年,在赫尔辛基上大学的林纳斯·托瓦兹,参照Unix和Minix,重写了一个初始的Linux系统,并于10月5日发布了第一版0.01版。
1993年,大约有100余名程序员参与了Linux内核代码编写/修改工作,其中核心组由5人组成,此时Linux 0.99的代码大约有十万行,用户大约有10万左右。
到2019年,Linux 最新内核发布,此内核有大约2500万行代码。
有别于Unix的闭源(代码不可获得),Linux系统遵循开源协议,意味着任何人都可以获取和编辑代码,进行修改,也因此,Linux获得了极大的关注和应用推广。由于全世界系统爱好者、使用者的参与,到Linux内核4.9.2版本时,Linux内核源代码量超过1800万行(目前最新版本超过2500万行)。
我们通过微软的Windows系统研发对比,来评估这些代码的研发投入。微软的Windows Vista 大约5000万行代码, 其研发投入超过65亿美元。几千万行代码的时间投入是个什么概念呢?
以国产的金山办公软件WPS为例, WPS的代码量约150万行,开发耗时3年。从这个研发成本角度看, 我们的系统采取完全自研的方式,不如直接拥抱Linux开源社区,毕竟,站在巨人的肩膀上更有效。
这时候,读者朋友们可能会好奇地问一下,当前市场上主流的系统占比分布是怎样的?下图给出了答案:
Windows系统仍然是市场的主流。虽然Linux的发展历程很振奋人心,但是市场上的占有率实际上只有1.61%(如果将谷歌的Chrome OS也看作Linux的一部分,则合起来是2.78%)。
那微软构建这个占据市场主流的操作系统付出了多大代价呢?
下图展示了微软公司从2002年到2018年的研发费用。需要说明的是,微软的研发包括三部分:操作系统的开发、配套该操作系统的各种应用、驱动等围绕系统的生态圈建设费用。
其中,2018年的花费超过147亿美元,折合人民币约1020亿。
另外,需要指出的是,微软的Windows系统在占据主要市场份额的情况下,每年仍然投入超过千亿人民币的研发费用,这也为市面上的系统竞争设置了超高门槛。
四 中国力量的崛起
当前开源社区,中国力量又是怎样一个现状呢?
首先,早在1999年7月,几个年轻的创业者做出第一个在framebuffer(Linux为显示设备提供的一个接口)上进行汉化的中文版本蓝点Linux(Bluepoint Linux)。不过,因为没有坚持在操作系统方向进行持续深耕,蓝点公司的Linux系统最终消亡。除此之外还有如红旗Linux(诞生于1999年8月),中软Linux版本(发布于1999年9月)。但是因为在使用体验上不如Windows,没有市场的支持,最终没有成熟强大起来。
不过,随着我国庞大IT从业者的崛起,情况有了根本性变化。
在此以Linux5.1内核贡献为例:
我们拉取了Linux内核贡献度超过1%的国家统计数据,发现:美国第一,中国第二(注:第一名未知范畴,不作为真实有效国家)。
以公司为维度来看,中国的华为公司对Linux的贡献度排在第三位(注: 第一名属于未知范畴,不算有效公司名,其排序参见下图)。
据财报显示,华为在2018年的研发投入也超过了千亿人民币(1015亿)。由此可见,华为面对谷歌的系统封杀,是有底气的。
从另外一个角度看, 我们的企业也有很长的路要走,希望能有更多的企业榜上有名,只有那样,我们的自主操作系统才算是稳了。
五 华为鸿蒙系统的诞生
早些时候,我们提到日本在1984年提出Tron系统规范,目的是创建一个开源、可用的操作系统,从而减少对美国Windows系统的依赖。Tron系统原型在1987年完成,但是系统并没有像预期的那样成为一个类似windows的替代品。
日本Tron操作系统的开发受到美国政府的打压,导致其在人机交互的背景下不断发展。
也许你会问:为什么日本的Tron操作系统被禁?
要理解这个根本原因,我们必须首先理解另一个基础:芯片。
我们知道操作系统就像人的灵魂,芯片就像大脑。软件和硬件的结合可以产生真正的生产力。
在20世纪80年代的日本,“芯片行业正处于鼎盛时期,占世界DRAM(俗称电脑内存)的近80%”。硅谷的英特尔(Intel)、AMD等科技初创企业正在半导体存储领域追赶日本企业。被追上后,他被赶下了王位,半导体芯片领域(主要是半导体存储主导的主流)成为日本企业的后花园。”(节选自《魔铁世界》《三十多年前日本是如何输掉芯片战争的?》)》)
日本的芯片力量已经开始摧毁以美国为首的西方世界。此时,如果软件也取得突破性进展,西方世界的技术市场将面临全面碾压。当时日本提出的Tron系统对美国来说是完全不能接受的。因此,美国《反日超级301法案》明确规定,学校不得安装Tron系统。因为它很可能带来Unix历史的另一个版本。
现在看来,美国对日本芯片和软件的打压,是否与当前对美国芯片和软件的禁令一样?我认为这是华为在未雨绸缪的情况下推出宏盟系统的主要原因。
操作系统技术简单,相信对这个国家是能够理解和透彻的。但如何在开放新系统的同时继续保护原有的消费市场,则是考验该公司能力的地方。在这一点上,华为的战略相当惊人。
华为对此有何回应?
华为系统的改变使普通用户无法感知,因此不会影响用户对系统的体验。华为EMUI系统的开发迭代经过多年的深耕,Android系统经过深度解耦、碎片化、替换,系统经过优化和逐步升级。
例如,华为为Android开源社区的EROFS文件系统做出了贡献。华为的系统类似于在飞行过程中更换部件的策略,允许用户在每次升级过程中替换一个优化模块,而不需要任何感知。这些模块是宏盟系统体验的一部分。
在这里,我不得不提一下华为的Ark编译器。Ark编译器也是普通人的编译工具,但实际上它对于一个新的系统是至关重要的。操作系统是否健壮取决于它对底层硬件的使用。
以汽车为隐喻,系统的构建就像汽车发动机的构建。编译器就像一个制造汽油的装置。一个好的编译器就像直接生产98#汽油,所以你的机器飞得很快。
是否可以设计编译器,首先要考虑对手机硬件的理解。从这个角度来看,华为对系统建设水平是有信心的。然而,只有这些是不够的。华为的弘盟系统如何能与Android生态系统顺利兼容,是值得深思的地方。
与30多年前相比,中国和日本的情况是相似的,但市场和外部环境有很大的不同。让我们拭目以待鸿盟系统的发展。
评论 (0人参与)
最新评论