OS services
- 有助于用户的功能
- UI/GUI
- 程序执行功能
- IO操作
- 文件系统的控制
- 进程的沟通:两种方式:共享内存或信息传递
- 错误检测
- 优化系统操作的功能
- 资源分配
- 日志系统:记录系统资源的使用情况
- 安全相关:确保所有对系统资源的使用都被操作系统控制
System Calls
System Program
- 文件处理
- 对编程语言的支持
- 程序加载和执行
- 系统进程,用户和计算机系统间的沟通
OS design&implement
- 定义目标,对目标进行分类细化
- 基于系统类型和硬件做决策
- 面向用户的目标和面向系统的目标
- 用户目标:各方面的用户体验
- 系统目标:设计、实现和维护的可行性,系统的灵活性,安全性,可靠性,可扩展性
区分两个概念:
- 策略(policy):what will be done? 规则及其实例
- 机制(mechanism):How to do it?实现规则的软硬件
将mechanism从policy区分开有利于提升灵活性(分离多变的部分和稳定的部分)
OS software structure
monolithic structure:存在对layer的跨层调用引发对layer结构的修改:将layer简化为大的os kernel,外面则是系统程序
微内核(microkernel)
kernel只起到communication的作用,其他之前的kernel功都变成了system program,放在了user space
扩展性更好,但性能更低
Modules(linux的架构?)
kernel本身还是大的(类似宏内核),但kernel space的功能被分划为一个个module,并且在运行时加载到kernel。
功能彼此之间调用时不需要过多的信息交互,所以性能更好