内核
-
负责响应中断的中断服务程序
-
负责管理多个进程从而分享处理器时间的调度程序
-
负责管理进程地址空间的内存管理程序和网络、进程间通信等服务程序
-
内核独立于普通应用程序,一般处于系统态,拥有受保护的内存空间和访问硬件设备的所有权限,这种系统态和被保护的内存空间,统称内核空间
-
应用程序在用户空间执行,当内核运行的时候,系统以内核态进入内核空间执行,而执行一个普通程序时,系统将以用户态进入以用户空间执行
-
系统中运行的应用程序通过系统调用与内核通信
应用程序、内核和硬件的关系:
-
单内核就是把它从整体上作为一个单独的大过程实现,同时也运行在一个单独的地址空间上,这样的内核通常以单个静态二进制文件的形式存放于磁盘中,单模块具有简单和性能高的特点。
-
微内核的功能被划分为多个独立的过程,每个过程叫做一个服务器,所有的服务器都保持独立并运行在各自的地址空间上,各个服务器通过消息传递处理微内核通信,系统采用了进程间通信(IPC)机制。
-
IPC机制需要大量的开销,所有实际应用的基于微内核的系统都让大部分或全部服务器位于内核
-
Linux与传统Unix差异:
- Linux支持动态加载内核模块
- Linux支持对称多处理(SMP)机制
- Linux内核可以抢占。
- Linux对线程支持的实现:内核并不区分线程和其他一般进程,对于内核来说,所有的进程都一样
- Linux提供具有设备类的面向对象的设备模型、热拔插事件,以及用户空间的设备文件系统
- Linux忽略了一些很拙劣的Unix特性,like STREAMS
- Linux自由