周志遠教授作業系統_chap02_Operating System Chap2 OS Structure.pdf
OS services
Interface
对于User下指令:
CLI(Command Line Interface)
Shell: 命令行解释器 (CSHELL,BASH)
正式来说,Shell不是OS的一部分,是OS上面的Interface
- Linux常用BASH-GNU操作系统默认shell
- 不同shell不同的command,也可以做相同事
GUI(Graphic User Interface)
方便,速度慢,比较受限制。
Communication
根据内存分类
-
Message passing 传递信息
- 坏处:慢,需要多次Copy
- 程序A Memory Copy 到kernel后,再Copy到B → Protection
- TCP/IP慢的一个原因:需要copy到kernel再传递到别的PC
-
shared memory
- 坏处:死锁
- 通过System call 创建共享内存,2个程序都可直接读写
- Mutli-Thread Program 常用
- A直接写B的内容
OS Interface
System calls
- 通过kernel mode完成
- 通过软件中断发往kernel请求
- 讲究效率,使用汇编编写
System Calls传参
- 通过寄存器传参
- 储存参数在内存中的表/Structure,然后将其指针传递
- 储存在stack
API

Why use API?
- 简单
- 可移植
- 效率
- 不是所有的函数都需要OS服务/kernel
- 让User不需要了解底层即可快速编写应用
OS Structure
历史演变
-
Sample
-
Layered
-
Microkernel 微内核
- 代码越少越好
- reliable,flexible
- modulize 模块化
- kernel只负责沟通定义不同module间的Interface,其他组件均像User Program一样运作
- 效率差(每次都要沟通kernel)
- Message Passing 方式传参
Virtual Machine:四五十年前提出的技术
分类