вы определенно хотите иметь какой-нибудь способ восстановить установку fubar kext: загрузочный внешний диск или что-то, с чего вы можете быстро восстановить - это главная причина, по которой Apple предупреждает о запуске in-development-kernel-extensions на вашем компьютере машина.
Николас прав, что для отладки с использованием gdb (единственный путь в пространстве ядра) вам нужны две машины. Я никогда не пытался использовать виртуальную машину, как подсказывает Кокси: но я думаю, что это выполнимо (при условии, что вы запускаете свой kext на виртуальной машине и используете реальную хост-машину для запуска gdb).
Мой предпочтительный метод для трассировки и отладки в ядре - kprintf (), перенаправленный на firewire (он же firewire kprintf (man fwkpfv)). для этого вам понадобятся две машины с портами FireWire.
наконец, будучи старым компьютерным музыкантом, я удивляюсь, почему вы хотите программировать MIDI-синтезатор (или преобразователь) на уровне сетевого стека. Я предполагаю, что у вас будет гораздо более приятный опыт работы в пользовательском пространстве (где вы можете использовать математику с плавающей запятой ...)
если вам нужны какие-то советы или подсказки, не стесняйтесь связаться ...
| K <</p>
из Руководство по программированию ядра АЦП
Программирование ядра - это черное искусство, которое
следует избегать, если это вообще возможно.
К счастью, программирование ядра
обычно ненужный. Ты можешь написать
большинство программного обеспечения полностью в пространстве пользователя.
Даже большинство драйверов устройств (FireWire и
USB, например) можно записать как
приложения, а не как ядро
код. Несколько драйверов низкого уровня должны быть
резидент в адресе ядра
пространство, однако, и этот документ
может быть незначительно полезным, если вы
написание драйверов, которые попадают в это
категория.