Por Canuto  

Linus Torvalds integró en Linux 7.4 la eliminación de __get_user() y __put_user(), dos funciones históricas que, según explicó, podían omitir verificaciones del rango de direcciones de usuario y ya no eran la opción adecuada. La limpieza alcanza al código genérico y completa el retiro de la interfaz en x86, mientras persisten algunos restos en otras arquitecturas.
***

  • Las funciones retiradas servían para transferir una variable entre el espacio de usuario y el espacio del kernel, pero ofrecían menos controles que las alternativas actuales.
  • Torvalds sostuvo que las interfaces modernas son más seguras y que los nuevos ayudantes de acceso con ámbito facilitan la conversión del código.
  • La eliminación cubre el código genérico y x86; quedan casos pendientes en algunos puertos de otras arquitecturas, mientras ARM64 ya mapea esas funciones a alternativas actuales.


Linux 7.4 retira dos funciones históricas de acceso a memoria

Linus Torvalds integró en Linux 7.4 la eliminación de __get_user() y __put_user(), dos funciones antiguas para transferir datos entre el espacio de usuario y el espacio del kernel. La decisión avanza la transición hacia interfaces que, según explicó el desarrollador, realizan las comprobaciones necesarias y evita conservar atajos que ya no representan la opción adecuada.

El cambio no significa que Linux deje de permitir esas transferencias: el kernel ya dispone de alternativas para realizarlas. La diferencia es que las variantes retiradas no verificaban el rango de direcciones de usuario, un control relevante cuando el sistema operativo recibe datos desde programas que se ejecutan fuera del kernel.

Qué funciones salen del kernel y por qué

Las funciones __get_user() y __put_user() pertenecían a una familia de herramientas para mover una variable simple a través de la frontera entre dos espacios de memoria. La primera copiaba un dato desde el espacio de usuario hacia el espacio del kernel, mientras que la segunda hacía el recorrido inverso, desde el kernel hacia el usuario.

Ese intercambio forma parte del trabajo habitual de un sistema operativo, pero requiere controles porque el kernel opera con privilegios superiores a los de las aplicaciones. Una dirección que llega desde un programa no debe tratarse automáticamente como válida; por eso, las verificaciones de rango y los mecanismos de acceso seguro ayudan a evitar que una operación alcance memoria fuera de los límites previstos.

Según el reporte de Phoronix, las variantes con doble guion bajo se consideraban más rápidas, aunque ofrecían menos protección que get_user() y put_user(). Torvalds cuestionó esa justificación: afirmó que, cuando se usan de forma incorrecta, no solo pueden ser más lentas que la alternativa apropiada, sino que también resultan inseguras porque no comprueban el rango de las direcciones de usuario.

En la descripción de la integración, Torvalds calificó esas funciones de históricas y sostuvo que ya no eran la opción correcta para nuevos usos. También indicó que la mayoría de los lugares donde aparecían habían sido convertidos tiempo atrás, aunque aún quedaban usos residuales que el parche buscó retirar en lugar de dejar como excepciones permanentes.

Una migración que ya tenía alternativas disponibles

La eliminación no surgió de una ausencia de reemplazos, sino de la existencia de interfaces actuales que hacen más explícito el manejo del acceso a memoria. Torvalds destacó especialmente los ayudantes de región de acceso de usuario con ámbito, una propuesta implementada por Thomas el año anterior, que describió como una forma sencilla de utilizar las interfaces modernas.

La referencia técnica señalada en la fusión es el commit e497310b4ffb, titulado uaccess: Provide scoped user access regions. Ese trabajo introdujo regiones de acceso con ámbito para las operaciones sobre memoria de usuario, y Torvalds lo citó como una razón por la que ya no existían excusas suficientes para conservar los mecanismos antiguos.

El proceso de retiro comenzó, según explicó Torvalds, con un parche que escribió para mostrar cómo convertir los usos de __get_user() y __put_user() a código moderno. La integración final eliminó esas funciones del código genérico del kernel y completó el retiro de toda la interfaz en x86 y x86_64, dos arquitecturas mencionadas expresamente en la descripción del cambio.

