首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于设备驱动程序的一个问题&内核

关于设备驱动程序的一个问题&内核
EN

Stack Overflow用户
提问于 2011-05-01 15:10:47
回答 1查看 635关注 0票数 0

目前,我的操作系统从软盘启动。由于软盘驱动是过时的,我计划改变引导媒体。

当我试图找出使用什么引导媒体时,我意识到无论我选择什么,我都需要为它编写设备驱动程序。虽然真正的模式BIOS可能会为我提供一些中断来与该设备交互,但一旦进入受保护模式,我将独自一人。因此,我开始阅读< Linux设备驱动程序第三版>以获得一些指导。但这本书是关于为Linux 编写设备驱动程序的。因此,这意味着设备驱动程序是特定于操作系统的。

现在我有了以下问题:

设备驱动程序在哪些方面依赖于操作系统?操作系统和设备驱动程序在内存中的布局如何?操作系统和设备驱动程序如何相互交互?如果我在设备中进行热插拔,操作系统如何知道在哪里找到合适的设备驱动程序?f 211

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-01 15:30:25

设备驱动程序是一段实现设备与操作系统内核之间接口的代码。在这方面,它必须依赖于它所针对的操作系统--这是核心目的,使该操作系统了解设备并允许它使用其功能。

这并不是说设备驱动程序的代码不能在不同的OSes上共享。其中的某些部分可以是可移植的(设备端),但是接口端(与OS交互)依赖于OS定义/提供的API。

内存中的布局完全依赖于系统。不需要为驱动程序和其他内核服务制定任何特定的内存布局策略。设备本身很可能会施加内存布局限制,但这是另一个主题。

操作系统定义了它如何通过API与设备驱动程序交互。您已经在那本(很棒)的书中获得了Linux如何做到这一点的文档。其他OSes也可以采用不同的方式--操作系统设计人员设置规则。如果您是创建内核的人,则需要定义API。

热插拔不容易.进行映射的一种方法是使用某种形式的查找表,其中包含来自设备的信息作为“键”,合适的设备驱动程序结构/指针/任何作为值的或相反的方式(在驱动程序中有一个API,让您知道可以处理的设备in )。设备ID可以是PCI设备ID、USB标识符、.取决于总线和设备的类型。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5849207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档