定义
内核是操作系统的核心部分,是最核心的代码和数据。它常驻于内存,负责管理计算机的硬件资源,如处理器、内存、磁盘驱动器、键盘、鼠标等。
内核作为应用连接硬件设备的桥梁,应用程序只需关心与内核交互,不用关心硬件的细节。
功能
-
进程调度
- 管理进程、线程,决定哪个进程、线程使用 CPU
-
内存管理
- 管理内存,决定内存的分配和回收
-
硬件通信
- 管理硬件设备,为进程与硬件设备之间提供通信能力
-
系统调用
- 如果应用程序要运行更高权限运行的服务,那么就需要有系统调用,它是用户程序与操作系统之间的接口
内存划分
-
内核空间
- 这个内存空间只有内核程序可以访问
-
用户空间
- 这个内存空间专门给应用程序使用
当程序使用用户空间时,我们常说该程序在用户态执行,而当程序使内核空间时,程序则在内核态执行。
工作原理
当应用程序使用系统调用时,会产生一个中断。发生中断后, CPU 会中断当前在执行的用户程序,转而跳转到中断处理程序,也就是开始执行内核程序。内核处理完后,主动触发中断,把 CPU 执行权限交回给用户程序,回到用户态继续工作。