linux / junio 10, 2026 / 13 min de lectura / 👁 54 visitas

El arte invisible de picar código en las entrañas del sistema

El arte invisible de picar código en las entrañas del sistema

Seguro que ahora mismo, mientras deslizas el dedo por la pantalla de tu móvil o haces clic con un ratón que pide a gritos una limpieza, no te estás parando a pensar en el fontanero. No me refiero al que viene a casa cuando el fregadero dice basta, sino a los fontaneros del software. Esos que se encargan de que, cuando pulsas una tecla, el procesador sepa exactamente qué demonios tiene que hacer sin que todo salte por los aires. Hablo de los desarrolladores del Kernel de Linux. Y la verdad es que, si te mueves por el mundillo tecnológico, habrás visto que IBM ha sacado una vacante, la 118577, que ha levantado más de una ceja en los foros de programadores.

Trabajar en el núcleo de un sistema operativo no es como hacer una aplicación para pedir comida a domicilio. Aquí no hay botones de colores ni animaciones fluidas en CSS. Aquí hay punteros, gestión de memoria a machete y una lucha constante contra las condiciones de carrera. IBM, a través de su Linux Technology Centre (LTC), lleva décadas metida en este barro. Y no lo hacen por amor al arte, que también, sino porque el mundo entero, desde los servidores de la Seguridad Social aquí en España hasta los supercomputadores que predicen el tiempo, corre sobre Linux. Si el kernel falla, se para el planeta. Así de claro.

La vacante en cuestión no es solo un puesto de trabajo; es un billete de entrada al club más exclusivo y, a veces, más huraño de la informática mundial. Porque, seamos sinceros, el ecosistema de desarrollo de Linux tiene su aquel. No es para todo el mundo. Requiere una paciencia de santo y una piel de elefante para aguantar las revisiones de código en las listas de correo. Pero oye, si te gusta saber cómo ruge el motor por dentro, no hay sitio mejor.

IBM y su idilio de mil millones de dólares con el pingüino

Para entender qué hace un desarrollador en el LTC de IBM, hay que echar la vista atrás. A finales de los 90, IBM era el gigante de los mainframes y los sistemas propietarios. Pero alguien allí dentro, con mucha visión (o mucha suerte), decidió que el futuro no era cerrar el código, sino abrirlo. En el año 2000, soltaron la bomba: iban a invertir mil millones de dólares en Linux. En aquel entonces, aquello sonaba a locura. Era como si una constructora tradicional decidiera regalar los planos de sus edificios.

Pero la jugada les salió redonda. Al potenciar Linux, IBM se aseguró de que su hardware tuviera un sistema operativo robusto, estándar y mantenido por una comunidad global. El Linux Technology Centre nació precisamente para eso. No es un departamento de marketing; es una unidad de élite donde ingenieros de todo el mundo, incluidos muchos que operan desde oficinas en Madrid o Barcelona, se dedican a enviar parches, discutir arquitecturas y pelearse con Linus Torvalds si hace falta.

Vaya, que cuando entras en un proceso de selección como el de la referencia 118577, no estás entrando en una consultora al uso para hacer mantenimiento de una web de un banco. Estás entrando en el equipo que decide cómo va a gestionar la memoria el próximo procesador de Intel o AMD, o cómo se van a comportar los contenedores en la nube de aquí a cinco años. Es una responsabilidad que asusta un poco, pero que a la vez tiene un punto adictivo para los que disfrutamos con la tecnología de bajo nivel.

¿Qué se cuece realmente en el Linux Technology Centre?

La descripción del puesto habla de «impulsar ideas innovadoras» y «discusiones con visión de futuro». Traducido al lenguaje de los que tomamos demasiado café, esto significa que no te van a dar una lista de tareas cerradas. En el LTC, se espera que identifiques problemas antes de que existan. Por ejemplo, si sale una nueva instrucción en los procesadores x86 que permite cifrar datos más rápido, el equipo de IBM tiene que estar ahí para que el kernel de Linux sepa usarla desde el día uno.

