首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >驱动程序可移植性

驱动程序可移植性
EN

Stack Overflow用户
提问于 2011-05-29 03:45:37
回答 2查看 155关注 0票数 2

对于这个网站来说,这可能是一个蹩脚的问题,但现在开始吧。

驱动程序可以移植吗?例如,是否可以为mac的键盘背光编写驱动程序,并将其移植到另一个unix系统,例如Solaris?

或者,驱动程序可移植性在术语上是矛盾的吗?

任何涉及这一主题的文章都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-29 04:02:39

设备驱动程序需要服务于两个抽象层,这使得可移植性至少很难:

1)当然,需要为特定设备编写驱动程序。你现在可以理解的假设是,一旦我根据适当的设备规范(数据表,...)实现了一个驱动程序,为什么它不应该在需要访问该设备的每台计算机上运行。

进入点

2)驱动程序是为适应特定操作系统而编写的。每个操作系统都有自己的方法

a)访问设备,例如,用于读/写I/O端口的函数可以被不同地调用或具有不同的签名。此外,驱动程序的最终目标是使用户可以通过文件系统接口、网络套接字或X输入协议访问设备。出于这些目的,每个操作系统都有自己的一组抽象,驱动程序需要适应这些抽象。

这就是为什么移植驱动程序有点难的原因。然而,有一些方法试图实现这一点,大多数时候是通过用胶水代码包装原始驱动程序,将预期的驱动程序/操作系统接口转换为目标接口。

  • NDISWrapper是一个允许在Linux上运行Windows驱动程序的库,
  • 一些卡尔斯鲁厄的人建议使用device-driver virtual machines
  • 我知道的几个操作系统框架在他们的环境中使用设备驱动程序包装库来运行Linux/
  • 设备驱动程序。请参见Minix3.

GenodeL4Re

票数 4
EN

Stack Overflow用户

发布于 2016-05-23 22:26:32

是的,他们是可以的。假设驱动程序是为设备规范编写的,唯一阻止驱动程序可移植性的是底层操作系统,因为不同的操作系统具有不同的体系结构和不同的控件来调用和加载设备驱动程序。但是已经有一些已知的实现,其中底层OS可以被抽象并且可以提供统一的平台。这可能会导致驱动程序的可移植性。

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

https://stackoverflow.com/questions/6163972

复制
相关文章

相似问题

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