小智 110
单片内核是一个完全在单个地址空间中运行的单个大型进程.它是一个静态二进制文件.所有内核服务都在内核地址空间中存在并执行.内核可以直接调用函数.基于单片内核的操作系统的示例:Unix,Linux.
在微内核中,内核被分解为单独的进程,称为服务器.一些服务器在内核空间中运行,一些服务器在用户空间中运行.所有服务器都保持独立,并在不同的地址空间中运行.服务器通过IPC(进程间通信)发送消息来相互调用"服务".这种分离的优点是,如果一台服务器出现故障,其他服务器仍可以高效工作.基于微内核的操作系统的示例:Mac OS X和Windows NT.
小智 70
1)单片内核比Microkernel年龄大,这个想法是在20世纪80年代末构思出来的.
2)单片内核用于Unix和Linux.微内核用于QNX,L4和HURD.它最初用于Mach(不是Mac OS X),但后来转换为混合内核.甚至Minix也不是纯内核,因为设备驱动程序是作为内核的一部分编译的.
3)单片内核比微内核更快.第一个微内核Mach比Monolithic内核慢50%,而像L4这样的后期版本比Monolithic内核慢2%或4%.
4)单片内核通常很笨重.纯Microkernel必须小巧,以适应处理器的L1缓存(第一代微内核).
5)在Monolithic内核中,设备驱动程序驻留在内核空间中,而在Microkernel中,设备驱动程序驻留在用户空间中.
6)由于设备驱动程序驻留在内核空间中,因此单片内核比微内核更不安全,并且驱动程序中的故障可能导致崩溃.微内核比单片内核更安全,因此在一些军事设备中使用.
7)单片内核使用信号和套接字来确保IPC,微内核方法使用消息队列.第一代微内核很难实现IPC,因此上下文切换速度很慢.
8)向单片系统添加新功能意味着重新编译整个内核,而使用微内核,您可以添加新功能或补丁而无需重新编译.
小智 22
单片内核
内核的所有部分,如调度程序,文件系统,内存管理,网络堆栈,设备驱动程序等,都在单片内核的内核中维护在一个单元中
好处
•加快处理速度
缺点
•崩溃不安全•移植不灵活•内核大小爆炸
示例 •MS-DOS,Unix,Linux
微内核
只有IPC(进程间通信),基本调度程序,基本内存处理,基本I/O原语等非常重要的部分才会被放入内核中.通过消息传递进行通信.其他人在User Space中维护为服务器进程
好处
•防撞,便携,尺寸更小
缺点
•由于额外的消息传递而导致处理速度变慢
示例 •Windows NT
Nam*_*nav 13
1.Monolithic Kernel(Pure Monolithic):all
所有内核服务来自单个组件
( - )添加/删除是不可能的,少/零灵活
(+)组件间通信更好
例如: - 传统的Unix
2.Micro内核:few
来自核心内核的少数服务(内存管理,CPU管理,IPC等),来自不同层/组件的其他服务(文件管理,I/O管理等)
拆分方法[某些服务处于特权(内核)模式,而某些服务处于正常(用户)模式]
(+)灵活的变化/升级
( - )通信开销
例如: - QNX等
3.Modular kernel(Modular Monolithic):most
Micro和Monolithic内核的组合
模块集合 - 模块可以是 - >静态+动态
驱动程序以模块的形式出现
例如: - Linux Modern OS