El estilo de código del kernel
El kernel tiene un estilo estricto y no negociable, documentado por el propio Torvalds. No es capricho: la consistencia a esta escala es lo que hace legible el código de miles de autores.
El kernel lo escriben miles de personas a lo largo de décadas. Sin un estilo común, sería una torre de Babel ilegible. Por eso el kernel impone un estilo estricto —tabs de 8, llaves donde tocan, nombres concretos— documentado y aplicado sin excepciones. Aprenderlo no es opcional si quieres contribuir.
- Las reglas de estilo esenciales.
- Por qué tabs de 8 y líneas cortas.
- Nombres y funciones.
- Dónde está la ley: Documentation/process/coding-style.
Las reglas esenciales
/* Comentarios de bloque estilo kernel */
int funcion_del_kernel(struct dispositivo *dev, int flags)
{ /* llave de función en su PROPIA línea */
int ret; /* indentación con TAB (ancho 8) */
if (flags & OPCION) { /* llave de bloque en la MISMA línea */
ret = hacer_algo(dev);
if (ret)
return ret; /* return temprano ante error, sin llaves si 1 línea */
}
return 0;
}
Tabs de 8
Indentación con tabuladores de ancho 8. Grande a propósito: si anidas tanto que no cabe, tu función es demasiado compleja.
Líneas ≤ 80 (flexible)
El límite histórico es 80 columnas; hoy se toleran algo más, pero la brevedad manda.
Llaves
En bloques (if, for), la llave va en la misma línea. En funciones, en su propia línea. Una asimetría deliberada.
Funciones cortas
Una función hace una cosa y cabe en una pantalla. Nada de monstruos de 500 líneas.
Por qué tabs de 8
Es fácil despreciar las guías de estilo como pedantería. En el kernel son ingeniería. Los tabs de 8 no son estética: son un límite de complejidad disfrazado. Si tu código se anida tanto que la indentación de 8 lo empuja fuera de la pantalla, el estilo te está diciendo que refactorices —extrae una función, invierte una condición— antes de que sea inmantenible. La regla de funciones cortas obliga a descomponer. El límite de columnas mantiene el código legible en cualquier terminal. Y sobre todo, la consistencia absoluta significa que, cuando lees código de un autor que no conoces de un subsistema que no dominas, no gastas energía en descifrar su estilo personal: se lee igual que todo lo demás. A la escala del kernel —miles de autores, millones de líneas, décadas—, un estilo uniforme no es opresión: es lo que hace humanamente posible leer y mantener la obra colectiva. Adóptalo sin pelear; te hace mejor.
Nombres
El kernel prefiere nombres cortos y en minúsculas con guiones bajos: struct file_operations, kmalloc, dev_id. Nada de camelCase (eso es userspace). Los nombres de variables locales son breves (i, ret, dev); los globales, descriptivos. Y hay convenciones por subsistema que verás al leer.
La ley
El estilo completo, escrito con el humor característico de Linus, está en Documentation/process/coding-style.rst del árbol del kernel. Es lectura obligatoria antes de enviar tu primer parche (nivel 30) — y sorprendentemente entretenida. No la resumas de oídas: léela de la fuente. Es corta, clara, y define exactamente qué se acepta.
- Lee
Documentation/process/coding-style.rstentero (es breve). - Reescribe tu módulo del nivel 7 siguiendo el estilo: tabs de 8, llaves correctas, funciones cortas.
- Configura tu editor para tabs de 8 en archivos del kernel.
- Compara tu estilo previo con el del kernel: ¿qué cambia?