对于这个网站来说,这可能是一个蹩脚的问题,但现在开始吧。
驱动程序可以移植吗?例如,是否可以为mac的键盘背光编写驱动程序,并将其移植到另一个unix系统,例如Solaris?
或者,驱动程序可移植性在术语上是矛盾的吗?
任何涉及这一主题的文章都将不胜感激。
发布于 2011-05-29 04:02:39
设备驱动程序需要服务于两个抽象层,这使得可移植性至少很难:
1)当然,需要为特定设备编写驱动程序。你现在可以理解的假设是,一旦我根据适当的设备规范(数据表,...)实现了一个驱动程序,为什么它不应该在需要访问该设备的每台计算机上运行。
进入点
2)驱动程序是为适应特定操作系统而编写的。每个操作系统都有自己的方法
a)访问设备,例如,用于读/写I/O端口的函数可以被不同地调用或具有不同的签名。此外,驱动程序的最终目标是使用户可以通过文件系统接口、网络套接字或X输入协议访问设备。出于这些目的,每个操作系统都有自己的一组抽象,驱动程序需要适应这些抽象。
这就是为什么移植驱动程序有点难的原因。然而,有一些方法试图实现这一点,大多数时候是通过用胶水代码包装原始驱动程序,将预期的驱动程序/操作系统接口转换为目标接口。
、Genode、L4Re
发布于 2016-05-23 22:26:32
是的,他们是可以的。假设驱动程序是为设备规范编写的,唯一阻止驱动程序可移植性的是底层操作系统,因为不同的操作系统具有不同的体系结构和不同的控件来调用和加载设备驱动程序。但是已经有一些已知的实现,其中底层OS可以被抽象并且可以提供统一的平台。这可能会导致驱动程序的可移植性。
https://stackoverflow.com/questions/6163972
复制相似问题