1.宏内核
宏内核就是把进程管理代码,内存管理代码,设备管理代码,文件管理代码,
各种设备驱动程序代码及其他功能模块的代码经过编译,最后连接在一起,形成一个大的
可执行的程序.这个大程序里有实现支持这些功能的所有代码,向用户应用软件提供一些接口,
这些接口就是常说的系统API函数.这个大程序运行在处理器的特权模式下,这个模式通常被称为内核模式.
例如:宏内核提供内存分配功能的服务过程:
1.应用程序调用内存分配的API函数
2.处理器切换到特权模式,开始运行内核代码
3.内核里的内存管理代码按照特定的算法,分配一块内存
4.把分配的内存块的首地址返回给内存分配的API
5.内存分配的API函数返回,处理器开始运行用户模式下的应用程序,
应用程序就得到了一块内存的首地址并可以使用这些内存了.
2微内核:
微内核定义了一种良好的进程间通信的机制-消息
服务进程的编程模型就是循环处理来自其他进程的消息,
完成相关的消息.
例如微内核提供内存分配功能的服务过程:
1.应用程序发送内存分配的消息
2.处理器切换到特权模式,开始运行内核代码
3.微内核代码让当前进程停止运行并根据消息包中的数据,确定发送给谁
4内存管理服务进程收到消息,分配一块内存
5.内存管理服务进程,也通过消息的形式返回分配内存块的地址给内核.
继续等待下一条消息.
6微内核把包含内存代码地址的消息返回给发送内存分配消息的应用程序
7处理器开始运行用户模式下的应用程序,应用程序就得到了一块内存的首地址并可以使用这块内存