最近有很多写华为鸿蒙操作系统的文章,在我写鸿蒙之前先写这一篇让大家对操作系统的发展历程有个大概的了解。
最早的计算机是没有操作系统的,当时人们使用的是穿孔卡和纸带读取器将程序和数据输入计算机中,然后等待计算机运行这些程序。而彼时的计算机都是大型机,非常昂贵,数量也极少,大家都得排队预约使用时间。
慢慢地随着排队使用计算机的人越来越多,就诞生了“操作员”这样的角色,使用者将程序交给操作员,操作员把一批批的程序加载到计算机中。等计算机完成程序执行,操作员再将结果给到用户。这应该算是最早的人肉“操作系统”。
随后,“操作员”的角色被程序代替,这个程序能够“装载用户程序”、并将计算机中的CPU、I/O等设备集中起来进行调度作业。这是一种“批处理”的方式,用户按照先后顺序“独享”一台计算机的资源。
50年代,一位叫麦卡锡的科学家觉得这种使用计算机的方式实在是太没有效率了,再小的程序都让计算机跑一趟,所有人等着,实在是太浪费资源了。既然CPU在执行任务的时候,从一条指令切换到另一条指令的速度非常快,那就每几个周期都让CPU从一个内存区域和程序切换到另一个内存区域和程序,反正用户也感觉不到自己的程序被切换了,觉得自己在独享计算机资源。麦卡锡将这种方式称为“分时”,如果这几年起名,估计会被称为“共享”,呵呵。
为了实现分时操作,麦卡锡用自己开发的LISP语言给计算机添加了“中断系统”,让计算机可以停止一个工作,切换到另一个工作。中断系统后来成为操作系统的极为重要的部分,它实现了计算机资源的转移和分配,从而实现计算机的多任务处理。
1961年,费尔南多·科尔巴托演示了一个完全可行的“兼容分时系统”。
分时系统的尝试,促使了一个野心更大的项目,Multics的诞生。
1964年,由贝尔实验室、通用电气和麻省理工共同发起了大型主机操作系统Multics项目。这个项目其中一个牵头人是约瑟夫·利克莱德,他最早提出了“星际计算机网络”的概念,是麻省理工心理学和人工智能专家。1960年,他设计了以宽带通信线路连接的电脑网络,也是互联网的初期架构,是被公认为互联网的开山领袖之一。以后在专门讲互联网的时候,他还会再次出来客串。
不过,这个项目由于目标难度太大,当时技术条件又有限,所以1969年彻底黄了。
贝尔实验室参与这个项目有一个叫肯·汤姆森的人,他基于Multics写了一款叫Space Travel的游戏。现在项目黄了,但汤姆森同志想玩游戏的初心不改,但项目专用的大型计算机已经不给他用了。没办法,汤姆森就只能把游戏移植到一台破旧的小型机PDP-7上,打算继续肝游戏。
要运行游戏,你得有个操作系统,就像我们今天装王者荣耀你得有苹果OS或者安卓才行。于是,汤姆森为了玩游戏,自己写了个操作系统!Multics之所以黄,是因为想要的功能太多、太复杂,而汤姆森只想玩游戏所以就搞了个精简版的。
但PDP-7是一台老爷机,Space Travel当初可是运行在大型机上的游戏啊,结果就是,虽然操作系统写出来了,但游戏运行起来卡得不行。汤姆森就继续研究,发现主要问题出在操作文件的时候会消耗过多的内存,于是他又自己动手写了个分层式文件系统,还顺手写了个简单的命令行解释器shell。
1970年,汤姆森的这个精简版的Multics操作系统被同事布莱恩·克林汉取名为UNIX(Uniplexed Information and Computing Service),实际上就是对Multics(Multiplexed Information and Computing Service)开了个玩笑。
对,这个为了游戏肝出来的操作系统就是大名鼎鼎的UNIX。最早版本的UNIX是用汇编语言写的,汤姆森为了让其更好地运行在PDP-7这台小型机上,自己又开发了一种新的程序语言写了一版,这种新语言被起名为B语言,是基于BCPL语言的修改版,并添加了一些汤姆森个人的偏好,以及开发了B语言编译器。
1970年,汤姆森的UNIX项目获得了资助,他用钱买了一台PDP-11,这台计算机就要强大许多,于是汤姆森的同事丹尼斯·里奇又基于B语言搞出了C语言,以充分利用性机器的字节寻址和其他特性。
到了1973年C语言已经变得很强大,于是他们用C语言重写了大部分UNIX内核,UNIX成为第一个用高级计算机语言编写的操作系统。
1977年,随着C语言的进一步发展,里奇和史蒂芬·约翰逊又开发了一版可移植的UNIX操作系统和可移植的C语言编译器,这让C语言和UNIX可以更加轻松的扩展到其他平台。
这个C语言编译器和UNIX的源代码都是免费的,当时只需要支付几百美金许可费就可以获得,如果是大学团体,不但能获得代码还可以获得一个教学和研究平台。
开源和免费,为UNIX开发者社区大家踊跃分享代码、提交Bug起到了示范作用,促进了UNIX的普及和生态建设,也诞生了不同版本的UNIX。
到了1979年,UNIX已经发布到了第七个版本,此时贝尔实验室的母公司AT&T意识到了UNIX的商业价值,在第七版之后开始禁止大学使用源代码。1980年,UNIX源代码不再对外开放,1984年AT&T开始对UNIX进行收费。由此,UNIX操作系统裂变成两条主线:
一条是AT&T的商业版本,另一条是加州大学伯克利分校开发的半开源版本Berkeley Software Distribution Unix,即著名的BSD。
在商业版本中,1980年前后,微软与SCO公司联合将UNIX 第七版移植到摩托罗拉的MC 680XX系列微型计算机上,后来又将其简化移植到了Intel8080上,称为Xenix。后来SCO将SCO-Xenix改为SCO Unix,渐渐成为微机版 Unix 主流操作系统。
1982年,SUN公司推出运行在摩托罗拉680x0 平台上的 UNIX OS。1988 年,发布 SUN OS 4.0,把运行平台从早期的 680x0 平台迁移到 SPARC 平台,并支持 Intel 8086。1992 年 SUN 发布了 Solaris 2.0。1998 年开始,Sun 公司推 64 位操作系统 Solaris 2.7 和 2.8。
SUN也是一家很有意思的公司,它依靠其基于UNIX变种的Solaris操作系统和发明的Java编程语言,成为在操作系统领域最有可能挑战微软的公司,1996年还差点收购苹果。高峰期市值达到2000亿美金,同期的谷歌和IBM市值才1700亿和1600亿美金。可惜SUN在2009年被甲骨文收购的时候才56亿美元,也是让人唏嘘。
此外,UNIX商业版本中还有IBM的AIX以及惠普的HP-UX。
BSD的版本衍生出Sun OS、NexTSTEP等。
另外,苹果的Mac OS X,iOS采用了Darwin内核,Darwin内核是UNIX系统的一个变种。
1984年,在AT&T开始对UNIX进行收费这一年,麻省理工人工智能实验室的理查德·斯托尔曼创立了“自由软件基金会”即GNU,目标是开发完全免费的软件,让每个用户都能自由下载、使用、修改和发布。为了保证源代码公开、免费共享,他定制了GPL许可证,要求用户对软件所做的任何修改都必须遵循相同的GPL开源许可证进行发布。
GNU的理念吸引了很多计算机科学家的加入,也诞生了很多非常流行的软件,其中之一就是Linux。
1991年,林纳斯(Linus)·托瓦兹从赫尔辛基大学毕业,他买了一台基于英特尔386CPU的个人计算机,想在上面运行UNIX,于是购买了由安迪·塔南鲍姆教授开发的Minix。这也是一个UNIX操作系统的变种,是一个极为精简的版本。
受到Minix的启发,林纳斯也搞起了基于UNIX内核的个人计算机操作系统开发,很快他搞出来一个新的操作系统Linux,并把源代码放在了互联网上:求体验、求修改、求指正。
不过严格意义上来说,此时的Linux只能算是一个内核,算不上完整意义的操作系统。
世界各地的UNIX社区都对林纳斯的表示了热情,纷纷对Linux进行“添砖加瓦”,当时来自12个国家的80多位开发者做出了贡献。在大家的共同努力下,1994年3月,Linux发布了第一个正式版本,代码量17万行,加入GNU,正式采用GPL许可模式。
同年10月,Marc Ewing发布了基于Linux内核的发行版本,取名为Redhat Linux,并于1995年被ACC收购,两者合并成立了Redhat软件公司,在市场上为自家版本的Linux操作系统提供服务,以软件订阅费、服务费以及培训费作为收入模式,开创了开源软件的商业模式。
RedHat发展得很成功,于1999年8月11日上市,实现了华尔街历史上的第八大首日涨幅。在2012年,收入达到11.3亿美金,成为首家收入过十亿的开源软件公司。以后开源和收购两步走,一直发展得不错,直到2018年10月29日,被IBM以340亿美元的价格收购。
以Linux内核为基础,出现了很多开发团体,对内核代码进行修改、补充,加入了图形界面和应用接口等,形成了相应的Linux操作系统发行版以及应用软件生态。Linux操作系统版本之间存在衍生关系,形成以RedHat、Slackware、Debian为代表的几大门派,各个门派又衍生出不少著名的版本,比如Ubuntu、SUSE、CentOS、Red Hat Enterprise Linux、Fedora 等。
Linux 操作系统采用了与 Unix 几乎完全一致的体系结构,具有类似的设计哲学: 一切都是文件,包括命令、硬件设备、软件和进程等等,这些对于操作系统内核来说都被视为拥有各自特性或类型的文件。
Linux完全免费,源码符合GPL许可协议,用户可以免费获得、任意修改,只要符合GPL规定,就可以参与到开源项目的发展中,这极大程度加快了Linux的传播和漏洞发现的效率,增加了系统的安全性和稳定性。
其他人提交开源程序、修改措施,但Linux的内核由林纳斯的核心团队决定接受哪些代码和修改,换句话说,虽然Linux操作系统有很多版本,但Linux的内核是统一的。但这里还是有一个问题,Linux操作系统版本太多,对于应用软件开发商来说不友好,他们需要分别开发对应的应用软件,增加了开发工作的复杂度和研发成本。也是因此,Linux并没能像Windows一样成为一款统一的商业桌面系统。
除了版本多之外,Linux没有成为Windows还有另外一个原因,它当时没有形成英特尔 微软这样的王者联盟。但这件事到了Linux的安卓时代,出现了变化。
2003年安迪·鲁宾等人联合创立了Android公司,Android这一词最先出现在法国作家利尔亚当在1886年发表的科幻小说《未来夏娃》中,安迪·鲁比是一个机器人迷,给公司起了这个名字,现在我们看到的安卓小人其实就是个小机器人。
安迪基于Linux内核写了安卓操作系统,但他能搞出来操作系统并不是偶然。他早年是苹果的员工,1990年苹果将手持电脑部门和通讯设备部门剥离出来,成立了一家叫General Magic的公司,1992年安迪加入了这家公司。
General Magic当时研发的东西叫Magic Cap,这是一个意识极为超前的智能手机操作系统。它在那个时候所创意的操作系统,就是我们今天用的智能手机。不仅如此,关于智能手机上的应用,比如社交、电子商务等等,在这个团队大家都贡献了丰富的畅想。
但很可惜,太超前了,最终项目失败。之后三名苹果元老成立了Artemis,安迪加入,1997年这家公司被微软收购,他又留在了微软搞超级机器人项目。但他做的机器人由于被黑客入侵,后来被微软打入冷宫。
1999年,安迪离开微软创办了Danger,一边造机器人,一边研发出了“智能手机”T-Mobile Sidekick。据说微软后来推出的windows phone操作系统有部分技术购买自安迪手中的Sidekick。
2005年,谷歌收购了安迪创办的第二家公司Android。2008年9月,谷歌正式发布了Android1.0系统。2014年安迪·鲁宾因X丑闻离开谷歌。
2009年4月30日,谷歌发布Android 1.5,这一版操作系统正式运用在了手机上,首款搭载安卓 的智能手机是HTC G1。2009年9月15日,谷歌发布了Android1.6的正式版,搭载的手机是HTC Hero G3。
但2009年,安卓刚起步的时候只有2.41%的市场份额,当时诺基亚的非智能手机操作系统Series40占35.49%的市场,iOS占34.01%。
真正让安卓在智能手机中起飞的原因,不仅仅是它背靠谷歌这样的大公司,诺基亚还大呢,而是它借鉴了英特尔 微软即wintel模式,成功的建立了CPU OS的王炸组合。与谷歌携手的这家CPU就是乘借智能手机东风跃起的ARM,它俩结盟为Android ARM。
不过ARM并不直接生产芯片,它为芯片设计公司提供IP授权,带动了下游fabless和晶圆厂的繁荣。
Android ARM成功的建立了统一的技术体系,包括IP授权、软件工具开发包、编译器、软件规范等,以及配套的软件服务商业模式,牢牢巩固了其包括核心代码贡献者、应用软件开发者、芯片厂商、整机厂商、服务提供商、用户等形成的生态。
由此我们可以看出,开发操作系统依赖技术,但要建立成功的操作系统,生态之战是核心。
看到这里可能就会有读者问,安卓既然是开源的,为什么华为又不能用了呢?
安卓实际上是由开源项目ASOP和谷歌提供的GMS服务组成。
这里的ASOP即安卓开放源代码项目,由谷歌发起,是开放的部分,任何人都可以使用安卓源代码。
而谷歌GMS,即谷歌移动服务,是不开源的。海外安卓用户严重依赖GMS,当他们登录谷歌商店时必须使用谷歌三件套:谷歌服务框架、google play和googel play服务。而这三件套都是基于GMS来运行的。如果海外用户的操作系统没有获得谷歌GMS授权,是无法下载、安装APP的,很多APP没有GMS甚至无法运行,即便安装成功也会闪退。
国内的安卓手机一般是没有GMS的,即便有你也没法用,因为要使用谷歌的服务得翻墙。我们没有google play但有很多第三方应用商店下载APP,但这些应用是不受谷歌软件审核的,所以,嗯可能有一些会访问隐私的流氓软件。
此外,GMS有一个功能就是统一的后台消息推送,比如你微信有新消息时,GMS会发推送提醒。但你可能会说,没有GMS我也天天收到微信消息啊,这又是怎么回事。
这是因为国内的APP厂商另辟蹊径了,它们以频繁“自启动”的方式长期占用手机内存资源,以此来实现实时推送消息的目的。还有不少APP互相结盟,进行交叉互唤醒。最终的结果就是,因为长期占内存导致手机耗电比较快。
国内比如小米有自己的服务框架,来完成统一的消息推送等服务,这也是为什么很多人在后台发现“小米服务框架”一直在进程中,在耗电的原因。
由此我们可以看出ASOP是开源的,但GSM是不开源的。如果要使用和修改GMS必须拿到谷歌的授权才可以,而海外市场强依赖GSM,如果没有谷歌授权手机出口就会受到极大的影响。
所以,华为没有拿到的不是安卓源代码的授权,而是GMS的授权。换句话说,开源的安卓操作系统华为还是可以用的,只是没有GMS而已。但这对华为的手机出口自然会造成极大的影响。
为了摆脱对GMS的依赖,华为2019年8月发布了自家的HMS服务,以取代GMS服务。截至2021年第一季度,华为HMS已经有超过270万注册开发者,应用数量超过13.4万。
虽然这与2018年win10操作系统3500万应用,2017年Googlepay 350万个APP,苹果APP store 210万个APP还有相当的距离,但从无到有已经是进步。
,Copyright © 2008-2022 秒下下载站
m.down10s.com .All Rights Reserved