对应视频内容:
1.4 如何学习操作系统
1.5 操作系统的实例
1.6 操作系统的历史
1.7 操作系统结构
1.8 小结
一、操作系统的大概分支
UNIX家族
UNIX BSD是由伯克利在UNIX之上开发的开源操作系统。UNIX和C语言由一个团队开发,UNIX由C开发。
Linux家族
类UNIX的操作系统。安卓的内核也为Linux Kernel。
Windows家族
最初为DOS系统。桌面占统治地位,移动端与服务器较为弱势。Windows操作系统让不懂计算机的开始使用计算机。
还有很多面向不同的对象的操作系统。
二、操作系统的历史和演变过程
早期计算机使用纸带传输程序和数据,操作系统只起到加载作用。
CPU等硬件快速发展,计算机速度得到提升(批处理阶段/离线处理)。操作系统初步形成,初步体现操作系统并发特征。
内存容量越来越大、CPU执行多个程序(多道程序设计)。在程序1等待I/O操作时,操作系统去执行程序2,而不是等待程序1。
但是多道程序设计交互性不够好。为了更好地利用计算机资源,并且更好地和用户交互,出现了分时交互系统。两个程序轮流占用资源,比如程序A占用千分之一秒,程序B接上,运行千分之一秒后,又交给A。外设(时钟)定期产生中断,帮助操作系统完成相应的分时调度。
个人电脑操作系统,Windows的GUI更加用户友善。
多核多处理普遍存在。
网络快速发展,出现了分布式操作系统。松耦合、紧耦合系统由分布式操作性管理。
未来,生活中存在大量嵌入设备。
三、操作系统结构
简单的操作系统:MS-DOS(1981~1994)
不分模块的单体内核,用汇编语言设计。
Unix操作系统是1972由贝尔实验室设计,用C语言设计(有可移植性)。
微内核
为了将内核尽量小巧,提出微内核的设计,尽可能把内核功能移植到用户空间。功能作为进程,其之间通过内核的消息传递机制进行协调。微内核为松耦合结构。
微内核设计代价:程序间交互要通过内核,进行多次拷贝,开销较大。因此微内核在产业界应用较少。
外内核
速度快,主要在学术界有进一步研究。
ExoKernel(读作XO Kernel),与硬件打交道,完成硬件的
LibOS与软件打交道,程序可以面向自己的LibOS,再统一面向ExoKernel。
LibOS与应用紧耦合。ExoKernel完成硬件的隔离。
虚拟机 VMs
在传统OS之下,虚拟出多个计算机系统。在计算机系统上虚拟出一台完整的计算机,包含全部物理环境。多操作系统共享硬件资源。