嵌入式每日八股2.20
什么是内核空间,用户空间?
对 32 位操作系统而言,它的寻址空间(虚拟地址空间,或叫线性地址空间)为 4G(2的32次方)。即一个进程的最大地址空间为4G。 操作系统的核心是内核(kernel),它独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证内核的安全,现在的操作系统一般都强制用户进程不能直接操作内核。 具体的实现方式基本都是由操作系统将虚拟地址空间划分为两部分,一部分为内核空间,另一部分为用户空间。
针对 Linux 操作系统而言,
最高的 1G 字节(从虚拟地址 0xC0000000 到 0xFFFFFFFF)由内核使用,称为内核空间。
内核空间是操作系统内核独占的一部分内存空间,它包含了操作系统内核的代码、数据和堆栈等。内核空间通常位于内存的高端,其大小由操作系统设计者决定,可以根据系统的需要进行调整。在内核空间中,操作系统具有完全的控制权,可以直接访问系统硬件资源和内存,执行特权指令,完成系统级的任务,如进程管理、内存管理、设备驱动等。
而较低的 3G 字节(从虚拟地址 0x00000000 到 0xBFFFFFFF)由各个进程使用,称为用户空间。
用户空间是给用户程序使用的内存空间,它包含了用户程序的代码、数据和堆栈等。用户程序只能在用户空间中运行,不能直接访问操作系统内核和硬件资源。用户程序可以通过系统调用接口向操作系统内核请求系统资源,如打开文件、读取数据、向屏幕输出等。操作系统内核会根据用户程序的请求来完成相应的操作,然后将结果返回给用户程序。
每个进程的 4G 地址空间中,最高 1G 内核空间都是一样的,被所有进程共享的。只有剩余的 3G 才归进程自己使用。
通过将内核空间和用户空间分开,操作系统可以提高系统的安全性和稳定性。因为用户程序无法直接访问操作系统内核和硬件资源,操作系统可以更好地控制系统资源的分配和使用,避免用户程序的错误操作对系统的影响。同时,操作系统可以在内核空间中实现更高级别的保护和安全措施,保障系统的安全性和稳定性。
【嵌入式八股】精华版(免费216问精华八股) https://www.nowcoder.com/creation/manager/columnDetail/0rOeJm
【嵌入式八股】一、语言篇https://www.nowcoder.com/creation/manager/columnDetail/mwQPeM
【嵌入式八股】二、计算机基础篇https://www.nowcoder.com/creation/manager/columnDetail/Mg5Lym
【嵌入式八股】三、硬件篇https://www.nowcoder.com/creation/manager/columnDetail/MRVDlM
【嵌入式八股】四、嵌入式Linux篇https://www.nowcoder.com/creation/manager/columnDetail/MQ2bb0