Además, hay un componente político y social muy fuerte. En el kernel no mandas tú, ni manda IBM. Manda el código y, en última instancia, los «maintainers» de cada subsistema. Tienes que convencer a la comunidad de que tu cambio es bueno. Y ojo con esto, porque la comunidad de Linux no tiene filtros. Si tu código es una chapuza, te lo van a decir a la cara, sin paños calientes. Es una meritocracia técnica pura y dura que puede resultar chocante si vienes de entornos corporativos más «suaves».

El perfil técnico: Más allá del «Hola Mundo» en C

Si echamos un ojo a lo que se pide para ser un Linux Kernel Developer hoy en día, la lista de requisitos puede parecer corta pero es profunda como un pozo. No basta con «saber C». Hay que soñar en C. El kernel es uno de los proyectos de software más grandes y complejos del mundo, y se escribe casi íntegramente en este lenguaje, con algunas pinceladas de ensamblador donde la velocidad es crítica.

  • Gestión de Memoria: Tienes que entender qué es el SLAB, el SLUB, las páginas de memoria y por qué un «memory leak» en el kernel es mucho más grave que en una aplicación de escritorio. Si el kernel se queda sin memoria, el sistema entra en «panic» y se acabó la fiesta.
  • Concurrencia y Bloqueos: En un mundo de procesadores con decenas de núcleos, el manejo de los «spinlocks», «mutexes» y «RCU» (Read-Copy-Update) es el pan de cada día. Si no controlas esto, crearás «deadlocks» que dejarán el servidor colgado de la forma más aleatoria posible.
  • Arquitectura de Procesadores: No es lo mismo programar para un procesador Power de IBM que para un ARM de un móvil o un x86 de un portátil. Un desarrollador de kernel debe entender las sutilezas de cada arquitectura, las jerarquías de caché y cómo se comunican los periféricos a través del bus PCI.

La verdad es que, a veces, me pregunto cómo somos capaces de construir algo tan complejo y que funcione tan bien. Y la respuesta suele estar en la obsesión por el detalle. En el kernel, un espacio de más o un comentario mal puesto puede ser motivo para que te rechacen un parche. No es perfeccionismo vacío; es que el código del kernel es la base sobre la que se asienta todo lo demás. Si la base tiene grietas, el edificio se cae.

El día a día entre parches y listas de correo

Olvídate de Slack, de Teams o de Jira. El desarrollo del kernel de Linux sigue anclado (por elección propia) en el correo electrónico. Sí, como lo oyes. Se usan listas de correo (mailing lists) donde se envían los parches en formato texto plano. Es un sistema que parece del siglo pasado, pero que permite una trazabilidad y una capacidad de revisión que ya quisieran muchas herramientas modernas.

Un desarrollador en IBM pasa gran parte de su tiempo leyendo código de otros, probando parches en diferentes configuraciones de hardware y respondiendo a hilos de discusión que pueden durar semanas. Es un trabajo de fondo. No hay «sprints» de dos semanas con entregas cosméticas. Hay hitos de lanzamiento cada dos o tres meses, y el proceso de integración es riguroso. Para que nos entendamos: es más parecido a la revisión por pares de una revista científica que al desarrollo ágil de una startup de moda.

¿Por qué esto es importante para el mercado español?

A veces pensamos que estas cosas solo pasan en Silicon Valley, pero nada más lejos de la realidad. España tiene una comunidad de desarrolladores de sistemas muy potente. Tenemos empresas punteras en sectores como la defensa, la aeronáutica y la banca que dependen críticamente de Linux. Que IBM busque talento para su centro tecnológico es una señal de que el trabajo remoto y la deslocalización del talento de alta cualificación es una realidad tangible.

Pensemos en el MareNostrum, el supercomputador que tenemos en Barcelona. Esa bestia no corre Windows. Corre una distribución de Linux optimizada hasta el extremo. Los ingenieros que mantienen esos sistemas necesitan que el kernel sea capaz de gestionar miles de nodos trabajando en paralelo. Si un desarrollador español consigue entrar en el equipo del LTC de IBM, estará contribuyendo directamente a que infraestructuras como esa sean más eficientes.

