设备驱动程序和中断服务程序

时间:2011-05-25 15:19:36

标签: assembly x86 device drivers

一个非常基本的问题。我了解到设备驱动程序和中断服务程序只是一些程序或代码。只要有需要,他们就可以执行。 执行意味着CPU正在执行其指令集ISA之外的一些指令。那么它是否意味着设备驱动程序和ISR也是生成所需结果的机器指令?

究竟这些程序究竟是由设备驱动程序和中断例程组成的?这样的程序是否也有数据段,代码段和堆栈段?

我正在学习x86汇编语言和C。

2 个答案:

答案 0 :(得分:3)

这是一个准确的评估。足够复杂的设备驱动程序具有数据段,代码段和堆栈段。

答案 1 :(得分:3)

考虑如何从设备获取数据。有两种方法:

  • 投票:我们还在吗?我们还在吗?一个程序,操作系统内核,设备驱动程序,等等......一直询问设备是否有新数据。
  • 中断:设备告诉CPU它有重要的东西,并且中断 CPU。 CPU执行一个称为中断服务程序的例程来为请求提供服务,然后继续执行它在中断之前所做的任何事情。

根据您的操作系统(或无操作系统,只是裸机),设备驱动程序可以是程序,也可以是操作系统内核的组成部分,...

典型的设备驱动程序将执行以下操作:识别设备,初始化设备,处理设备中断,处理写入/读取/配置设备的请求,...

当然,现代CPU倾向于提供保护功能,并且不允许任意进程访问设备。因此,设备驱动程序将以高权限级别运行,通常作为操作系统内核的一部分运行,或者如果用户空间设备驱动程序,它将使用内核提供的一些定义良好的接口。