本文梳理了操作系统的发展历程,从1955年首个被认可的操作系统GM-NAA I/O,到1964年IBM OS/360、1965年Multics系统,再到1969年Unix诞生并以C语言重写,引入模块化等思想。20世纪80年代个人计算机时期,QDOS、MS-DOS、Lisa OS、Windows 1.0等相继出现。1991年Linux内核诞生,1993年Windows NT奠定现代架构。2000年后进入开源与移动时期,FreeBSD、Mac OS X、iOS、Android等涌现,2012年起Windows 8、10、11持续发展。
发展早期
介绍
1955年,GM-NAA I/O诞生,第一个被认可的“操作系统”,是一个能自动连续运行多个程序的磁带管理程序。
1964年,IBM System/360 OS(OS/360)发布。第一个尝试“一次编写,多平台运行”。让程序在System/360大型机族中可以轻松运行。
1965年,MIT、贝尔实验室、通用电气联合开发Multics系统。是分时操作系统先驱,引入分级文件系统、动态库等概念,直接影响Unix发展。
备注
- 为什么GM-NAA I/O被认可:它是系统资源的管理者,而不是早期的简单的程序装载工具。其可以自动连续执行多个程序,而无需人工干预,最大化提升计算机整体利用率。
- 分时:为每个线程分配一个时间线,高速轮转调度实现并发(非并行)。
- OS/360是商业计算机史上的里程碑,定义了大型机操作系统几乎所有概念(也包括内核)。对比来说,OS/360追求更商业、更可靠、对硬件更多样化的支持,与Multics追求更统一、更学术优雅的哲学不同。而Unix追求“小而美”,OS/360则被设计来管理更复杂、极端的硬件资源,满足更严苛的商业需求。
- Multics有着相当超前的内核设计,例如:“虚拟内存”“一切皆文件”“动态链接”“基于硬件的安全环(内核在环0,用户在环7)”“高可靠设计”。整体目标宏大,但设计复杂,虽然开发成功,但商业上失败。
Unix时期
介绍
1969年,Unix在贝尔实验室诞生。起初它由汇编编写,后由C语言重写。继承且简化了Multics的思想。引入“模块化设计”“管道机制”“一切皆文件”等思想。
1974年,CP/M诞生,是首个个人计算机操作系统标准。
备注
- Unix从设计之初就有“内核”这一设计,它革命性地包含了:内核态/用户态的分离、“一切皆文件”的抽象、进程管理、层次文件系统等。因为Unix的“小而美”理念是使得它区别于前辈Multics,以及后者Apple Lisa OS能够成功的原因。
- CP/M是无内核的操作系统,它把计算机分为三层架构:CCP(控制台命令处理器)、BDOS(基本磁盘操作系统)和BIOS(基本输入输出系统)。这种思想直接影响了后来DOS系统的发展。
- 可以把CP/M理解为“轻量磁盘监控程序”,三层代码结构均运行在同一个无保护的空间中。CCP负责提供控制台,接收和解释输入的指令,调用程序;BDOS提供了文件管理、磁盘访问等各种服务(类似于现在的系统调用),应用程序则根据要求把参数放入指定内存位置,然后调用一个固定地址来请求服务;BIOS在最底层直接和硬件打交道,移植CP/M到新操作系统时往往只需要移植BIOS层即可。
- CP/M的BIOS和现代计算机的UEFI/BIOS具有一定传承性,但是整体设计上已经很不一样。
- CP/M凭借独特的技术优势,统一了混乱的8位机市场,建立了“硬件抽象”“软件兼容”“商业模式”的三重事实标准。
个人计算机时期
介绍
1980年,QDOS诞生,是MS-DOS前身,为IBM PC所开发。
1981年,MS-DOS 1.0诞生,成为IBM PC标准操作系统,奠定了微软的行业地位。
1983年,Apple的Lisa OS诞生,是首个商用图形界面操作系统。
1985年,Microsoft Windows 1.0诞生,名义上是“微软首个图形界面操作系统”,实际上是运行在MS-DOS上的外壳程序,而非真正的操作系统。
1987年,Andrew Tanenbaum开发的MINIX(含MINIX微内核)诞生,是为教学设计类Unix系统,直接启发了Linux。
备注
- QDOS和MS-DOS是单任务、无内核的操作系统。起码,没有现代意义上的内核,只负责简单的磁盘IO操作,程序运行直接读取物理内存。尽管后期通过一些方式,实现了“有限多任务”的支持。
- Apple在1983年的Lisa OS搭载了比较现代化的内核,支持虚拟内存和内存保护,以及抢占式多任务。但最终因为过于先进,对硬件要求高,使用者的成本太高而导致项目最终失败。因此Apple在之后的Macintosh系列产品的操作系统采用了更温和的策略。
现代操作系统奠基时期
介绍
1991年,Linux 内核 0.01诞生。是首个开源、类Unix的通用内核。
1993年,Windows NT 3.1(含Windows NT 内核)诞生,是首个32位Windows,奠定现代Windows架构基础。
1995年,Windows 95(MS-DOS内核 + 32位扩展/内核)诞生,整合DOS和GUI,引入开始菜单。
1997年,MAC OS 8诞生,首个支持多任务的Mac OS。
备注
- Windows 95、Windows 98和Windows Me搭载的都是MS-DOS内核 + 32位扩展/内核,但其和Windows 1.0 - Windows 3.x不同。前者在开机时启动和初始化DOS,随后DOS引导控制权给32位内核,自己则作为兼容层。后者则一直是MS-DOS系统,图形化程序作为其外壳。
- Windows NT 3.1、Windows NT 3.5、Windows NT 3.51、Windows NT 4.0、Windows 2000、Windows XP等后续版本搭载的都是Windows NT内核。
- Windows 95、98和Me已经具有32位内核,内存空间隔离等简单保护。但这个内核并非Windows NT内核。而Windows NT 3.1及后续系列则是搭载完整Windows NT内核的更安全、高效和面向未来的版本。Windows 95及后续系列则负责往前兼容,让用户平稳过渡。
开源与移动时期
介绍
2000年,FreeBSD 4.0内核诞生,高性能的网络栈,影响Mac OS X和索尼PlayStation。
2001年,Mac OS X 10.0,是BSD和Mach微内核结合,奠定macOS和iOS的基础。
2001年,Windows XP诞生,被誉为“最成功的Windows版本”。
2003年,Debian GNU/Linux 3.0发布,被誉为“最稳定的Linux发行版之一”,建立apt包管理系统。
2007年,iOS诞生(使用XNU内核),重新定义智能手机操作系统。
2008年,Android 1.0(使用深度定制化Linux内核)发布,是首个开源移动操作系统主流方案。
备注
- Mac OS X 10.0 是现代苹果操作系统的开端,基于开源操作系统Darwin(也就是Mac OS X包含Apple的一部分闭源内容),其中Darwin使用内核XNU,结合了Mach微内核和BSD(后来部分升级为FreeBSD)。
- 苹果的Macintosh(也就是日常说的Mac电脑)的第一个操作系统是在1984年发布的,当时称为System Software,后来被统称为“Classic Mac OS”。第一代命名为System 1.0,知道System 7.6之后的版本命名变为Mac OS 8.0、Mac OS 9.0。直到Mac OS X 10.0发布,其中X表示的就是XNU内核(X is Not Unix)。
- “Classic Mac OS”时期的操作系统并没有一个现代化的、统一的“内核概念”。例如,内存不受保护、程序必须自愿让出CPU给系统等。但实际上,它有许多协作管理器,共同维护系统的运行。
当代时期
介绍
2012年,Windows 8诞生,是首个跨电脑和平板设计的Windows操作系统。
2015年,Windows10诞生。
2021年,Windows 11发布。
备注
- 简要记录一下Windows的迭代。