Linus Torvalds elimina dos funciones problemáticas en Linux 7.4: "Esto era algo que hacía mucha falta, son completamente obsoletas y ya no son la opción correcta"

Elígenos como tu fuente preferida en Google.
El creador de Linux ha utilizado herramientas de inteligencia artificial, como Claude Code, para eliminar estas funciones obsoletas y que implicaban un gran riesgo de seguridad.
Dentro del marco de desarrollo de Linux 7.4, Linus Torvalds ha compartido en el repositorio oficial de Git la decisión de eliminar definitivamente 2 funciones obsoletas en el apartado de seguridad de la arquitectura x86, como son __get_user() y __put_user(), también ya sobrepasadas por el avance del hardware moderno.
Estas funciones habían sido empleadas durante décadas para la transferencia de datos sencillos entre aplicaciones de los usuarios y el centro del sistema operativo, pero suponían ya un grave riesgo de seguridad al no verificar el rango de las direcciones de memoria accesibles.
"Esto era algo que hacía mucha falta", ha expresado Linus Torvalds en el comunicado. "Las funciones __get_user() y __put_user() son completamente obsoletas y ya no son la opción correcta. Y cuando se usan mal, es decir, prácticamente en todos los casos, no solo son más lentas que la alternativa adecuada, sino también inseguras porque no comprueban el rango de direcciones del usuario".
Para comprender mejor lo que implica esta decisión para Linux 7.4 hay que entender que el sistema operativo divide el trabajo en 2 áreas bien separadas: el espacio del usuario, en el que se ejecutan las aplicaciones normales –navegadores web, procesadores de texto, etc.– y el espacio del kernel, una zona con privilegios en la que está el núcleo del sistema y que gestionar el hardware directamente.
Si hay algún programa que necesite intercambiar información con el núcleo, ya sea enviarla o recibirla, el propio sistema tiene que copiar variables entre estos espacios, un mecanismo para el que ya existen las funciones get_user() y put_user(), desde el espacio de usuario hacia el kernel y desde el kernel hacia el espacio del usuario, respectivamente.
La gran diferencia es el doble guion bajo que precede a la función y que, aunque pueda resultar un cambio mínimo, supone un paso de gigante, debido a que estas no validan si la dirección de memoria solicitada pertenece realmente al usuario y si es segura.
La ayuda de la IA para Torvalds ha sido esencial
Aunque estas funciones puedan parecer ahora algo ridículas, estaban justificadas totalmente por el rendimiento. Los procesadores ya obsoletos necesitaban realizar múltiples accesos a memoria continuos desde un mismo puntero base, así que los programadores ejecutaban una verificación manual del rango de inicio y, posteriormente, las llamadas rápidas no verificadas mencionadas para optimizar el código.
Para Torvalds, esto ha quedado ya totalmente desfasado y es cosa del pasado: "Hace años que esto dejó de ser cierto, porque la comprobación de rango ya no representa el verdadero coste a día de hoy. El coste real de los accesos de usuario en el hardware moderno es activar y desactivar los propios accesos de usuario en primer lugar".
En arquitectura modernas como x86, el procesador tiene que ejecutar secuencias de instrucciones muy específicas cada vez que el núcleo del sistema abre y cierra la ventana de acceso a esta memoria del usuario, por lo que el verdadero problema reside en saber conmutar los estados de protección. Gracias al desarrollador Thomas Gleixner, del kernel de Linux, las nuevas interfaces permiten abrir esa ventana una sola vez y de forma totalmente segura, por lo que ya no es necesario recurrir a las funciones antiguas.
Con el objetivo de extender todos estos cambios al árbol de código fuente de la última versión de Linux, Torvalds ha reconocido que ha usado herramientas de inteligencia artificial como Claude Code para reemplazar de forma automática todo el código obsoleto.
Por el contrario, en las arquitecturas ARM64 ya se enviaba el tráfico directamente a las versiones seguras de get_user() y put_user(), así que no presentaban los mismos peligros del código heredado. Así, Linux 7.4 es un cierre para una brecha histórica de seguridad, incluso ante el escepticismo con el que concluye el propio Torvalds: "Veamos si he roto algo, pero este deberíamos haberlo hecho hace años".
