我有一个每天使用的 USB 设备,它有 Linux 和 Windows 驱动程序。我想在 Mac OS X 中使用此设备(即不通过 VM)。可以吗?请注意,驱动程序似乎包含源代码。
编辑
自述文件中的系统要求:
- Linux 2.4 或 2.6
- 内核编译的系统设置。
答案1
不。内核接口完全不同。虽然 MacOSX 和 Linux 都是 UNIX 式的(事实上,Mac OS X 是 100% UNIX 认证的),但它们的架构却大不相同。最好的办法是尝试 VMWare,并使用 VMWare 下的 Linux 实例来尝试访问它。
编辑:我刚刚看到您的编辑,说您有源代码并且不想要 VMWare。我仍然会说不。Linux 和 MacOSX 的基础截然不同。除非有人专门为 MacOSX 制作源代码,否则源代码不会“正常工作”。我会检查源代码中的“#ifdef darwin”或类似的东西,它不会工作。您还必须拥有正确的版本 - Apple 在主要版本之间对其内核进行了足够的更改,以至于非常旧的端口可能无法工作。
很多年前,有一个项目致力于实现设备驱动程序跨平台移植。它叫做UDI项目。理论上,内核中有一个设备驱动程序环境。API 在所有操作系统上都是一致的。设备驱动程序在任何地方都兼容源代码,并且在具有相同 ABI(x86、AMD64 等)的机器上兼容二进制(您想要的)。我记得有一个针对 Darwin 的移植版,但我认为它在 MacOSX 上比任何东西都更具理论性。
该环境在技术上是可行的(它实际上作为 UnixWare 的本机设备驱动程序接口提供,旧的 DDI 是 UDI 之上的兼容层),但由于人为/政治原因而失败。上合组织/卡尔德拉因为该项目的主要推动力并没有多大帮助。对于具有良好驱动程序支持的操作系统(例如 Solaris、Windows),拥有这些驱动程序比没有驱动程序的内核更有优势,因此唯一的支持显然来自没有驱动程序且影响力不大的操作系统。Stallman 也不太喜欢它 - 二进制兼容性会使(他认为)不太可能为驱动程序发送源代码。