zoukankan      html  css  js  c++  java
  • 内核态和用户态,内核空间和用户空间

    内核态与用户态是操作系统的两种运行级别,intel cpu提供Ring0-Ring3三种级别的运行模式。Ring0级别最高,Ring3最低

    内核态可以拥有比用户态更大的权限

    处于内核态的进程,可以访问用户进程空间(是虚拟地址空间),就是通过进程的页表(进程本身就是一个4G虚拟地址空间。其中用户空间的3G是独立的,内核空间是共享的)来访问用户地址空间对应的物理地址,从而访问用户空间

    相反用户态的进程,只能访问用户地址空间(虚拟地址空间)

    在内核态下,利用内核地址空间中的高端内存地址空间,来映射高端内存。获得的内存不能被用户态访问

    内核态直接访问用户空间地址

    就是直接读取地址的,通过系统调用进入内核的,仍然是和app属于同一个执行流,即是同一个进程,也即页表没有变化,所以完全可以直接读取
    所谓缺页异常都是因为访问了页表没有映射的那些虚拟地址,但是在这个进程页表中,3G以下的区域是映射了的,所以完全可以直接读写

    缺页异常需要在开启MMU的情况下才会有,假如你在uboot里面,你去直接读写那种根本不存在任何东西的地址,也是不会发生任何错误的。

     

  • 相关阅读:
    WebApi实现自定义错误日志
    WebApi实现IHttpControllerSelector问题
    动态属性ExpandoObject
    SQL远程连接
    HTML空格占位
    SQL生僻字模糊查询
    python中的字符串
    idea闪退
    lineNumber: 1; columnNumber: 1; 前言中不允许有内容。
    linux下后台启动weblogic
  • 原文地址:https://www.cnblogs.com/kkshaq/p/4526635.html
Copyright © 2011-2022 走看看