通常,内核由负责响应中断的中断服务程序、负责管理多个进程从而分享处理器时间的调度程序,负责管理进程地址空间的内存管理程序和网络、进程间通信等系统服务程序共同组成。
在系统中运行的应用程序通过系统调用来与内核通信:
image.png
当一个应用程序执行一条系统调用,我们称内核正在代其执行。这种情况下,应用程序被称为通过系统调用在内核空间进行,而内核被称为运行于进程上下文中。这种交互关系(应用程序通过系统调用界面陷入内核)是应用程序完成其工作的基本行为方式。
每个处理器在任何指定时间点上的活动概括为以下三者之一:
- 运行于用户空间,执行用户进程;
- 运行于内核空间,处于进程上下文,代表某个特定的进程执行;
- 运行于内核空间,处于中断上下文,与任何进程无关,处理某个特定的中断。
Linux内核与Unix内核的区别:
- Linux支持动态加载内核模块,尽管其为单内核。
- 单内核:把内核当作一个单独的大过程来实现,同时也运行在一个单独的地址空间上;
- 微内核:把功能划分为多个独立的过程,每个过程叫做一个服务器。
- Linux支持对称多处理(SMP)机制
- Linux内核可以抢占
- Linux内核不区分线程和其他一般进程
- Linux提供具有设备类的面向对象的设备模型、热插拔事件,以及用户空间的设备文件系统
网友评论