我正在考虑将 Windows 驱动程序迁移到 OS X 中。现在我刚刚开始四处查看可用的内容,并且有很多关于目标 C 和可可的内容。似乎语言和可可框架是高级 API,我是否正确假设?
我有很强的 C++ 技能,我将它们用于内核开发,我可以将相同的技能用于 Mac 驱动程序开发(我想答案是肯定的)。Macintosh 是否有任何类型的应用程序/开发环境来构建驱动程序?
Apple Hardware & Drivers 页面包含大量有关 Mac 驱动程序开发的信息。这应该足以让你开始。一些亮点:
Getting Started - 为刚接触 Mac OS X 的硬件和驱动程序开发人员提供的指导学习路径。
框架- 由框架组织的 API 参考。
USB 示例代码- 用于开发 USB 设备和软件以访问它们的资源。
FireWire 示例代码- 用于开发 FireWire 设备和访问它们的软件的资源。
从这里开始http://developer.apple.com/documentation/Darwin/Conceptual/KernelProgramming/About/About.html
Mac 开发通常使用 Xcode 完成,因为它处理各种 Mac 特定的概念,如包和框架。您很可能使用纯 C 语言工作。您不会使用 Cocoa 进行驱动程序开发,因为它是一个面向应用程序的框架。
首先,C++ 工作得很好,尽管 Objective C 并不是那么难学。如果你有 Windows 驱动程序的背景,你就会知道一些要点——内存管理很重要,时间很重要,等等。
您可能会使用 IOKit。我建议从这里开始,逐步介绍如何让驱动程序工作。
有一些事情似乎不像他们所说的那样工作,我试图弄清楚是否真的不可能在单台机器上调试驱动程序,但它比大多数 Apple 文档要好。
如果您的目标是 Catalina 或更高版本,您还应该考虑DriverKit。