Macos 我需要两台机器来开发IOKit Mac驱动程序吗?

Macos 我需要两台机器来开发IOKit Mac驱动程序吗?,macos,networking,drivers,iokit,Macos,Networking,Drivers,Iokit,我正在为OSX构建一个IOKit CFPlugin驱动程序。我将处理传入的网络数据,这些数据将被转换为MIDI数据。除内置机场外,不涉及任何硬件。我有在Windows机器和固件上使用驱动程序的经验,但这是我第一次在Mac上使用它。到目前为止,事情进展得很顺利,但是苹果公司的文档sez:“出于安全考虑,您不应该在开发机器上加载驱动程序。” 我只有一个苹果。我真的不想要两个苹果-对不起,苹果。我应该认真对待这个警告吗?有什么我需要知道的吗 谢谢,汤姆·杰弗里斯(Tom Jeffries)警告的措辞相

我正在为OSX构建一个IOKit CFPlugin驱动程序。我将处理传入的网络数据,这些数据将被转换为MIDI数据。除内置机场外,不涉及任何硬件。我有在Windows机器和固件上使用驱动程序的经验,但这是我第一次在Mac上使用它。到目前为止,事情进展得很顺利,但是苹果公司的文档sez:“出于安全考虑,您不应该在开发机器上加载驱动程序。”

我只有一个苹果。我真的不想要两个苹果-对不起,苹果。我应该认真对待这个警告吗?有什么我需要知道的吗


谢谢,汤姆·杰弗里斯(Tom Jeffries)

警告的措辞相当拙劣;你应该考虑的是使用一个单独的引导卷(分区)来测试你的驱动程序,因为可以用你的驱动程序任意地对系统进行软管连接。 如果你在没有与主系统隔离(通过虚拟机、备用启动盘等)的任何操作系统上进行内核开发,你就疯了


更大的问题可能是您不能进行任何内核调试,因为唯一的选择是在远程OSX系统上使用GDB。对此,您可能需要考虑。

< P>警告措辞相当不好;你应该考虑的是使用一个单独的引导卷(分区)来测试你的驱动程序,因为可以用你的驱动程序任意地对系统进行软管连接。 如果你在没有与主系统隔离(通过虚拟机、备用启动盘等)的任何操作系统上进行内核开发,你就疯了


更大的问题可能是您不能进行任何内核调试,因为唯一的选择是在远程OSX系统上使用GDB。对此,您可能需要考虑。

您也可以考虑在VM内运行OS X作为测试平台。拥有一个单独的引导卷当然会更方便。

你也可以考虑在VM内运行OS X作为你的测试床。有一个单独的启动卷肯定会方便得多。

你肯定希望有某种方法来恢复fubar kext安装:一个可启动的外部驱动器或一些可以快速恢复的东西——这是苹果警告不要在你的产品上运行开发内核扩展的主要原因机器

Nicholas说得对,为了使用gdb(内核空间中的唯一方法)进行调试,您确实需要两台机器。我从来没有像Coxy建议的那样尝试过使用VM:但我想这是可行的(假设您在虚拟机上运行kext,并使用真正的主机运行gdb)

我在内核中跟踪和调试的首选方法是将kprintf()路由到firewire(也称为firewire kprintf(man-fwkpfv))。为此,您确实需要两台具有firewire端口的机器

最后,作为一个老电脑音乐家,我想知道为什么你想在网络堆栈级别编程一个MIDI合成器(或转换器)。我的猜测是,在userland(您可以使用浮点数学…)工作会有更令人满意的体验

如果您需要一些提示或提示,请随时联系


|K你肯定想找到某种方法来恢复fubar kext安装:一个可启动的外部驱动器或一些你可以快速恢复的东西——这是苹果警告不要在你的生产机器上运行开发内核扩展的主要原因

Nicholas说得对,为了使用gdb(内核空间中的唯一方法)进行调试,您确实需要两台机器。我从来没有像Coxy建议的那样尝试过使用VM:但我想这是可行的(假设您在虚拟机上运行kext,并使用真正的主机运行gdb)

我在内核中跟踪和调试的首选方法是将kprintf()路由到firewire(也称为firewire kprintf(man-fwkpfv))。为此,您确实需要两台具有firewire端口的机器

最后,作为一个老电脑音乐家,我想知道为什么你想在网络堆栈级别编程一个MIDI合成器(或转换器)。我的猜测是,在userland(您可以使用浮点数学…)工作会有更令人满意的体验

如果您需要一些提示或提示,请随时联系


|K汉克斯,这看起来比为另一台Mac推出一台或多台Mac要好得多…谢谢,这看起来比为另一台Mac推出一台或多台Mac要好得多…谢谢你的评论。我使用虚拟机设置了它,但还有很多问题需要解决。本质上,我们使用iPhone通过MIDI数据与Mac上的应用程序进行通信,这就是为什么我们使用网络驱动程序。我想我可以使用蓝牙,但那是禁止的。谢谢你的评论。我使用虚拟机设置了它,但还有很多问题需要解决。本质上,我们使用iPhone通过MIDI数据与Mac上的应用程序进行通信,这就是为什么我们使用网络驱动程序。我原以为我可以使用蓝牙,但事实证明这是禁止的。这就是它现在的设置方式,尽管让它工作起来是另一件令人头疼的事。谢谢你的回答。这就是它现在的设置方式,尽管让它工作起来是另一件让人头疼的事。谢谢你的回答。