操作系统的组成结构
- 操作系统由应用层和内核层组成,内核层控制硬件,应用层负责人机交互。以下分别介绍模块:
- 引导启动程序。一旦内核开始执行后,引导程序再无他用,可以比作运载火箭把卫星推入轨道。引导启动程序被称为BootlLoader。比较流行的有Grub和Uboot。
- 内存管理。内核的基础功能,主要作用是有效管理物理内存,简化其他模块开辟内存空间的过程。内存管理单元有伙伴算法,红黑树管理算法等。Linux选择红黑树代替AVL树。
- 异常/中断处理。
- 进程管理。一个好的进程调度策略,会提高程序的执行效率和反应速度。
- 设备驱动。
- 文件系统。把全部扇区组织成一个便于管理的结构化单元。
- 系统调用API库。有很多规范标准,给应用程序提供简单、快捷、便于使用的接口。
- 应用程序。
编写操作系统需要的知识
- 硬件:根据硬件电路掌握处理器与外围设备的电路组成,即处理器和外围设备是怎么连接的。编写一个PC平台的操作系统对硬件电路的掌握要求比较宽松。阅读这些硬件设备的芯片手册。根据寄存器功能编写驱动程序。
- 软件:熟练运用汇编语言和C语言就足够了。汇编语言主要用于控制和配置处理器等必须操作寄存器的工作,C语言无法实现。而C语言是主要开发语言。一些灵活高效的算法也是必不可少的。基础的链表结构,到树状结构,到图状结构。