当我们将设备插入计算机时会发生什么

当我们将设备插入计算机时会发生什么

我目前正在学习Linux的设备开发,我浏览了一些书籍,例如LLD3,..但我仍然无法理解当我们将设备插入计算机时会发生什么,这就是我的想象:当我们将设备插入计算机时会发生什么一个端口,以一种神奇的方式,Linux内核将知道什么设备类型并调用适当模块的探测函数来确定它是否正是哪个模块需要的设备,接下来是神奇的......任何人都可以纠正这个吗?

答案1

这并不是真正的魔法,而是硬件。有关外设事件的信息通过前端总线到达 CPU,前端总线是通往其他硬件的网关;以编程方式(在内核代码中),这些是通过中断请求(中断请求)。

按顺序看一下这些:

http://en.wikipedia.org/wiki/Northbridge_%28computing%29

http://en.wikipedia.org/wiki/Front_side_bus

现在考虑内核决定 CPU 中发生的事情。下一个:

http://en.wikipedia.org/wiki/中断

http://en.wikipedia.org/wiki/IRQ

为了获得更具体的 Linux 内核代码 WRT,它使用在收到中断请求时触发的处理程序。其基本部分是通过特定于体系结构的 asm 代码完成的,其中很多代码您可以在(例如)中找到src/arch/x86/kernel。我不使用asm(文件.S)进行编码,所以不幸的是,这对我来说是希腊语,但这里的想法(应该在维基百科的内容中)是在收到IRQ后,内核会抢占任何用户空间代码运行以处理 IRQ(可能将某些内容传递给任何用户空间进程)。

相关内容