Windows 和 Linux是比较常见的两款操作系统。操作系统核心的东西就是内核。
1. 什么是内核?
计算机由各种外部硬件设备组成,如内存、CPU、硬盘等,若每个应用都与这些硬件设备对接通信协议,太麻烦了。因此,引入内核作为中间人,让内核作为应用连接硬件设备的桥梁,应用程序只用关心与内核的交互,而不关心硬件的细节。
2. 内核的功能
(1)进程调度能力:管理进程、线程决定哪个进程、线程使用CPU;
(2)内存管理能力:决定内存的分配和回收;
(3)硬件通信能力:管理硬件设备,为进程与硬件设备之间提供通信能力;
(4)提供系统调用:如果应用程序要运行更高权限运行的服务,那么就需要系统调用,它是用户程序和操作系统之间的接口。
3. 内核是如何工作的?
内核具有很高的权限,可以控制CPU、内存等硬件,而应用程序具有很小的权限,因此大多操作系统将内存分为两个区域:
(1)内核空间:只有内核程序可以访问;程序使用内核空间时,称程序在核心态执行。
(2)用户空间:专门给应用程序使用;程序使用用户空间时,称程序在用户态执行。