Chapter 2 Operating System Structures
1)服务
略
2)接口
CLI和GUI
3)系统调用
系统调用是kernel内部实现的,是操作系统为用户态进程和底层硬件提供的一组接口。而API是根据系统调用向程序员提供内核服务的编程接口。注意一个API不一定就对应了一个系统调用,很有可能一个API执行的功能需要多个系统调用来共同完成。使用API而不直接使用系统调用的原因是为了可移植性(program portability)同时也是因为系统调用通常是复杂的,不容易直接操作。
4)系统调用的类型
粗略分为5类:进程控制(process control)、文件处理(file manipulation)、设备管理(device manipulation)、信息获取(information maintenance)和交流(communication)
5)操作系统的结构类型
a、简单结构(simple structure)
比如MS-DOS,以及早期的UNIX,特点是没有很好的模块化、受制于硬件、安全性不高。
b、层次化结构(layered approach)
优点是简单、容易构建,方便debug。缺点是要合理定义每个层很困难,需要很小心地布局,层与层之间的信息可能被频繁换进、换出内存,效率不高。
c、微内核(microkernel)
优点是容易扩展,容易调整内核的内容,安全(security),可靠(reliability),缺点是性能下降(performance decrease),user space被挤占。
代表:QNX、Digital UNIX(Tru64 UNIX)、Windows NT,Win8,Win10,Mac OS
d、单/宏内核结构(monolithic kernels structure)
优点:非常高效(因为内核中的函数都可以访问到其他部分),缺点:很难区分bug、error,很难维护,随着OS扩大,内核会变得越来越庞大。
e、模块(modules)
例如现在的UNIX、LINUX、Mac OS X、Solais
like microkernel but more flexible
f、虚拟机(virtual machines)
独立、安全、没有直接的数据共享