Domingo, 8 de noviembre de 2026

Lo más relevante del hosting en el mundo, en español · ehost.ec →

systemd aprueba Rust para componentes pero mantiene sus bibliotecas centrales en C

Los desarrolladores de systemd detallan qué partes del proyecto admitirán código en Rust y por qué las bibliotecas compartidas centrales seguirán escritas en C; la decisión busca evitar duplicidad y problemas de ABI.

Por Equipo ehost3 min de lecturaFuente: Linuxiac
systemd aprueba Rust para componentes pero mantiene sus bibliotecas centrales en C
Imagen ilustrativa generada con inteligencia artificial.

Los mantenedores de systemd han publicado una explicación técnica sobre cómo integrarán Rust en el proyecto y qué límites se imponen a su uso. Aunque Rust queda aceptado para componentes independientes y nuevas utilidades, las bibliotecas compartidas centrales de systemd permanecerán en C.

Por qué Rust es aceptable para ejecutables, pero no para bibliotecas compartidas

El equipo señala que la principal restricción es la ausencia en Rust de un soporte de bibliotecas compartidas con ABI estable equivalente al que ofrece C. systemd dispone de una infraestructura formada por numerosas bibliotecas y más de 180 binarios; introducir código Rust en las bibliotecas compartidas obligaría a duplicar código Rust en varios módulos o a recurrir a enlazado estático, lo que consideran poco práctico para la arquitectura del proyecto.

En la práctica, esto significa que los nuevos programas o utilidades creadas en Rust podrán compilarse como ejecutables independientes y enlazarse con las APIs internas de systemd, pero las bibliotecas de uso común —como libsystemd-shared.so y otras piezas centrales— seguirán manteniéndose en C para garantizar una interfaz binaria estable y evitar la proliferación de copias de código.

Cómo accederán los programas Rust a la funcionalidad de systemd

Para permitir que los binarios escritos en Rust utilicen las mismas funciones internas que los programas en C, systemd expondrá envoltorios (crates) de Rust que llaman a la funcionalidad existente en C. De este modo, los ejecutables en Rust podrán compartir comportamiento con sus equivalentes en C en aspectos como el parseo de argumentos, mensajes de ayuda y manejo de errores, manteniendo coherencia funcional entre implementaciones en ambos lenguajes.

Meson y la decisión de no incorporar Cargo

systemd mantendrá Meson como su único sistema de compilación y construcción. Los desarrolladores explican que incorporar Cargo, la herramienta de construcción y gestión de dependencias de Rust, añadiría la complejidad de mantener dos sistemas de build y además introduce consideraciones de seguridad y de cadena de suministro de software que prefieren evitar por ahora.

Por ese motivo, la integración de Rust se hará dentro del flujo actual de Meson, y la incorporación de dependencias externas gestionadas por Cargo será tratada con cautela: no están descartadas, pero requerirán experiencia y garantías adicionales antes de adoptarlas ampliamente.

No_std y dependencias externas: un enfoque prudente

Los primeros componentes Rust se compilarán usando el enfoque no_std, es decir, prescindiendo de la biblioteca estándar de Rust. En lugar de depender de la std de Rust, esos componentes aprovecharán la funcionalidad ya existente en systemd (por ejemplo, operaciones sensibles sobre el sistema de ficheros), reduciendo la superficie de integración y el peso de nuevas dependencias.

Asimismo, los mantenedores descartan convertir en Rust componentes consolidados únicamente por el hecho de cambiar de lenguaje. Reescribir sin un motivo técnico claro no es una prioridad: la sustitución por Rust no solucionaría por sí sola problemas cuya raíz esté en el tratamiento de rutas de ficheros u otros vectores no relacionados con la seguridad de memoria.

Compatibilidad y carácter opcional de Rust en systemd

Rust quedará como una opción optativa: los builds sin Rust seguirán siendo totalmente funcionales y soportados. También se reconoce que Rust no soporta de forma nativa todas las arquitecturas en las que systemd tiene presencia, por lo que mantener la base en C garantiza portabilidad y estabilidad para todos los entornos donde se despliega systemd.

Qué deben hacer administradores y desarrolladores

  • Si administra servidores, no es necesario cambiar nada de inmediato: las bibliotecas centrales seguirán en C y las distribuciones continuarán proporcionando builds sin Rust.
  • Los desarrolladores interesados pueden crear nuevas utilidades en Rust, usando los crates que systemd proporcione para acceder a las APIs internas; conviene seguir las guías de integración y compilar dentro del sistema de build Meson del proyecto.
  • Evite esperar reescrituras masivas: los mantenedores no recomiendan portar código existente a Rust sin un beneficio técnico claro.

Lee también:

Fuente: Linuxiac

Compartir