Guía para desarrollar en el kernel Linux


Jonathan Corbet escribió una excelente guía introductoria para desarrollar para el kernel de Linux.

Da una repasada general por todo lo que importa al programar algo para el kernel, pero lo más relevante para mi al menos, alguien que seguramente nunca va a programar para ningun kernel, es todo lo que se puede definir como “mejores prácticas”, no hay ninguna ley teórica, todas las reglas son completamente prácticas (obvio ?), y están bien referenciadas a situaciones particulares en las que sería bastante malo no seguirlas, y cuando si pude hacerse una excepción.

No se mucho de grandes proyectos, pero en general el kernel de linux es uno de los proyectos que mas me gusta, porque es muy activo, en general no deja entrar cochinero a su árbol de desarrollo. Prueba de ello es por ejemplo el tiempo que ha tomado para que entren al kernel proyectos como Xen, vserver, etc. que a pesar de ser la moda, y ser muy populares, han sido aceptados por cachitos lentamente, hasta que cada parche esta limpio, y no afecta otras secciones del kernel.

Detallitos como compilar con warnings habilitados en gcc son lo que hacen la diferencia muchas veces, y generan código que no solo funciona, sino que además funciona bien :), además hay varias herramientas, incluido el poder habilitar DEBUG en el kernel para recibir noticias de problemas en el código introducido, así como herramientas para corrupción de la memoria para probar la capacidad del código de recuperarse cuando hay problemas serios.

También habla del proceso que hay que seguir para mandar parches, y como documentarlos, etc, esa parte es muy interesante, al menos desde el punto de vista de un curioso, o alguien que quiera aprender como documentar y mantener proyectos.

Y al final del documento tiene una sección sobre como usar git, el manejador de versiones que se usa actualmente en Linux, y que fue originalmente desarrollado por Linus Torvalds; la historia de porque lo desarrolló, y cuales fueron los objetivos que buscaba creando otro manejador de versiones también es muy divertida, vale la pena conocerla para apreciar esta herramienta.

En fin, es una buena manera de ponerse en contacto con un proyecto que probablemente trascenderá como uno de los más importantes de la historia del computo.


No Comments, Comment or Ping

Reply to “Guía para desarrollar en el kernel Linux”