嵌入式每日八股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

全部评论

相关推荐

03-29 19:11
门头沟学院 Java
wyp_davis:是可以这样的,不过只要交钱就是假的
点赞 评论 收藏
分享
03-31 18:02
门头沟学院 Java
白日梦想家_等打包版:不要的哦佛给我
点赞 评论 收藏
分享
评论
1
7
分享

创作者周榜

更多
牛客网
牛客企业服务