• 内核空间与用户空间


      首先,这个概念的由来,我认为跟CPU的发展有很大关系,在目前CPU的保护模式下,系统需要对其赖以运行的资料进行保护,为了保证操作系统内核资料,我们把内存空间进行划分,一部分为操作系统内核运行的空间,另一部分是应用程序运行的空间,所谓空间就是内存的地址。因此内核空间和用户空间的概念就出现了。在386以前的CPU实模式下,操作系统内核与用户程序的内存空间是不做区分的,也就不存在内核空间和用户空间的说法了。
    其次,CPU的保护模式的一个重大特点,也就是硬件直接支持的内存访问模式,虚拟地址空间到物理地址空间的映射。这种工作模式与内核空间用户空间在技术上的相辅相成,也是促成内存空间划分的原因。内核空间,顾名思义就是内核的运行空间,用户空间也就是用户程序的运行空间,操作系统为了保护自己不被普通程序的破坏,对内核空间进行了一些定义,比如访问权限,换入换出,优先级等等。也就是说内核空间只允许内核访问,用户程序如果要访问内核空间就需要经过内核的审核。内核空间的页表是常驻内存的,不会虚拟内存管理模块换出到磁盘上。内核空间的程序一旦出错,系统会立即死机——系统拒绝继续运行。而用户程序则没有这么多些特权。
    再次,内核空间和用户空间都是指虚拟空间,也就是虚拟地址。目前32位系统总共有4G的虚拟地址空间,在Linux系统中,4G虚拟地址空间的最高1G地址被分配给内核使用,是为内核空间,且为内核独享,而低地址的3G空间为用户程序所共享,也就是每个用户程序都有3G的虚拟地址空间。

  • 相关阅读:
    如何检查项目的需求是否完整
    Linux环境 Java内存快速查看
    字符串拼接性能比较出乎意料的结果
    MySQL 查看表大小
    五大机器学习微信公众号推荐
    如何用PYTHON代码写出音乐
    【转载】机器学习如门概览
    机器学习PAI为你自动写歌词,妈妈再也不用担心我的freestyle了(提供数据、代码)
    【转载】程序猿转型AI必须知道的几件事!
    如何拿到阿里算法校招offer
  • 原文地址:https://www.cnblogs.com/qiumingcheng/p/5236242.html
Copyright © 2020-2023  润新知