Además, el impacto económico es indirecto pero real. Un desarrollador que domina el kernel es un activo valiosísimo para el ecosistema local. Son personas que luego pueden mentorizar a otros, dar charlas en universidades o ayudar a empresas locales a resolver problemas de rendimiento que nadie más sabe por dónde pillar. Es, en esencia, subir el nivel tecnológico del país.

El camino del aspirante: ¿Cómo se llega a ser desarrollador de kernel?

Si estás leyendo esto y te pica el gusanillo, te diré que el camino no es fácil, pero es increíblemente gratificante. No hay un máster oficial de «Desarrollador de Kernel». La mayoría de los que están ahí dentro son autodidactas o han aprendido a base de golpes en proyectos de código abierto. Si mal no recuerdo, muchos de los grandes nombres del kernel empezaron arreglando un pequeño error en un driver de una tarjeta de red que no les funcionaba bien.

Para empezar, lo mejor es no intentar cambiar el planificador de procesos el primer día. Eso es como intentar operar a corazón abierto sin saber poner una tirita. Lo ideal es empezar por el «staging tree», que es donde vive el código que aún no está listo para el núcleo principal. Ahí siempre hay tareas de limpieza, documentación o corrección de errores menores. Es la mejor escuela.

Y luego está el tema del inglés. En este puesto, el inglés no es un «plus», es el aire que respiras. Toda la comunicación, toda la documentación y todas las discusiones técnicas ocurren en inglés. Pero no un inglés de academia, sino un inglés técnico, directo y, a menudo, bastante seco. Al final del día, lo que importa es que tu explicación de por qué ese puntero debe ser nulo se entienda perfectamente.

Herramientas del oficio (y no, no es VS Code)

Aunque cada uno tiene sus gustos, en el mundo del kernel verás mucho Vim, mucho Emacs y, por supuesto, Git. De hecho, Git fue creado por Linus Torvalds específicamente para gestionar el código del kernel de Linux porque las herramientas que existían entonces no daban la talla. Así que, si quieres trabajar en esto, más vale que te lleves bien con la terminal.

También hay herramientas específicas como `sparse` para el análisis estático de código C, o `coccinelle` para realizar transformaciones complejas en el árbol de fuentes. Es un ecosistema de herramientas muy potente, pero con una curva de aprendizaje que asusta al principio. Pero vaya, que una vez que le coges el truco, volver a un IDE pesado se te hace cuesta arriba.

La cultura de IBM: ¿Un gigante burocrático o un aliado del Open Source?

Existe la idea de que IBM es una empresa lenta, llena de reuniones y procesos infinitos. Y en algunas áreas puede que sea así, pero el Linux Technology Centre funciona de forma un poco distinta. Tienen que hacerlo, porque si no, no podrían seguirle el ritmo a la comunidad de Linux. Tienen una cultura que mezcla la seriedad corporativa con la agilidad del código abierto.

Lo bueno de trabajar en un sitio así es que tienes recursos. Si necesitas probar tu código en un servidor con 2 terabytes de RAM y 4 procesadores de última generación, IBM lo tiene. Si necesitas tiempo para investigar un problema complejo que no va a dar beneficios mañana mismo, IBM te lo da. Es un equilibrio interesante entre los intereses comerciales de una multinacional y la filosofía de compartir conocimiento del software libre.

Además, IBM siempre ha tenido un papel de «adulto en la sala» en el ecosistema Linux. Han ayudado a profesionalizar el desarrollo, han aportado marcos legales para proteger el código de patentes troll y han sido fundamentales para que Linux entrara en los centros de datos de las empresas más grandes del mundo. Para un desarrollador, formar parte de esa maquinaria es, cuanto menos, curioso.

Reflexiones sobre el futuro del Kernel

¿Hacia dónde va Linux? Esa es la pregunta del millón. Ahora mismo estamos viendo una transición interesante hacia Rust. Sí, ese lenguaje que promete seguridad de memoria sin sacrificar rendimiento. Ya se han aceptado los primeros parches para permitir escribir drivers en Rust dentro del kernel. Esto es un cambio histórico, casi un cisma para los puristas del C.

