linux 设备驱动程序开发 第3版_Chapter2_Uer Space and Kerne...

内核模块与用户空间
本文探讨了操作系统中内核模块与用户空间的概念及其重要性。内核模块运行在内核空间,负责扩展内核功能;用户空间则是应用程序运行的地方。文章详细介绍了不同特权级的作用以及如何通过系统调用和硬件中断实现从用户空间到内核空间的转移。

内核模块程序运行在内核空间,应用程序运行在用户空间。这个概念构成了操作系统理论的基础。

事实上,操作系统为程序提供了一个统一的硬件视图。另外,操作系统必须保证各个程序的操作的独 立性,还得保护各种资源不能非法访问。完成上面这些任务的前提是必须将系统软件和应用软件区分 卡来。

每一个现代的处理器都能具有上述功能。其中的一个方法是CPU可以运行在不同的级别上。不同的级 别代表具有不同的功能,有些操作在特权级低的时候是不允许的;程序仅仅可以通过一些调用门实现 特权级之间的转换。UNIX系统就利用了这种硬件特性,使用了其中的两个特权级。所有现代处理器 都至少有两个特权及,而另外的一些,例如X86,提供了四个特权级。当多余两个特权级时,UNIX 利用最高特权级和最低特权级。

我们通常将运行的模式成为内核空间和用户空间。这两个术语不仅体现在特权级上,还体现在不同的 内存映射方式和地址空间。

Unix程序从用户空间转移到内核空间有两种方式,一种是系统调用,另外一种是硬件中断。执行系统 调用时内核代码在当前进程的上下文中运行,它是为当前进程而服务的,所以它能够访问进程的地址 空间中的数据。但是硬件中断的代码和进程是异步的,并且和任何一个特定的进程无关。

内核模块的代码运行在内核空间,并且能够扩展内核的功能。大多数的驱动程序要执行执行上面说 两类任务:驱动程序中的一些函数用来完成系统调用,另外一些用来处理硬件终端。

转载于:https://my.oschina.net/u/1262825/blog/162688

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值