如何解决有关设备驱动程序和内核的问题
| 目前,我的操作系统是从软盘启动的。由于软盘驱动程序已过时,我打算更改启动媒体。 当我尝试找出要使用的启动媒体时,我意识到无论选择什么,都需要为其编写设备驱动程序。尽管实模式BIOS可能会为我提供一些与该设备进行交互的中断,但是一旦进入保护模式,我就自己一个人。因此,我开始阅读解决方法
设备驱动程序是一段代码,用于实现设备和(通常)操作系统内核之间的接口。在这方面,它必须取决于其目标操作系统-这是核心目的,从而使该操作系统知道该设备并允许其使用其功能。
这并不是说不能在不同的操作系统上共享设备驱动程序的代码。它们的某些部分可能是可移植的(设备端),但接口端(与OS交互)取决于OS定义/提供的API。
内存中的布局完全取决于系统。对于驱动程序和其他内核服务,没有任何特定的内存布局策略。设备本身可能会强加一些内存布局约束,但这是一个不同的主题。
操作系统定义了它如何通过API与设备驱动程序进行交互。在那本(很棒的)书中,您已经找到了有关Linux如何实现的文档。其他OS可能会做不同的事情-OS设计人员设置了规则。如果您是创建内核的人,请定义API。
热插拔并不容易。进行映射的一种方法是使用某种形式的查找表,将来自设备的信息作为\“ key \”,并将合适的设备驱动程序结构/指针/无论是什么作为值,或者另一种方式(在其中包含API您的驱动程序,使您知道可以处理的设备ID。设备ID可以是PCI设备ID,USB标识符……取决于设备的总线和类型。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。