认识操作系统
操作系统
1 OS 简史
1.1 批处理操作系统
1946-02-04
世界上第一台公认的通用计算机ENIAC在宾夕法尼亚大学
诞生。1956
年实现GM-NAA I/O
系统具备批处理特性。
1.2 从专用走向通用
1964
年,美国IBM公司发布IBM System/360
的大型机。将计算机架构和实现分开,奠定IBM PC兼容机的基础,操作系统进入通用操作系统时代。
1.3 分时与多任务
1964
年通用电气和麻省理工学院发起Multics
项目,目标是设计与实现一多用户、多任务、多层次的操作系统。Multics
是最早使用高级语言编写的操作系统之一。- Unix起源于Multics,C语言之父
Dennis Ritchie
在1973
年使用C重写UNIX第四版。但因为商业版权不能自由使用。 - Linux起源于Unix,芬兰程序员
Linus
在1991
年发布Linux。Linux是最流行的开源通用操作系统。
1.4 以人为本的人机交互
1973
年,第一台个人计算机问世,也是最早引入GUI(图形用户界面)的操作系统Xerox PARC
。1979
年,苹果创始人Jobs访问Xerox PARC,并在1983
年发布了Apple Lisa
个人桌面计算机。- 随后微软创始人Bill Gates开发基于GUI的操作系统
Windows 1.0
,于1985
年发布。
2 OS 结构
构建一个复杂的系统,需要合理的架构和设计其内部结构,在不同的需求之间进行权衡。例如,用户目标是易用/易学/可靠/安全/流程等,系统目标是简单的实现/维护/灵活/可靠/高效等,一个合理的操作系统的设计需要在这些目标之间进行权衡。
2.1 复杂度管理
- 机制与策略: 让系统通过多种不同的策略来适应不同的应用需求,而不需要重新来实现对应的具体机制,
- M.A.L.H 方法: 模块化、抽象、分层、层级
2.2 内核架构
完整的操作系统由系统内核和系统框架组成,常见的内核架构有
- 简要结构: 功能简单的操作系统,将应用程序和操作系统放置在同一地址空间中,无需底层硬件提供复杂的内存管理、特权级隔离等功能。例如 FreeRTOS, uCOS, RT-thread 等
- 宏内核: 通用的操作系统,将操作系统内核的所有模块放置在内核态运行,具备直接操作硬件的能力。例如 UNIX/Linux, FreeBSD 等
- 微内核: 简单的操作系统,将单个功能或模块从宏内核中解耦放置到用户态运行,内核态保留核心的 IPC 功能。例如 Harmony/Mach/QNX/MINIX/L4/seL4/Zircon 等
- 外核: 特定领域的操作系统,由应用层来控制硬件资源的抽象,此时内核态核心机制是多路复用。例如 LibOS
- 其他内核架构: 例如 多内核,混合内核
2.3 框架结构
操作系统框架是 OS 的组成之一,例如 Android 系统框架: 硬件抽象层 - Android库 - Android运行时环境 - Android应用框架
。
References
- 《现代操作系统:原理与实现》