
Mastering Embedded Linux Programming
Chris Simmonds
- Editorial
- Packt
- Año
- 2015
- Páginas
- ~418
- Nivel
- Avanzado
De qué trata
Guía especializada de Chris Simmonds orientada a dominar el diseño, construcción y depuración de sistemas operativos Linux integrados en dispositivos de hardware dedicado. La obra se apoya en el kernel Linux (series 3.x y 4.x), el gestor de arranque U-Boot y herramientas industriales para la placa de desarrollo BeagleBone Black y el emulador QEMU. Está dirigida a desarrolladores de software de sistemas, ingenieros de firmware y programadores C/C++ de nivel intermedio a avanzado que ya conocen Linux como usuarios y buscan dar el salto al desarrollo a bajo nivel.
El libro cubre meticulosamente los cuatro pilares del Linux embebido: cadenas de compilación cruzada (toolchains) generadas con crosstool-NG (comparando glibc, uClibc y musl), el bootloader U-Boot (compilación, scripts de arranque y carga en memoria flash), la configuración y compilación del kernel Linux junto con la adaptación de Device Trees (DTS/DTB), y la creación de sistemas de ficheros raíz reducidos con BusyBox. Asimismo, profundiza en la automatización de imágenes completas mediante Buildroot y Yocto Project (Poky y BitBake), el manejo de almacenamiento flash con el subsistema MTD y sistemas de ficheros JFFS2/UBIFS, la escritura de controladores de dispositivo básicos (device drivers), la programación concurrente con hilos POSIX (pthreads), la depuración remota con GDB y gdbserver, el perfilado de rendimiento con perf y ftrace, y la implementación de sistemas de tiempo real con el parche PREEMPT_RT.
La parte práctica guía la creación desde cero de una plataforma embebida completa y funcional tanto en hardware real (BeagleBone Black) como en simulación con QEMU, culminando con el desarrollo de módulos del kernel y aplicaciones de baja latencia. El libro es una referencia canónica del sector que aporta una visión integral de la arquitectura del sistema, explicando qué ocurre desde que se enciende el procesador hasta que el espacio de usuario responde en tiempo real. Exige conocimientos sólidos de arquitectura de computadores y lenguaje C, dejando fuera el desarrollo de interfaces gráficas pesadas para centrarse puramente en la ingeniería de sistemas base.
- Linux embebido
- Kernel Linux
- U-Boot
- Device Tree
- crosstool-NG
- BusyBox
- Buildroot
- Yocto Project
- Device Drivers
- POSIX Threads
- GDB
- PREEMPT_RT
¿Cómo enseña?
Teoría + práctica
- ✗ Sin ejercicios
- ✓ Incluye proyectos
Proyectos
Plataforma Linux embebida para BeagleBone Black y QEMU
Construcción integral de un sistema Linux embebido funcional desde cero, incluyendo la cadena de compilación cruzada con crosstool-NG, el bootloader U-Boot, el kernel con Device Tree y el sistema de archivos raíz mediante BusyBox, Buildroot y Yocto Project.
Controlador de dispositivo y aplicación en tiempo real
Desarrollo de un módulo de kernel básico para interactuar con hardware y una aplicación multihilo con POSIX threads sobre un kernel con el parche PREEMPT_RT para evaluar latencias.

