Linux 内核空间与用户空间

Linux TOMORROW 2个月前 (04-03) 166次浏览 0个评论 扫描二维码

硬件 CPU 通常支持好几个优先级模式(操作模式),以满足不同类型程序的运行要求。

 

Arm 架构CPU 通常支持 7 个工作模式:

  • 用户模式(usr:大多数应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能访问的。
  •  快速中断模式(fiq:用于高速数据传输或通道处理。
  •  外部中断模式(irq:用于通用的中断处理。
  •  管理模式(svc:操作系统使用的保护模式。
  •  数据访问中止模式(abt:当数据或指令预取中止时进入该模式,可用于虚拟存储及存储保护。
  •  系统模式(sys:运行具有特权的操作系统任务。
  •  未定义指令中止模式(und:当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真

 

x86 架构CPU 支持 4 个特权级:Ring0~Ring3。

 

Linux 系统充分利用 CPU 这一特性,来实现内核空间与用户空间的分离,但它只用到了其中两级。

 

Arm Linux 系统调用实现原理是采用 swi 软中断从用户(usr)模式陷入管理模式(svc)。

若使用 x86 处理器,则用户代码运行在特权级 3(Ring 3),而系统内核代码则运行在特权级 0 (Ring 0)。

 

Linux 系统中,内核可进行任何操作,而应用程序则被禁止对硬件的直接访问和对内存的未授权访问。 内核空间和用户空间这两个名词用来区分程序执行的两种不同状态,它们使用不同的地址空间。 Linux 只能通过系统调用和硬件中断完成从用户空间到内核空间的控制转移。

 

 

参考:《Linux 设备驱动开发详解》-宋宝华-基于 Linux4.0 内核

 


TOMORROW 星辰 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Linux 内核空间与用户空间
喜欢 (0)
TOMORROW
关于作者:
TOMORROW星辰第一作者。如有疑问或者发现错误,请留言作者。
失眠的御姐发表我的评论  请填写正确的 个人信息
取消评论
表情 加粗 斜体 签到