一个非常基础的问题。我学到设备驱动程序和中断服务例程只是一些程序或代码。每当需要时它们就会被执行。 执行意味着CPU正在执行其指令集ISA中的某些指令。那么这是否意味着设备驱动程序和ISR也是生成所需结果的机器指令?这样的程序到底由什么组成?这样的程序是否也有数据段、代码段和堆栈段?我正在学习x86汇编语言和C。
考虑如何从设备中获取数据。有两种方式:轮询:程序、操作系统内核、设备驱动程序等会不断地询问设备是否有新数据。中断:设备告诉CPU它有重要的事情,然后“中断”CPU。CPU执行一个称为中断服务例程的例程来处理请求,然后继续执行被中断之前正在做的事情。根据您的操作系统(或无操作系统,只是裸机),设备驱动程序可以是一个程序,也可以是操作系统内核的一个组成部分...典型的设备驱动程序将执行以下几个操作:识别设备、初始化设备、处理来自设备的中断、处理写入/读取/配置设备的请求等。当然,现代CPU倾向于提供保护功能,并且不允许任意进程访问设备。因此,设备驱动程序将在高特权级下运行,通常作为操作系统内核的一部分,或者在用户空间设备驱动程序的情况下,它将使用内核提供的一些明确定义的接口。