Question

Je construis un pilote CFPlugin IOKit pour OS X. Je vais travailler avec les données du réseau entrant qui sera traduit aux données MIDI. Aucun matériel est impliqué autre que l'aéroport intégré. J'ai l'expérience avec les pilotes sur les machines Windows et firmware mais cela est mon premier plongeon en faire sur le Mac. Jusqu'à présent, les choses vont assez bien, mais la documentation Apple sez: «Pour des raisons de sécurité, vous ne devriez pas charger votre pilote sur votre machine de développement »

Je n'ai qu'un Mac. Je ne veux vraiment pas deux MACS désolé, Apple. Dois-je prendre cet avertissement au sérieux? Y at-il des choses que je dois savoir?

Merci, Tom Jeffries

Était-ce utile?

La solution

Vous pouvez également envisager sous OS X dans une machine virtuelle comme banc d'essai. Il serait certainement beaucoup plus pratique que d'avoir un volume de démarrage séparé.

Autres conseils

L'avertissement est plutôt mal formulée; ce que vous devriez envisager de le faire est d'utiliser un volume de démarrage séparé (partition) pour essayer votre pilote, car il est possible de tuyau arbitrairement votre système avec votre pilote. Si vous faites le développement du noyau sur tout système d'exploitation est pas isolé de votre système principal (via une machine virtuelle, disque d'initialisation de remplacement, etc.), vous êtes crazy

Ce qui peut être un problème plus important est que vous ne pouvez pas faire de débogage du noyau, car la seule option pour est d'utiliser GDB sur un système OS X à distance. Pour cela, vous pouvez envisager exécutant OS X dans la virtualisation .

vous voulez absolument avoir un moyen de récupérer une installation kext de fubar: un disque dur externe bootable ou quelque chose que vous pouvez restaurer rapidement de-- c'est la principale raison de l'avertissement d'Apple contre le fonctionnement en développement-kernel-extensions sur votre production machine.

Nicholas est juste que pour le débogage en utilisant gdb (la seule façon dans l'espace du noyau) vous avez besoin de deux machines. Je ne l'ai jamais essayé d'utiliser une machine virtuelle comme Coxy suggère: mais je suppose qu'il est possible (en supposant que vous exécutez votre kext sur la machine virtuelle et utiliser la machine hôte réel pour exécuter gdb).

Mon méthode préférée pour le traçage et le débogage dans le noyau est kprintf () dirigé vers firewire (alias firewire kprintf (homme fwkpfv)). Pour cela, vous avez besoin de deux machines avec ports firewire.

enfin, être un vieil ordinateur me musicien, je me demande pourquoi vous voulez programmer un synthétiseur MIDI (ou transformateur) au niveau de la pile réseau. Je pense que vous auriez un travail d'expérience beaucoup plus gratifiant dans userland (où vous pouvez utiliser les mathématiques à virgule flottante ...)

si vous avez besoin des conseils ou des conseils, ne hésitez pas à nous contacter ...

| K <

de la ADC noyau Guide de programmation

programmation du noyau est un art noir qui doit être évitée si possible. Heureusement, la programmation du noyau est généralement inutile. Tu peux écrire la plupart des logiciels entièrement dans l'espace utilisateur. Même la plupart des pilotes de périphériques (FireWire et USB, par exemple) peut être écrit applications, plutôt que comme noyau code. Quelques pilotes de bas niveau doivent être résident dans l'adresse du noyau l'espace, cependant, et ce document pourrait être légèrement utile si vous êtes les conducteurs d'écriture qui tombent dans cette catégorie.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top