操作系统的地位和目标
计算机系统的组成
系统软件是和硬件相关的,这是它本质的特征。
操作系统在计算机系统中的地位
操作系统的设计目标
可扩充性是面向未来的。
操作系统的作用
1)用户与计算机硬件系统之间的接口
2)计算机系统资源的管理者
3)用作扩充机器(或虚拟机)
裸机是由硬件和固件构成的,并不是纯粹的裸机。
操作系统的组成及层次模型
处理机抽象成进程的方式管理。
上述是从理解的角度,实际的操作系统更复杂,更交叉。
操作系统的定义及实例
管理和控制:管控
有效管理:操作系统的设计目标之有效性
VxWorks:实时系统,航天领域
AIX:大型机上
Novell Netware: 网络
计算机系统组成及体系结构
这些硬件通过总线连接在一起,各个设备的控制器连接到总线上。
a) 中央处理器直接参与内存与设备间的交互。
b) 后期引入中断机制,每传输一个机器字,中央处理器干预一次
c) 直接内存访问DMA硬件设备,每传输一个数据块,让处理器干预一次
d) 传送好多数据块,通过通道,输入输出处理器
内存外设都是通过接口和总线连接。
执行部件:CPU,通过指令集:(7)用户指令集 (8)系统指令集(只能为OS内核所使用),
(3)系统调用
(2)库函数
外围接口的控制机,也就是端口,我们关注对端口的访问指令。
OS对外围设备的管控,主要是通过端口,对内存通过地址,对处理器通过指令集。
用户指令集体系结构
0x0800,一半给内核,一半给用户空间
注:0xFFFF FFFF,即232=4GB
8086是16位外部数据总线,2^16=64K,为什么可以寻址1M呢?
因为启用了20位的地址线,8086将段寄存器中的地址左移4位,2^4=16。
8086和8088提供了4个段寄存器,它可以直接进行访问4*2^16=256K。
线性空间等分,就是分页的处理,好多计算机系统支持分页,未必支持分段。
系统指令集体系结构及陷入机制
操作系统的内核运行在系统模式下,普通用户程序运行在用户模式下。
系统模式也称之为系统态,管态。
用户模式称为用户态,目态。
访管指令就是访问系统态下的某些东西。
输入输出指令,对端口的访问,对硬件控制是通过端口操作指令来完成的。
陷入是软中断,由用户态转入系统态
由硬设备引发的中断,和当前指令的执行无关
两种中断的流程类似,上面的黑体是硬件的处理流程。
用户态切入到系统态,要经过一个陷入机制。
操作系统硬件基础举例说明
操作系统用户接口
操作系统联机命令接口
操作系统图形化用户接口
弹出式菜单:比如鼠标右击显示的菜单
系统调用概念及实现机理
系统调用本质上是过程调用,是操作系统提供的系统服务。
系统调用是系统内核的一个系统过程。操作系统提供的服务于应用程序的系统调用命令。
系统调用的前后会运行在不同的系统状态前,调用前在用户态,调用后陷入到系统态。
5类系统调用
编写程序并没有直接见过系统调用,而是通过函数库,间接的使用系统调用。
0666,八进制6是110可读可写
syscall可以实现系统调用的直接调用。
最终映射到系统调用号。
3 4 5 6 8 是32位的Inter体系架构的系统调用整数值,注释里的是64位的Inter体系架构的系统调用整数值。
系统调用号:__NR_打头,在AX寄存器中,最后通过0x80,即128号中断触发了系统调用。
系统调用本质上就是一种过程调用,但它又是一种特殊的过程调用,因为它涉及到了从用户态到系统态的切换。
关键是把用户传入的系统调用号转换成内核相对应的系统调用处理函数,涉及到软中端陷入机制,涉及到中断向量表,系统调用表。
操作系统引导过程及引导程序
19号中断。
512B,一个扇区的大小
hang:jmp hang 自己跳转自己,times重复执行510字节。
操作系统二次加载引导过程设计举例说明
BIOS加载引导程序,引导程序再来加载操作系统内核代码。
10号中断用于显示。