La conversión no quedó completa en todos los puertos de Linux. El reporte señala que persisten restos en algunas arquitecturas por casos que no son triviales; ARM64, en cambio, ya tenía esas funciones asignadas a get_user() y put_user(), por lo que allí no quedaba el mismo tipo de implementación independiente que retirar.

La herramienta de IA en el trabajo de conversión

La limpieza también tuvo una dimensión relacionada con la inteligencia artificial. El artículo de Michael Larabel, publicado el 21 de octubre de 2026, informó que Torvalds venía aumentando su actividad de parches, con ayuda parcial de Claude Code, y que la eliminación de estas funciones incluyó trabajo asistido por IA.

Torvalds comentó en la lista de correo que estaba usando Claude como una especie de versión más sofisticada de un script de Coccinelle. Coccinelle se utiliza para el análisis estático y para transformar código fuente en código fuente, de modo que la comparación describe la IA como apoyo a una tarea de inspección y conversión, no como sustituto de la revisión del mantenedor.

El uso de Claude se relacionó con la búsqueda y adaptación de los usos antiguos dentro del código, mientras que la decisión de retirar las funciones y la integración en el kernel aparecen atribuidas a Torvalds. La distinción importa: la automatización puede ayudar a localizar patrones y proponer cambios, pero el reporte no presenta la herramienta como autora autónoma del diseño ni de la decisión técnica.

La noticia también sitúa este trabajo dentro de una actividad reciente de Torvalds vinculada a herramientas de IA, aunque el dato central sigue siendo la modificación del kernel. El cambio elimina una interfaz que el mantenedor consideraba obsoleta, aprovecha alternativas ya disponibles y deja identificadas las excepciones arquitectónicas que todavía requieren atención.

Alcance del cambio y asuntos pendientes

La consecuencia inmediata es acotada y técnica: los usos genéricos de las funciones desaparecen y x86 y x86_64 completan el retiro de su interfaz. No se trata de eliminar la posibilidad de leer o escribir datos de usuario, sino de dejar de ofrecer esas implementaciones históricas como herramientas disponibles para el código del kernel.

El cambio también refuerza una regla de diseño: las transferencias entre el espacio de usuario y el kernel deben pasar por interfaces que incorporen las comprobaciones necesarias. La existencia de funciones aparentemente más rápidas no basta para justificar su permanencia cuando, de acuerdo con Torvalds, su uso incorrecto puede ser más lento y además omite una validación de seguridad importante.

Los restos en algunos puertos de arquitecturas muestran que una limpieza transversal no siempre se resuelve con una sustitución mecánica. El propio reporte identifica casos no triviales como motivo para que ciertas implementaciones continúen allí, mientras que el mapeo de ARM64 a las funciones modernas ilustra una vía en la que el retiro ya se había abordado de otra manera.

La integración en Linux 7.4 consolida así un cambio que llevaba tiempo pendiente, en palabras de Torvalds, pero no implica que todos los detalles de cada arquitectura hayan quedado resueltos con un solo parche. El reporte no especifica una fecha de despliegue para usuarios finales ni atribuye un impacto directo en productos concretos; su alcance documentado es la depuración de interfaces del kernel y la adopción de alternativas con más controles.


Imagen original de DiarioBitcoin, creada con inteligencia artificial, de uso libre, licenciada bajo Dominio Público.

Este artículo fue escrito por un redactor de contenido de IA y revisado por un editor humano para garantizar calidad y precisión.


ADVERTENCIA: DiarioBitcoin ofrece contenido informativo y educativo sobre diversos temas, incluyendo criptomonedas, IA, tecnología y regulaciones. No brindamos asesoramiento financiero. Las inversiones en criptoactivos son de alto riesgo y pueden no ser adecuadas para todos. Investigue, consulte a un experto y verifique la legislación aplicable antes de invertir. Podría perder todo su capital.

Suscríbete a nuestro boletín