El desarrollo de Rust para el kernel de Linux sigue avanzando, y para la versión 6.18 se han integrado cambios importantes que permitirán que código Rust y C utilicen el mismo modelo de memoria atómica, mejorando la interoperabilidad y la seguridad en el kernel.
Detalles principales
Los cambios de Rust para variables atómicas ahora soportan el Linux Kernel Memory Model (LKMM), lo que garantiza que Rust y C compartan el mismo comportamiento al acceder a memoria compartida.
Esto permite que el código concurrente en Rust sea más fino y seguro, al alinearse con cómo C maneja la memoria.
Se ha añadido un wrapper de Rust para refcount_t, la estructura de conteo de referencias del kernel, evitando que los desarrolladores tengan que implementar su propio código de referencia en Rust.
Los parches están actualmente en la rama locking/core del TIP branch y, salvo objeciones de Linus Torvalds, se incluirán en Linux 6.18.
Beneficios de estos cambios
- Compatibilidad Rust-C: Rust ahora puede interactuar con módulos en C usando el mismo modelo de memoria.
- Mejor concurrencia: Se desbloquea el uso de código concurrente más fino en Rust.
- Facilidad de desarrollo: El wrapper de
refcount_treduce la necesidad de código personalizado de manejo de referencias en Rust.