操作系统最重要的是和硬件交互的部分。硬件可以不停演变,但是OS和硬件的交互可以抽象出来,譬如磁盘的文件系统,不管换成什么样的磁盘,文件系统可以抽象出来;再比如I/O(输入输出系统),不管是什么样的输入输出设备(键盘, 触摸屏,crt显示器,液晶显示器),I/O功能也都可以抽象出来。理解了OS的每个部分的抽象,也就能真正理解了一个OS是如何实现的,不管以后硬件演变成什么样子,在OS层做好软件的抽象,就能立于不败之地。
相关硬件模块:
1. 磁盘 - 文件系统
2. I/O - 键盘 显示器
3. usb设备
4. CDROM
5. 照相机
6. 网卡
所有硬件都由cpu来控制,程序员编写的代码被CPU读入,CPU执行代码,操纵相应的硬件的指令不同的硬件系统是不一样的,但是一些基本操作可以抽象出来,譬如分配内存,读取内存,C语言抽象了这些操作,针对不同的硬件系统成不同的底层汇编或机器语言
硬件层的设计:
硬件的设计和软件的设计一样,尽量能做到设备之间可以通过公开已知的协议进行交互,设备可以通过输入命令被控制(可以接受电平信号从而来被控制等)。