我有点困惑驱动程序来自哪里或者是为主板外设开发的? Ex、USB、声音或以太网控制器?
基本上根据我的理解,x86/64 程序员参考手册没有详细介绍这些内容。
驱动程序开发人员如何知道如何在寄存器级别与设备进行交互?
答案1
所有驱动程序都是根据数据表开发的。每当公司制造设备时,它都会生成有关接线和编程细节的完整文档,除非该设备被宣布完全符合某些已经建立的标准。
参见示例适用于许多主板的 Intel ICH10 组件的文档。
该文档不一定免费提供。
有时根本不可用。 (参见 Nvidia(以及 Linus 著名的咆哮)或 ATI(参见 Stallman 著名的演示))当制造商声称提供文档会泄露他们的制造秘密时。
在这种特殊情况下,制造商通常仅以封闭二进制形式生产专用操作系统的驱动程序。
除了尝试对代码进行逆向工程之外,其他开发人员别无选择。
答案2
主板本身不需要任何驱动程序,因为它基本上包含标准组件,如 CPU、RAM、PCI-E 插槽、板载设备等,并且它们都使用标准协议进行通信,这些标准协议在启动时初始化并由内核通过CPU。
所有这些组件都在主板制造商之间共享,它们都是相当标准的,并且在大多数情况下都有数据表,可以与它们“交谈”,即通过驱动程序与它们一起工作。有些设备的文档记录很少或没有数据表,这就是Linux 难以支持它们的原因,例如Linux 几乎不支持或不支持许多硬件监控芯片。
当您在Windows中安装“主板驱动程序”时,您没有安装“主板”驱动程序,而是安装了以下驱动程序个人主板包含的设备。
答案3
- 在 GNU/Linux 主板中没有驱动程序,您不需要它。
- 为键盘、鼠标等设备开发的驱动程序,就像你所说的,所以是的