最近在写一个Android、IOS、Fuchsia、HarmonyOS对比的报告,需要了解一下各操作系统的起源联系以及内核的对比,因此有了这个文章总结(算是学习笔记吧)。
一、各历史阶段的操作系统
我们都知道,操作系统自20世纪50年代诞生。操作系统诞生后经历了从专用操作系统(每个主机与应用场景均需要一个新的操作系统)到通用操作系统(一个操作系统覆盖很多设备与应用场景,如Windows、Linux等)的转变。
- PC时代
由于Windows
操作系统的广泛应用部署,微软于20世纪90年代成为全球市值最高的公司;
苹果研制的macOS
也支撑苹果一度成为全球最赚钱的科技公司。 - 数据中心时代
在IBM、Intel等企业的支持下,Linux
操作系统又逐步在服务器等场景占据主体地位。 - 移动互联网时代
苹果基于NEXTSTEP操作系统构筑的IOS
支撑苹果成为全球市值最高的科技公司;
谷歌2005年收购了Andy Rubin 在2003年创立的Android
公司,并通过持续不断的研发投入与快速迭代,如今已将Android操作系统打造成世界上发行量最大的移动智能操作系统。
Statcounter数据截至2021年4月,全球移动操作系统中,谷歌Android
占比72.2%
,苹果IOS
占比26.99%
,其余平台占比之和低于1%
。 - 物联网快速发展的时代
当前越来越多的智能设备接入互联网,智能终端逐渐呈现多样化发展趋势,加之第五代移动通信技术网络的建成商用,更是提供了大连接、低延时、高吞吐的基础网络能力,万物互联的物联网时代到来趋势已势不可挡。
随着物联网时代的到来,覆盖全场景的单一操作系统已经很难适配多样化终端设备不同硬件能力、不同应用场景、不同运算能力的需求。目前,谷歌、华为等各大企业纷纷在物联网操作系统方面重兵投入:
谷歌
从2016年开始投入基于微内核的Fuchsia
操作系统,应用场景上希望适用于个人移动设备、IoT(Internet of Things 物联网)设备甚至无人驾驶汽车等不同运算能力和需求的场景。
华为
于2019发布了基于物联网的鸿蒙操作系统HarmonyOS
,透露HarmonyOS采用微内核架构,天生具备模块化解耦优势,可针对不同硬件能力的物联网设备进行模块剪裁,从而实现弹性部署,并已于2020年面向128KB-128MB内存的物联网终端设备开源。
Statcounter2021年4月数据,全球桌面操作系统与移动操作系统市场占比中,Android以40.66%超过Windows,成为第一大操作系统。
二、操作系统的发展史
1946年2月14日
,世界上公认的第一台通用计算机ENIAC
在美国宾夕法尼亚大学诞生。
在这时候,如何管理计算机上的程序也逐步成为一个非常重要的问题。早期的计算机采用纸带的方式记录要计算的任务,并通过打孔的纸带或磁盘记录输出的结果。这样就需要一个专门的操作员值守在计算机旁边,并且操作的效率也不高。因此,人民开始关注如何能使这一过程自动化。1956年
,世界上第一个公认的批处理操作系统 GM-NAA I/O
(通用汽车公司和北美航空输入/输出系统)诞生。
GM-NAA I/O由Robert L.Patrick和Owen Mock在IBM 704上实现。GM-NAA I/O实现的主要是对输入和输出的自动化管理:操作员只要将相关的任务交给GM-NAA I/O,计算机就会一直工作直到所有任务执行结束。1964年
,美国IBM公司发布了通用操作系统IBM System/360
。
通过定义指令集,将计算机的架构与实现分开,从而在一套架构上可以实现多代计算机,并且允许使用者通过自定义的架构去扩展外设;由于指令集与具体实现的分离,IBM System/360的成功也标志着操作系统从面向每种计算机进行定制开发转变为与计算机底层硬件实现解耦。自此,操作系统开始进入通用操作系统时代。1964年
,通用电气和麻省理工学院联合发起了Multics项目
,目标是设计与实现一套多用户、多任务、多层次的操作系统。
贝尔实验室于1964年加入了Multics这个项目中,但后来由于Multics项目的复杂性导致项目的的工作进度缓慢,1969年贝尔实验室退出了Multics项目。Multics项目也因进度缓慢,资金短缺,宣告失败。1969年
,曾参与Multics项目的贝尔实验室员工Ken Tompson和Dennis Ritchie基于汇编语言开发出了UNIX操作系统
,并在1973年采用C语言重写了UNIX。
由于UNIX系统版权复杂且收费,错过了发展的黄金时机,导致了其在后续的操作系统竞争中并未占据主导地位。1987年
,荷兰自由大学Andrew S.Tanenbaum教授开源了用于教学的Minx操作系统
(采用微内核架构)。
由于UNIX版权的限制(AT&T在Version 7 Unix 推出之后,将 UNIX 源代码私有化,禁止在教学中使用 UNIX 源代码),为了方便教学Andrew S.Tanenbaum教授参考UNIX的设计,开发了名为Minx(即小型的UNIX)的操作系统,并将全部源代码开放给大学教学和研究工作。但由于Minx发布之初对商业化很不友好(禁止商业使用),因此并未被广泛使用。1991年
,芬兰程序员Linus Torvalds发布了Linux操作系统
。
Linux在设计上参考了Minx操作系统,如今已成为目前世界上最成功的、使用最广泛的开源操作系统之一。2001年
,苹果公司发布了Mac OS X 操作系统
。
Mac OS X 的核心操作系统为 Darwin,是一种类Unix的操作系统。Darwin
在实现上,以FreeBSD源代码
和Mach微内核
为基础,采用混合内核架构,由苹果公司和独立研发;
Mach
是第一代微内核的代表,1975年Mach起源于罗彻斯特大学
,后来主要在卡内基梅隆大学
开发,由Avie Tevanian
和Richard Rashid
主导。Mach刚刚开始设计时,UNIX的发展正如日中天,所以Mach在设计时的一大目标就是兼容UNIX,但是与UNIX不同的是Mach尝试使用微内核架构
设计,Mach以IPC
作为所有系统服务与内核交换数据的基础,充分运用IPC、虚拟内存、多进程等特性将冗余的系统服务移出内核作为进程运行。
三、Minix
有兴趣的朋友可以研究一下Minix。
Minix
采用微内核
架构,第一个版本于1987年发布,是荷兰计算机科学家Andrew S. Tanenbaum
为了教学而创作,如今为Andrew S. Tanenbaum
教授所著《操作系统:设计与实现》
的示例代码。
Minix
启发了Linux内核
的创作。1990年,还在上大学的Linus Torvalds
从Minix
得到灵感,出于对操作系统的兴趣,于1991年发布了Linux。
Minix目前有三个主要的版本:
- Minix1
https://github/gdevic/minix1
Minix1是《操作系统:设计与实现》教材的演示代码,侧重于教学和学习(年代久远,很难编译安装)。 - Minix 2.0.4
http://download.minix3/previous-versions/Intel-2.0.4/
Minix 2.0.4侧重于自学,链接中有详细的安装教程。 - Minix 3.2.1
http://download.minix3/iso/minix_R3.2.1-972156d.iso.bz2
Minix 3.2.1是个实用版本,有iso映像可供下载,安装方便。
参考:
《现代操作系统原理与实现》陈海波 夏虞斌
StatCounter Global Stats:
http://gsa.statcounter/
Linux和UNIX的关系及区别:
http://c.biancheng/view/707.html
Unix/Linux/BSD 关系及介绍:
https://blog.csdn/liaowenxiong/article/details/116082478
Linux、Mac OS由来与区别:
https://blog.csdn/zaishuiyifangxym/article/details/89202623
========== THE END ==========
更多推荐
一文了解 操作系统发展史
发布评论