操作系统结构
operating system services
- 用户接口
- 程序
- IO操作
- 文件系统
- 通讯
- 错误检测
- 资源分配
- 安全
User Operating System Interface
- command interface
- CIL: command-line interface
- GUI: graphics user interface
- program interface(System call)
system call
- 定义:系统调用是在用户进程和系统内核之间的程序接口
- 多数情况下,用户进程通过API而不是系统调用与内核打交道。
- API是一组函数定义,提供了一个特定的服务;而一个系统调用时通过软中断向内核发送一个请求;
- API可能需要一个或多个系统调用来完成其功能,如果不与内核打交道,则不需要用到系统调用;
- 系统调用是在内核态中运行的,而API是在用户态中运行;
- 系统调用如何传递参数?有三种:
- 在寄存器中传递,适用于参数比较少的,因此会限制参数长度;
- 在block、table或者内存中,然后再寄存器存着所在block的地址;
- 存在stack中,需要时则pop;
Operating system structure
- simple structure: MS-DOS
- Microkernel system structure:
由“微”内核和若个个服务组成,基本功能由中央内核提供,其它功能由独立进程提供
- windows、Macos
- Monolithic Kernels:
内核的所有代码,包括子系统都被打包进一个文件中,内核中的每个函数都可以访问内核中所有部分
- linux
virtual machines
虚拟机是在硬件上的一层服务,物理机的资源被用来创建虚拟机。虚拟机很好地避免了与硬件资源的直接访问