一个非常基本的问题。我了解到设备驱动程序和中断服务程序只是一些程序或代码。只要有需要,他们就可以执行。 执行意味着CPU正在执行其指令集ISA之外的一些指令。那么它是否意味着设备驱动程序和ISR也是生成所需结果的机器指令?
究竟这些程序究竟是由设备驱动程序和中断例程组成的?这样的程序是否也有数据段,代码段和堆栈段?
我正在学习x86汇编语言和C。
答案 0 :(得分:3)
这是一个准确的评估。足够复杂的设备驱动程序具有数据段,代码段和堆栈段。
答案 1 :(得分:3)
考虑如何从设备获取数据。有两种方法:
根据您的操作系统(或无操作系统,只是裸机),设备驱动程序可以是程序,也可以是操作系统内核的组成部分,...
典型的设备驱动程序将执行以下操作:识别设备,初始化设备,处理设备中断,处理写入/读取/配置设备的请求,...
当然,现代CPU倾向于提供保护功能,并且不允许任意进程访问设备。因此,设备驱动程序将以高权限级别运行,通常作为操作系统内核的一部分运行,或者如果用户空间设备驱动程序,它将使用内核提供的一些定义良好的接口。