Desarrollo del controlador de Mac
Pregunta
Estoy pensando en migrar un controlador de Windows a OS X. Ahora estoy empezando a mirar alrededor para ver qué hay disponible y hay mucho sobre el objetivo C y el cacao. Parece que el lenguaje y el marco del cacao son API de alto nivel, ¿tengo razón al suponer que?
Tengo habilidades sólidas de C ++ y las uso para el desarrollo del kernel, ¿puedo usar las mismas habilidades para el desarrollo del controlador de Mac? (Me imagino que la respuesta es sí). ¿Tiene Macintosh algún tipo de entorno de aplicación / desarrollo para compilar controladores?
Solución
El Hardware de Apple & amp; La página de controladores tiene mucha información sobre el desarrollo de controladores de Mac. Debería ser suficiente para que comiences. Algunos de los aspectos más destacados:
-
Getting Started : una ruta de aprendizaje guiada para desarrolladores de hardware y controladores nuevos para Mac OS X.
-
Frameworks - Referencias API organizadas por framework.
-
Código de muestra USB - Recursos para desarrollar dispositivos USB y software para acceder a ellos.
-
Código de muestra FireWire - Recursos para desarrollar dispositivos FireWire y software para acceder a ellos.
Otros consejos
Comience aquí http://developer.apple.com /documentation/Darwin/Conceptual/KernelProgramming/About/About.html
El desarrollo de Mac generalmente se realiza utilizando Xcode, ya que maneja varios conceptos específicos de Mac como paquetes y marcos. Lo más probable es que esté trabajando en estado puro C. No usará Cocoa para el desarrollo de controladores, ya que es un marco orientado a la aplicación.
Primero, C ++ funciona bien, aunque el Objetivo C no es tan difícil de aprender. Si tiene antecedentes en controladores de Windows, sabe que algunos de los elementos esenciales son críticos: la administración de la memoria, el tiempo es crítico, etc.
Probablemente estés usando el IOKit. Sugiero comenzar aquí para una buena introducción, paso a paso, para que el controlador funcione.
Hay algunas cosas que no parecen funcionar como dicen, y estoy tratando de averiguar si realmente no es posible depurar un controlador en una sola máquina, pero es mejor que la mayoría Documentación de Apple.