Sviluppo di driver per Mac
Domanda
Sto pensando di migrare un driver di Windows in OS X. Ora sto appena iniziando a guardarmi intorno per vedere cosa è disponibile e c'è molto sull'obiettivo C e sul cacao. Sembra che il linguaggio e il framework del cacao siano API di alto livello, ho ragione a supporre che?
Ho forti competenze in C ++ e le uso per lo sviluppo del kernel, posso usare le stesse abilità per lo sviluppo del driver per Mac (immagino che la risposta sia sì). Macintosh ha qualche tipo di applicazione / ambiente di sviluppo per la costruzione di driver?
Soluzione
Apple Hardware & amp; La pagina dei driver contiene molte informazioni sullo sviluppo dei driver per Mac. Dovrebbe essere abbastanza per iniziare. Alcuni dei punti salienti:
-
Guida introduttiva - Un percorso di apprendimento guidato per sviluppatori di hardware e driver che non conosce Mac OS X.
-
Frameworks - Riferimenti API organizzati per framework.
-
Codice campione USB - Risorse per lo sviluppo di dispositivi e software USB per accedervi.
-
Codice di esempio FireWire - Risorse per lo sviluppo di dispositivi e software FireWire per accedervi.
Altri suggerimenti
Inizia qui http://developer.apple.com /documentation/Darwin/Conceptual/KernelProgramming/About/About.html
Lo sviluppo del Mac viene generalmente eseguito utilizzando Xcode, in quanto gestisce vari concetti specifici per Mac come bundle e framework. Molto probabilmente lavorerai in puro C. Non utilizzerai Cocoa per lo sviluppo dei driver, poiché si tratta di un framework orientato alle applicazioni.
In primo luogo, C ++ funziona bene, anche se l'obiettivo C non è così difficile da imparare. Se hai un background nei driver di Windows conosci alcuni degli elementi essenziali: la gestione della memoria è fondamentale, il tempo è critico, ecc.
Probabilmente utilizzerai IOKit. Suggerisco di iniziare qui per una buona introduzione passo dopo passo per far funzionare il conducente.
Ci sono alcune cose che sembrano non funzionare come dicono, e sto cercando di capire se non è davvero possibile eseguire il debug di un driver su una singola macchina, ma è meglio della maggior parte Documentazione Apple.