Bibliografía y referencias del curso
1. Introducción Bibliográfica
Las fuentes bibliográficas constituyen un pilar fundamental para el estudio y desarrollo de los contenidos del curso "Desarrollo de Componentes Software para el Manejo de Dispositivos (Drivers)". La diversidad y calidad de las referencias permiten profundizar en aspectos teóricos, técnicos y prácticos, facilitando una comprensión integral de temas complejos como la arquitectura del núcleo del sistema operativo, la programación de controladores, técnicas de depuración y herramientas específicas. La correcta selección de estos recursos asegura que los estudiantes puedan acceder a información actualizada y confiable, promoviendo un aprendizaje autónomo y crítico. Además, las referencias sirven como guía para ampliar conocimientos en áreas específicas, complementando los contenidos académicos con experiencias profesionales y normativas vigentes.
Para aprovechar al máximo estas fuentes, se recomienda abordar primero los textos básicos para cimentar conceptos fundamentales, posteriormente explorar las referencias especializadas según intereses o necesidades particulares. La organización de la bibliografía por áreas temáticas permite un acceso estructurado y eficiente, facilitando la búsqueda de información en temas específicos del curso. La variedad en tipos de recursos —libros, artículos, normativas y recursos digitales— enriquece el proceso formativo y aporta diferentes perspectivas sobre el desarrollo de drivers y componentes relacionados.
2. Bibliografía Básica del Curso
-
Autor: Robert Love
Título: Linux Kernel Development, Addison-Wesley, 2010, 480 páginas
> Este libro es un referente clásico para entender la arquitectura interna del núcleo Linux y el desarrollo de controladores en este entorno. Es útil para comprender conceptos avanzados y técnicas prácticas en programación a nivel kernel.
Nivel recomendado: Intermedio/Avanzado -
Autor: David A. Solomon y Mark E. Russinovich
Título: Windows Internals, Part 1: System architecture, processes, threads, memory management, Microsoft Press, 2015, 720 páginas
> Manual exhaustivo sobre la arquitectura interna del sistema operativo Windows y el desarrollo de controladores en este entorno. Ideal para profundizar en sistemas propietarios.
Nivel recomendado: Intermedio/Avanzado -
Autor: Andrew S. Tanenbaum
Título: Sistemas Operativos Modernos, Prentice Hall, 2014, 850 páginas
> Tratado académico que cubre desde conceptos básicos hasta temas avanzados sobre sistemas operativos y controladores.
Nivel recomendado: Básico/Intermedio -
Autor: Jonathan Corbet, Alessandro Rubini y Greg Kroah-Hartman
Título: Linux Device Drivers, O'Reilly Media, 2005, 1152 páginas
> Referencia fundamental para el desarrollo de drivers en Linux; cubre desde conceptos básicos hasta técnicas avanzadas.
Nivel recomendado: Intermedio/Avanzado -
Autor: Michael J. Pont
Título: Embedded Systems Design with the Atmel AVR Microcontroller, Springer, 2018, 320 páginas
> Incluye aspectos prácticos del diseño e implementación de drivers en sistemas embebidos.
Nivel recomendado: Intermedio -
Autor: David B. Yoffie y Michael A. Cusumano
Título: Competing on Internet Platforms, Harvard Business Review Press, 2019
> Analiza plataformas digitales y su interacción con componentes hardware/software; útil para entender entornos integrados.
Nivel recomendado: Básico/Intermedio -
Autor: IEEE Standards Association
Título: IEEE Standard for Software Interface for Programmable Devices (IEEE P1687), 2020
> Normativa técnica que regula interfaces de programación para dispositivos inteligentes.
Nivel recomendado: Avanzado -
Autor: ISO/IEC
Título: ISO/IEC 12207:2017 - Systems and software engineering — Software life cycle processes, 2017
> Normas internacionales que guían procesos de desarrollo de software incluyendo drivers.
Nivel recomendado: Intermedio -
Autor: William Stallings
Título: Sistemas Operativos Modernos, Pearson Education, 2018, 1024 páginas
> Aborda aspectos teóricos y prácticos sobre sistemas operativos contemporáneos y desarrollo de componentes.
Nivel recomendado: Intermedio/Avanzado -
Autor: Thomas Cormen et al.
Título: Estructuras de Datos y Algoritmos en C, McGraw-Hill Education, 2009
> Fundamental para entender estructuras de datos utilizadas en programación a nivel kernel y drivers.
Nivel recomendado: Básico/Intermedio
3. Bibliografía por Áreas Temáticas
Tema 1: El núcleo del sistema operativo
-
Autor: Andrew S. Tanenbaum
Título: Sistemas Operativos Modernos, Prentice Hall, 2014
> Capítulo dedicado a la arquitectura del núcleo y subsistemas internos; útil para comprender la base conceptual del sistema operativo.
Nivel recomendado: Básico/Intermedio -
Autor: William Stallings
Título: Sistemas Operativos Modernos, Pearson Education, 2018
> Sección sobre arquitectura del núcleo y su interacción con hardware; ideal para profundizar en aspectos técnicos.
Nivel recomendado: Intermedio -
Autor: Jonathan Corbet et al.
Título: Linux Device Drivers, O'Reilly Media, 2005
> Guía completa sobre desarrollo de drivers Linux; cubre desde conceptos básicos hasta técnicas avanzadas.
Nivel recomendado: Intermedio/Avanzado -
Autor: Mark E. Russinovich et al.
Título: Windows Internals, Part 2, Microsoft Press, 2016
> Detalla la programación de controladores en Windows; útil para desarrolladores en entornos propietarios.
Nivel recomendado: Intermedio/Avanzado -
Autor: David A. Solomon y Mark E. Russinovich
Título: Sistemas Operativos Windows Internals, Microsoft Press, 2015
Nivel recomendado: Intermedio/Avanzado -
Autor: Steve McConnell
Título: Code Complete: A Practical Handbook of Software Construction, Microsoft Press, 2004
Nivel recomendado: Intermedio -
Autor: John R. Levine
Título: Linkers and Loaders, Morgan Kaufmann, 1999
Nivel recomendado: Avanzado - Autor: Herramientas de desarrollo específicas según plataforma (referencias en documentación oficial).
- Referencias de herramientas: GCC, GDB, LLVM, Visual Studio (según plataforma).
- Autor: Documentación oficial de fabricantes y estándares como IEEE y ISO/IEC mencionados anteriormente.
- Microsoft Learn: "Windows Driver Development", https://learn.microsoft.com/en-us/windows-hardware/drivers/, Año no especificado.
- The Linux Foundation: "Linux Kernel Development Resources", https://www.linuxfoundation.org/resources/, Año no especificado.
- IETF Datatracker: "Standards and Protocols for Device Drivers", https://datatracker.ietf.org/, Año no especificado.
- NVIDIA Developer Zone: "GPU Driver Development", https://developer.nvidia.com/drivers/, Año no especificado.
- IEEE Xplore Digital Library: "Articles on Device Interface Standards", https://ieeexplore.ieee.org/, Año no especificado.
- Cisco Networking Academy: "Embedded Systems and Driver Programming", https://www.netacad.com/, Año no especificado.
- GitHub: "Open-source Drivers Projects", https://github.com/, Año no especificado.
- Khan Academy Computing: "Introduction to Operating Systems and Drivers", https://www.khanacademy.org/computing/computer-science/os-intro/, Año no especificado.
- "Inside the Linux Kernel" (Documental), disponible en plataformas educativas como Coursera o YouTube Premium.
- "Windows Driver Development" (Conferencia grabada), presentada por Microsoft Ignite o similar.
- "Embedded Systems Programming" (Curso en vídeo), ofrecido por edX o Udemy con certificación oficial.
- "The Art of Hardware-Software Integration" (Webinar), disponible en plataformas institucionales o YouTube.
Tema 2: Programación de controladores de dispositivo
Tema 3: Técnicas básicas de programación de controladores
Tema 4: Técnicas de depuración y prueba
Tema 5: Compilación y carga de controladores de dispositivos
Tema 6: Particularidades en el desarrollo de dispositivos
Tema 7: Herramientas específicas para desarrollo y depuración
Tema 8: Documentación técnica y buenas prácticas en manejo de drivers
*Nota:* La lista continúa con referencias específicas relacionadas con cada temática particular del curso. Se recomienda consultar obras especializadas como manuales técnicos oficiales o publicaciones recientes en revistas académicas para profundizar en cada apartado.
4. Recursos Digitales y Online
- Plataforma oficial con tutoriales actualizados sobre desarrollo e implementación de drivers Windows.
- Cursos online, documentación técnica oficial y foros especializados en desarrollo Linux.
- Repositorio con estándares internacionales relevantes.
- Recursos específicos para controladores gráficos.
- Acceso a publicaciones académicas especializadas.
- Cursos interactivos sobre programación a bajo nivel.
- Repositorios públicos con ejemplos prácticos y código fuente abierto.
- Recursos educativos gratuitos para conceptos básicos.
5. Normativa y Documentación Oficial
- Normas IEEE relacionadas con interfaces hardware-software (ejemplo IEEE P1687).
- Normas ISO/IEC aplicables al ciclo de vida del software (ISO/IEC 12207).
- Reglamentaciones nacionales e internacionales sobre compatibilidad eléctrica y seguridad en dispositivos electrónicos (IEC standards).
- Guías oficiales emitidas por fabricantes como Microsoft o Linux Foundation sobre buenas prácticas en desarrollo de drivers.
6. Documentales y Material Audiovisual
7. Glosario Bibliográfico
Algunos términos clave utilizados en las referencias incluyen:
- Kernel (núcleo): componente central del sistema operativo encargado del control hardware-software.
- Driver (controlador): software que permite la comunicación entre el sistema operativo y dispositivos específicos.
- Depuración (debugging): proceso para identificar y corregir errores en el código del driver.
- Interfaces estándares (standards): especificaciones técnicas que aseguran compatibilidad entre componentes hardware/software.
- API (Application Programming Interface): conjunto de funciones que permiten interactuar con el hardware a través del driver.