日期:2014-05-16 浏览次数:20845 次
目前的操作系统内核模式主要可以分为两种模式:
《linux kernel development》第一章里面特别对于monolithic kenel 和microkernel 进行了对比。下面是我LKD第一章的笔记。有目录,很快可以翻到
http://blog.csdn.net/cinmyheart/article/details/23769725#t3
在单内核模式的系统中(eg.linux),操作系统所提供的服务流程:
应用程序使用指定的参数值执行系统调用指令(int 0x80),使用CPU从user mode 切换到kernel mode,然后操作系统根据具体的参数值调用特定的服务程序,而这些服务程序则根据需要调用底层的一些支持函数以完成特定的功能。
monolithic kernel的三个层次:
linux内核主要由5个模块构成
文件系统模块用于支持外部设备的驱动和储存。虚拟文件系统模块通过向所有的外部储存设备提供一个通用的文件接口,隐藏了各种硬件设备的不同细节。从而提供并支持与其他操作系统兼容的多种文件格式。
所有的模块都与进程调度模块存在依赖关系。因为它们都需要依靠进程调度程序来挂起(暂停)或重新运行它们的进程。通常一个模块会在等待硬件操作期间被挂起,而在操作完成后才可继续运行。