操作系统的发展

6 阅读7分钟

本文梳理了操作系统的发展历程,从1955年首个被认可的操作系统GM-NAA I/O,到1964年IBM OS/360、1965年Multics系统,再到1969年Unix诞生并以C语言重写,引入模块化等思想。20世纪80年代个人计算机时期,QDOSMS-DOSLisa OSWindows 1.0等相继出现。1991年Linux内核诞生,1993年Windows NT奠定现代架构。2000年后进入开源与移动时期,FreeBSDMac OS XiOSAndroid等涌现,2012年起Windows 81011持续发展。

发展早期

介绍

1955年,GM-NAA I/O诞生,第一个被认可的“操作系统”,是一个能自动连续运行多个程序的磁带管理程序。

1964年,IBM System/360 OSOS/360)发布。第一个尝试“一次编写,多平台运行”。让程序在System/360大型机族中可以轻松运行。

1965年,MIT、贝尔实验室、通用电气联合开发Multics系统。是分时操作系统先驱,引入分级文件系统、动态库等概念,直接影响Unix发展。

备注

  1. 为什么GM-NAA I/O被认可:它是系统资源的管理者,而不是早期的简单的程序装载工具。其可以自动连续执行多个程序,而无需人工干预,最大化提升计算机整体利用率。
  2. 分时:为每个线程分配一个时间线,高速轮转调度实现并发(非并行)。
  3. OS/360是商业计算机史上的里程碑,定义了大型机操作系统几乎所有概念(也包括内核)。对比来说,OS/360追求更商业、更可靠、对硬件更多样化的支持,与Multics追求更统一、更学术优雅的哲学不同。而Unix追求“小而美”,OS/360则被设计来管理更复杂、极端的硬件资源,满足更严苛的商业需求。
  4. Multics有着相当超前的内核设计,例如:“虚拟内存”“一切皆文件”“动态链接”“基于硬件的安全环(内核在环0,用户在环7)”“高可靠设计”。整体目标宏大,但设计复杂,虽然开发成功,但商业上失败。

Unix时期

介绍

1969年,Unix在贝尔实验室诞生。起初它由汇编编写,后由C语言重写。继承且简化了Multics的思想。引入“模块化设计”“管道机制”“一切皆文件”等思想。

1974年,CP/M诞生,是首个个人计算机操作系统标准。

备注

  1. Unix从设计之初就有“内核”这一设计,它革命性地包含了:内核态/用户态的分离、“一切皆文件”的抽象、进程管理、层次文件系统等。因为Unix的“小而美”理念是使得它区别于前辈Multics,以及后者Apple Lisa OS能够成功的原因。
  2. CP/M是无内核的操作系统,它把计算机分为三层架构:CCP(控制台命令处理器)、BDOS(基本磁盘操作系统)和BIOS(基本输入输出系统)。这种思想直接影响了后来DOS系统的发展。
  3. 可以把CP/M理解为“轻量磁盘监控程序”,三层代码结构均运行在同一个无保护的空间中。CCP负责提供控制台,接收和解释输入的指令,调用程序;BDOS提供了文件管理、磁盘访问等各种服务(类似于现在的系统调用),应用程序则根据要求把参数放入指定内存位置,然后调用一个固定地址来请求服务;BIOS在最底层直接和硬件打交道,移植CP/M到新操作系统时往往只需要移植BIOS层即可。
  4. CP/MBIOS和现代计算机的UEFI/BIOS具有一定传承性,但是整体设计上已经很不一样。
  5. CP/M凭借独特的技术优势,统一了混乱的8位机市场,建立了“硬件抽象”“软件兼容”“商业模式”的三重事实标准。

个人计算机时期

介绍

1980年,QDOS诞生,是MS-DOS前身,为IBM PC所开发。

1981年,MS-DOS 1.0诞生,成为IBM PC标准操作系统,奠定了微软的行业地位。

1983年,AppleLisa OS诞生,是首个商用图形界面操作系统。

1985年,Microsoft Windows 1.0诞生,名义上是“微软首个图形界面操作系统”,实际上是运行在MS-DOS上的外壳程序,而非真正的操作系统。

1987年,Andrew Tanenbaum开发的MINIX(含MINIX微内核)诞生,是为教学设计类Unix系统,直接启发了Linux

备注

  1. QDOSMS-DOS是单任务、无内核的操作系统。起码,没有现代意义上的内核,只负责简单的磁盘IO操作,程序运行直接读取物理内存。尽管后期通过一些方式,实现了“有限多任务”的支持。
  2. Apple在1983年的Lisa OS搭载了比较现代化的内核,支持虚拟内存和内存保护,以及抢占式多任务。但最终因为过于先进,对硬件要求高,使用者的成本太高而导致项目最终失败。因此Apple在之后的Macintosh系列产品的操作系统采用了更温和的策略。

现代操作系统奠基时期

介绍

1991年,Linux 内核 0.01诞生。是首个开源、类Unix的通用内核。

1993年,Windows NT 3.1(含Windows NT 内核)诞生,是首个32位Windows,奠定现代Windows架构基础。

1995年,Windows 95MS-DOS内核 + 32位扩展/内核)诞生,整合DOSGUI,引入开始菜单。

1997年,MAC OS 8诞生,首个支持多任务的Mac OS

备注

  1. Windows 95Windows 98Windows Me搭载的都是MS-DOS内核 + 32位扩展/内核,但其和Windows 1.0 - Windows 3.x不同。前者在开机时启动和初始化DOS,随后DOS引导控制权给32位内核,自己则作为兼容层。后者则一直是MS-DOS系统,图形化程序作为其外壳。
  2. Windows NT 3.1Windows NT 3.5Windows NT 3.51Windows NT 4.0Windows 2000Windows XP等后续版本搭载的都是Windows NT内核。
  3. Windows 9598Me已经具有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,是BSDMach微内核结合,奠定macOSiOS的基础。

2001年,Windows XP诞生,被誉为“最成功的Windows版本”。

2003年,Debian GNU/Linux 3.0发布,被誉为“最稳定的Linux发行版之一”,建立apt包管理系统。

2007年,iOS诞生(使用XNU内核),重新定义智能手机操作系统。

2008年,Android 1.0(使用深度定制化Linux内核)发布,是首个开源移动操作系统主流方案。

备注

  1. Mac OS X 10.0 是现代苹果操作系统的开端,基于开源操作系统Darwin(也就是Mac OS X包含Apple的一部分闭源内容),其中Darwin使用内核XNU,结合了Mach微内核和BSD(后来部分升级为FreeBSD)。
  2. 苹果Macintosh(也就是日常说的Mac电脑)的第一个操作系统是在1984年发布的,当时称为System Software,后来被统称为“Classic Mac OS”。第一代命名为System 1.0,知道System 7.6之后的版本命名变为Mac OS 8.0Mac OS 9.0。直到Mac OS X 10.0发布,其中X表示的就是XNU内核(X is Not Unix)。
  3. Classic Mac OS”时期的操作系统并没有一个现代化的、统一的“内核概念”。例如,内存不受保护、程序必须自愿让出CPU给系统等。但实际上,它有许多协作管理器,共同维护系统的运行。

当代时期

介绍

2012年,Windows 8诞生,是首个跨电脑和平板设计的Windows操作系统。

2015年,Windows10诞生。

2021年,Windows 11发布。

备注

  1. 简要记录一下Windows的迭代。