读书频道 > 系统 > linux > Linux设备驱动开发详解:基于最新的Linux 4.0内核
3.3.3 Linux内核空间与用户空间
2015-08-30 15:13:30     我来说两句 
收藏    我要投稿   
本书首先介绍Linux设备驱动的基础。第1章简要地介绍了设备驱动,并从无操作系统的设备驱动引出了Linux操作系统下的设备驱动,介绍了本书所基于的开发环境。第2章系统地讲解了Linux驱动工程师应该掌握的硬件知识,  当当热卖商品推荐">立即去当当网订购
现代CPU内部往往实现了不同操作模式(级别),不同模式有不同功能,高层程序往往不能访问低级功能,而必须以某种方式切换到低级模式。
 
例如,ARM处理器分为7种工作模式。
 
用户模式(usr):大多数应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能访问的。
 
快速中断模式(fiq):用于高速数据传输或通道处理。
 
外部中断模式(irq):用于通用的中断处理。
 
管理模式(svc):操作系统使用的保护模式。
 
数据访问中止模式(abt):当数据或指令预取中止时进入该模式,可用于虚拟存储及存储保护。
 
系统模式(sys):运行具有特权的操作系统任务。
 
未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。
 
ARM Linux的系统调用实现原理是采用swi软中断从用户(usr)模式陷入管理模式(svc)。
 
又如,x86处理器包含4个不同的特权级,称为Ring 0~Ring 3。在Ring0下,可以执行特权级指令,对任何I/O设备都有访问权等,而Ring3则被限制很多操作。
 
Linux系统可充分利用CPU的这一硬件特性,但它只使用了两级。在Linux系统中,内核可进行任何操作,而应用程序则被禁止对硬件的直接访问和对内存的未授权访问。例如,若使用x86处理器,则用户代码运行在特权级3,而系统内核代码则运行在特权级0。
 
内核空间和用户空间这两个名词用来区分程序执行的两种不同状态,它们使用不同的地址空间。Linux只能通过系统调用和硬件中断完成从用户空间到内核空间的控制转移。
点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:3.3.2 Linux内核的组成部分
下一篇:3.4.1 Linux内核的编译
相关文章
图文推荐
3.3.6 GNOME的软件管
3.3.5 GNOME的文件管
3.3.4 GNOME的窗口管
3.3.3 收藏夹和快捷
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站