Como se desarrollan los Drivers en C++?
Enviado por pipiluis • 20 de Octubre de 2013 • 613 Palabras (3 Páginas) • 427 Visitas
Como se desarrollan los Drivers en C++?
R/
Encontrar información sobre el desarrollo de drivers no siempre es tarea fácil, sin importar el sistema operativo del cual estemos hablando.
Normalmente, lo ideal para entender este tipo de temas correctamente es leer libros especializados en el tema o ir directamente a las fuentes. Suele ser lo correcto ya que el tema es complejo, largo y puede volverse pesado para quien se apure en entender todos los conceptos implicados. Por ahora solo será una breve explicación y/o introducción.
1. Primero Conocer las Herramientas
Para programar drivers no se usa el compilador del Dev ni del MVC++ ni de ningún otro, se utiliza el DDK (Driver Development Kit), aunque se pueden configurar tanto el MVC++ como el Dev para usar el compilador del DDK.
2. Conocer los conceptos de Modo usuario y Modo Kernel
¿Que será Modo Kernel?
R/ En el modo Kernel, el código que se ejecuta tiene acceso completo y sin restricciones al hardware subyacente. Puede ejecutar cualquier instrucción de la CPU y la referencia a cualquier dirección de memoria. Modo de núcleo es generalmente reservado para las funciones de bajo nivel, de mayor confianza del sistema operativo. Los accidentes en el modo kernel son catastróficos; que detendrán todo el PC.
¿Que será Modo Usuario?
R/En el modo de usuario, el código que se ejecuta no tiene posibilidad de acceder directamente al hardware o la memoria de referencia. Código que se ejecuta en modo de usuario debe delegar en las API del sistema para acceder al hardware o la memoria. Debido a la protección que ofrece este tipo de aislamiento, los cambios que produce pueden ser recuperables. La mayor parte del código que se ejecuta en su computadora se ejecuta en modo de usuario.
Cabe mencionar que hay que cambiar la mentalidad de "Compilar y probar" que todos solemos adquirir mientras aprendemos a programar en modo usuario.
En el mundo de los drivers la situación cambia y lo hace en forma drástica. No compilar y probar el código de un driver al menos que se entienda a ciencia cierta qué es lo que realiza, y más aún si antes de compilarlo se va a modificar secciones del código.
De un ejemplo de cómo construir un driver de cualquier tipo. Fundamente con código fuente.
La construcción de un driver comienza con:
1. Instalar el DDK, una vez hecho esto, ir a Inicio / Todos los programas y buscar el DDK que se instaló, una vez hay ir a Build Environments, una vez allí hay varios para seleccionar cual sea de la preferencia, recomendado usar usar Win XP Free Build Environment (Se puede mover al escritorio ya que se va a usar siempre para compilar. Para compilar, lo que se tiene que hacer es crear una carpeta y dentro meter el codigo (main.c, por ejemplo) y un archivo SOURCES y un MAKEFILE.
...