El kernel Linux se creó en el conocido lenguaje de programación C, y ese legado se ha mantenido durante las últimas tres décadas. ¿El problema? Que ese código empieza a dar problemas, y la culpa la tiene C89, el estándar de 1989 que se usó del lenguaje C.
Linus Torvalds llevaba rumiando una posible solución desde hace tiempo, y ahora dicha solución está en marcha. El objetivo ahora es adaptar ese kernel a los nuevos tiempos, al menos en cuanto al estándar del lenguaje C utilizado: se espera que el kernel Linux 5.18, la próxima versión en aparecer, comience ya a hacer uso del estándar C11 que se publicó en 2011.
Linux se adapta a los nuevos tiempos
El alcance de la noticia es más relevante de lo que parece, sobre todo porque la presencia de Linux es inmensa en nuestro día a día. Puede que su cuota en PCs y portátiles sea muy limitada (apenas el 2,5%), pero su relevancia es enorme en servidores, en dispositivos móviles (hola, Android) y en todo tipo de dispositivos conectados y embebidos como los que conforman la Internet de las Cosas.
La transición de código C89 a código C11 no es especialmente dramática, y de hecho el estándar C89 sigue estando soportado de forma masiva. Los compiladores con soporte C11 por ejemplo pueden trabajar con código C89 sin problemas, así que, ¿por qué molestarse?
Pues porque en los últimos años Linus Torvalds y los mantenedores y desarrolladores del núcleo Linux se han dado cuenta de que hay potenciales problemas de seguridad con esa vieja versión de C. Todo ello se debatió recientemente en la lista de correo con la que se comunican los responsables de mantener el código.
Linus Torvalds decidió que "ha llegado el momento de pensar en migrar al estándar C99", que aún siendo también algo antiguo, evitaba los problemas detectados. Un desarrollador llamado Arnd Bergmann indicó que esa migración del código era factible, pero que ya puestos se podría dar el salto directamente a C11, más reciente y aportaba mejoras interesantes como el soporte multihilo.
Cada pocos meses aparece una nueva versión del núcleo (o kernel) Linux, el corazón y componente fundamental de cualquier distribución (como Ubuntu para usuarios finales o Red Hat Linux para servidores) y sistema basado en él.
Ese núcleo es el que aglutina los elementos base y en él se van añadiendo nuevas características —por ejemplo, soporte de nuevos procesadores de Intel o AMD o de nuevos estándares Wi-Fi— y esas mejoras y correcciones van conformando cada nueva versión del kernel.
Torvalds decidió que migrar al estándar C de 2011 era aún una mejor idea, y ahora quiere comenzar a probarla. Se comenzará a hacer cuando se inicie la 'ventana' para incluir cambios en el kernel 5.18, y se espera que ese código C11 comience a aparecer en el kernel en marzo.
Algunos desarrolladores avisan de que habrá que ir con tiento en este tipo de proceso: podrían surgir conflictos inesperados, pero aún así es también muy probable que dichos conflictos se puedan solucionar de forma rápida y que ese cambio al código C11 se produzca en la próxima versión del kernel.
Vía | ZDNet
Ver 12 comentarios
12 comentarios
eltoloco
¿Hacía falta el sensacionalismo barato en el titular?
jubete
A ver, no es para tanto. Cambian una opción de compilación y según vayan modificando cosas irán poniendo algunas de las nuevas características del lenguaje, pero hacen este cambio porque es absolutamente retrocompatible con la versión que usaban, o sea, que lo hacen precisamente para no tener que cambiar nada.
juliosao
Si alguien ha entendido que van a reprogramar linux es que no ha entendido nada.
Simplemente a partir de ahora usarán c11, que es un superconjunto de c89. Es decir si acaso tendrán que cambiar unas pocas lineas, eso cuando no sea simplemente cambiar un flag al compilar.
Yo mismo he hecho cambios parecidos en algun programa y la mayoria de las veces el resultado es que no hace falta tocar nada. Simplemente las cosas nuevas ya las programas con el estandar nuevo.
Luis
c++11 y rust, el futuro del kernel
rafaello76
El tamaño del código será del mismo tamaño?
Trocotronic
¿Pero Rust no tenía que dominarlos a todos?
acontracorriente
algo parecido al servidor X11 y Wayland supongo. Es un proceso natural para no quedarse atrás.
alejandrogonzalez8
Internet cayendo en 3 2 1.. con la cantidad de servidores basados en Linux, un mínimo error de compilación podría ser una catástrofe, por suerte este tipo de cambios pueden detectarse rápidamente!
Usuario desactivado
"Si no esta roto, no lo arregles." Demasiadas decadas de nuevas incompatibilidades debidas a nuevas versiones del soft deberian alertarnos.