Un desarrollador que entre ahora en IBM con la referencia 118577 probablemente le toque vivir esta transición. ¿Cómo convivirán C y Rust en el mismo binario? ¿Cómo afectará esto a la estabilidad a largo plazo? Son preguntas que aún no tienen una respuesta clara, y eso es precisamente lo que hace que este trabajo sea tan interesante. No estás manteniendo algo estático; estás evolucionando un organismo vivo que crece cada día.

También está el reto de la seguridad. Con ataques cada vez más sofisticados, el kernel tiene que endurecerse. Ya no basta con que sea rápido; tiene que ser impenetrable. Esto implica implementar nuevas técnicas de aislamiento, mejorar la aleatoriedad del espacio de direcciones (ASLR) y auditar constantemente el código existente. Es una carrera armamentística constante entre los desarrolladores y los atacantes.

El factor humano y el agotamiento

No quiero pintar esto como un camino de rosas. El desarrollo del kernel es duro. La presión es alta y el escrutinio público es constante. Muchos desarrolladores sufren de «burnout» o agotamiento. Por eso, empresas como IBM ponen mucho énfasis en el trabajo en equipo y en tener estructuras de apoyo. No eres un lobo solitario; eres parte de un equipo que revisa tu trabajo antes de que salga al mundo exterior.

La clave para sobrevivir en este entorno es la humildad. Tienes que aceptar que, por muy bueno que seas, alguien va a encontrar un fallo en tu código. Y eso está bien. De hecho, es lo que hace que el kernel sea tan robusto. La capacidad de encajar críticas técnicas sin llevárselas al terreno personal es, probablemente, la habilidad blanda más importante que puede tener un desarrollador de sistemas.

¿Es este el trabajo de tus sueños?

Al final del día, la vacante 118577 de IBM es para un tipo de persona muy concreto. Es para alguien que disfruta leyendo manuales técnicos de mil páginas, que no se asusta ante un volcado de memoria en hexadecimal y que siente una satisfacción casi física cuando consigue optimizar un ciclo de reloj en una función crítica.

Si eres de los que prefiere ver resultados visuales inmediatos, probablemente te aburras soberanamente. Pero si eres de los que quiere saber cómo funciona el mundo por dentro, si quieres que tu código corra en millones de dispositivos y si quieres aprender de los mejores ingenieros del planeta, entonces esto es lo tuyo. La verdad es que puestos así no salen todos los días, y menos en empresas con el peso histórico de IBM.

Para que nos entendamos, ser desarrollador de kernel en el LTC es como ser mecánico en un equipo de Fórmula 1. No conduces el coche, nadie ve tu cara en la televisión, pero si no haces bien tu trabajo, el coche no pasa de la primera curva. Y cuando el coche gana, cuando el sistema funciona con una estabilidad asombrosa bajo una carga brutal, sabes que una parte de ese éxito es tuya. Y eso, amigos, da un gustito que no se paga solo con dinero.

Así que, si tienes los conocimientos, si te gusta el barro tecnológico y si no te asusta el pingüino, échale un ojo a la oferta. Quién sabe, igual el próximo gran parche que cambie la forma en que usamos nuestros ordenadores lleva tu firma. Y eso, en el currículum de la vida, puntúa doble.

La conclusión que saco de todo esto es que, a pesar de que la IA y las capas de abstracción cada vez son más altas, siempre necesitaremos a alguien que sepa qué pasa en el nivel cero. Linux sigue siendo el rey de la infraestructura moderna, e IBM sigue siendo uno de sus principales valedores. Es una combinación clásica que, por lo que parece, tiene cuerda para rato. Ojo con los que dicen que el desarrollo de sistemas está muerto; solo se ha vuelto más complejo, más profesional y, si me preguntas a mí, mucho más interesante.

¿Te ha gustado este artículo?

unpokitodxfavor

Propietario de aquinohayquienviva.es, web de noticias relacionadas con la ciencia, tecnología, y cultura en general.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Resuelve la operación para enviar el comentario * Time limit is exhausted. Please reload the CAPTCHA.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.