Linux Kernel Development 2nd Edition

Submitted by kernel-labs on Sun, 2005-12-18 11:48.
Title:

Linux Kernel Development Second Edition

Author:

Robert Love

Publisher:

Novell Press/Pearson Education

ISBN:

0-672-32720-1

Pages:

401

Price:

34 euros aproximadamente

Rating:

10

Synopsis:

Introducción al desarrollo del kernel Linux. Se revisa conceptualmente los subsistemas principales del kernel en su serie 2.6.

Table of contents:
  1. Introduction to the Linux Kernel - Repaso de lo que es el kernel, la historia de los kernel Unix y como el kernel Linux llegó.
  2. Getting Started with the Kernel - Muestra como obtener el código fuente del kernel, como construirlo y como la programación del kernel es diferente de la programación en C tradicional.
  3. Process Management - Discute las ideas de procesos y threads, mostrando cómo se implementan en el kernel Linux.
  4. Process Scheduling - Enseña los principios del manejo de procesos y sus prioridades. Muestra cómo es implementado el planificador de procesos en Linux.
  5. System Calls - Cuenta qué son las llamadas al sistema, cómo se usan, cuándo se debería de crear una nueva y cómo crearlas.
  6. Interrupts and Interrupt Handlers - Discute qué son las interrupciones, cómo el kernel las trata y cómo escribir un manejador de interrupciones. Este capítulo cubre cómo escribir un manejador "top half".
  7. Bottom Halves and Deferring Work - Continúa la discusión sobre las interrupciones, pero esta vez explicando como escribir un manejador "bottom half", softirqs, tasklets, y "work queues".
  8. Kernel Synchronization Introduction - Muestra la importancia de proteger los datos del kernel cuando varias tareas se están ejecutando. Introduce las regiones críticas, las condiciones de carrear, los bloqueos y los "deadlocks" (abrazos de la muerte).
  9. Kernel Synchronization Methods - Enseña los distintos métodos de asegurar la sincronización dentro del kernel (operaciones atómicas, spin locks, semáforos).
  10. Timers and Time Management - Repaso del manejo del tiempo en computación y cómo lo interpreta el kernel. Describe el manejador de interrupciones del timer, el RTC, etc.
  11. Memory Management - Repaso de cómo es tratada la memoria por el kernel.
  12. The Virtual Filesystem - Describe la abstranción principal de los sistemas de ficheros en Linux.
  13. The Block I/O Layer - Muestra cómo los dispositvos de bloques son creados y usados por el kernel, incluyendo las colas de peticiones de entrada/salida, los planificadores de entrada/salida.
  14. The Process Address Space - Describe las esctructuras que maneja el kernel para hacer disponible la memoria del sistema a los procesos de usuario.
  15. The Page Cache and Page Writeback - Descripción del método de cachés que el kernel emplea para la reducción de las operaciones de entrada/salida al disco.
  16. Modules - El código del kernel puede ser expandido en tiempo de ejecución mediante el uso de módulos. Este capitulo los describe.
  17. kobjects and sysfs - Describe el modelo de dispositivos kobjects y cómo se relaciona con el sysfs.
  18. Debugging - Trucos para la depuración del kernel incluyendo trazas, depuradores y teclas SysRq, entre otros.
  19. Portability - Repaso de los intentos de cómo hacer el kernel Linux portable y cómo el kernel se desenvuelve ante los obstáculos relacionados.
  20. Patches, Hacking, and the Community - Una invitación para unirse a la comunidad del kernel. Cuenta cómo involucrarse, enviar bugs y que estilo de codificación usar.
  21. Appendix A: Linked Lists - Introducción a las listas enlazadas disponibles para su uso en el kernel.nel Random Number Generator - Introducción al generador de números aleatorios del kernel.
  22. Appendix C: Algorithmic Complexity - Discute el concepto de la complejidad y eficiencia de los algoritmos, y la importancia de mantenrlo en mente cuando se codifica el kernel.
Review:

Considerado por el equipo de Kernel-Labs como el mejor libro de introducción a la programación del kernel Linux. También es recomendado, con frecuencia, por integrantes de la lista de desarrollo del kernel (LKML).

Robert Love, expone con una claridad absoluta los conceptos fundamentales para el entendimiento de kernel como un conjunto. Ningún otro libro en el mercado consigue dar claridad a dichos conceptos, en esencia tan complejos.

El propio autor anima al lector a aventurarse en el código del kernel siguiendo su texto como guía. La sencillez con la que aborda los temas, invitan a dar el difícil paso de la codificación del kernel. Ya en los capítulos iniciales, el lector sentirá la necesidad de probar en la práctica las teorías que está asimilando.