Skip to content

《面渣逆袭》操作系统 篇 · 第 2/6 章。原版 PDF(下载 / 打印)

什么是内核?

可以这么说,内核是一个计算机程序,它是操作系统的核心,提供了操作系统最核心的能力,可以控制操作系统中所有的内容。

什么是用户态和内核态?

内核具有很高的权限,可以控制 cpu 、内存、硬盘等硬件,出于权限控制的考虑,因此大多数操作系统,把内存分成了两个区域:

内核空间,这个内存空间只有内核程序可以访问;

用户空间,这个内存空间专⻔给应用程序使用,权限比较小;

用户空间的代码只能访问一个局部的内存空间,而内核空间的代码可以访问所有内存空间。因此,当程序使用用户空间时,我们常说该程序在用户态执行,而当程序使内核空间时,程序则在内核态执行。

用户态和内核态是如何切换的?

应用程序如果需要进入内核空间,就需要通过系统调用,来进入内核态:

配图

内核程序执行在内核态,用户程序执行在用户态。当应用程序使用系统调用时,会产生一个中断。发生中断后, CPU 会中断当前在执行的用户程序,转而跳转到中断处理程序,也就是开始执行内核程序。

内核处理完后,主动触发中断,把 CPU 执行权限交回给用户程序,回到用户态继续工作。

本文整理自三分恶《面渣逆袭》系列的公开内容,仅供个人学习使用

本站仅供个人学习使用,请勿外传