How do I learn Rust in Linux?

Aprende e Instala Rust en Linux: Guía Completa

09/12/2010

Valoración: 4.37 (2434 votos)

Rust ha emergido como uno de los lenguajes de programación más queridos y potentes de la última década. Con una sintaxis que recuerda a C++, pero con garantías de seguridad de memoria que eliminan clases enteras de errores, no es de extrañar que su popularidad se haya disparado. Su adopción más notable y reciente ha sido en el corazón mismo del ecosistema de código abierto: el kernel de Linux. Para cualquier desarrollador o entusiasta de Linux, aprender Rust ya no es solo una opción interesante, sino una habilidad con un futuro brillante. En este artículo, te guiaremos a través de todo lo que necesitas saber, desde su importancia en Linux hasta un tutorial detallado para instalarlo y compilar tu primer programa.

How do I install rust on Linux?
Although there are several different ways to install Rust on Linux, the recommended method is to use the rustup command line tool. Run the command to download the rustup tool and install the latest stable version of Rust: You’re prompted to choose the type of installation: Welcome to Rust! programming language, and its package manager, Cargo.
Índice de Contenido

¿Qué es Rust y por qué es tan relevante?

Rust es un lenguaje de programación de sistemas que se enfoca en tres objetivos principales: rendimiento, seguridad y concurrencia. Apareció por primera vez en 2015 y fue desarrollado por Mozilla Research. Lo que lo hace especial es su "borrow checker" (verificador de préstamos), una característica del compilador que garantiza la seguridad de la memoria en tiempo de compilación sin necesidad de un recolector de basura, lo que permite un rendimiento predecible y comparable al de C y C++.

Estas características lo hacen ideal para el desarrollo de sistemas de bajo nivel, como sistemas operativos, motores de juegos, componentes de navegadores web y, por supuesto, módulos del kernel. Su sistema de gestión de paquetes, llamado Cargo, simplifica enormemente la creación de proyectos y la gestión de dependencias, un punto de dolor común en el ecosistema de C/C++.

Rust en Linux: Una Alianza para el Futuro

Durante más de 30 años, el kernel de Linux se escribió casi exclusivamente en C y ensamblador. Sin embargo, en 2020, se inició el proyecto "Rust for Linux" con el ambicioso objetivo de introducir Rust como un segundo lenguaje oficial para el desarrollo del kernel. La principal motivación es aprovechar la seguridad de memoria de Rust para reducir la cantidad de errores y vulnerabilidades de seguridad, que a menudo se originan por una gestión incorrecta de la memoria en C.

What is Rust programming language?
The Rust programming language first appeared in 2015 and has rapidly risen in popularity over the years. As of late 2022, it has become officially supported in the development of the Linux kernel, alongside long time staples C and assembly.

El proyecto alcanzó un hito histórico cuando Linus Torvalds, el creador de Linux, aprobó la inclusión del soporte inicial para Rust en la versión 6.1 del kernel a finales de 2022. Aunque el soporte inicial era mínimo, sentó las bases para el futuro. En diciembre de 2023, con la versión 6.8, se aceptaron los primeros controladores de dispositivos escritos completamente en Rust, demostrando la viabilidad y el compromiso con esta nueva dirección.

Guía Completa para Instalar Rust en Linux (Ubuntu)

Aunque existen varios métodos, la forma recomendada y más sencilla de instalar Rust es a través de la herramienta de línea de comandos rustup. Esta guía se basa en Ubuntu 20.04/22.04, pero los pasos son muy similares para otras distribuciones.

Paso 1: Instalar Rust con `rustup`

El primer paso es descargar y ejecutar el script de instalación de `rustup`. Abre tu terminal y ejecuta el siguiente comando:

curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh

Este comando descarga el instalador y te presentará tres opciones. Para la mayoría de los usuarios, la opción por defecto es la ideal.

Welcome to Rust! 1) Proceed with installation (default) 2) Customize installation 3) Cancel installation >

Simplemente presiona 1 y luego `Enter`. El instalador descargará el compilador (`rustc`), el gestor de paquetes (`cargo`), la documentación y otras herramientas esenciales. Una vez finalizado, verás un mensaje indicando que la instalación fue exitosa. Para que los cambios surtan efecto en tu terminal actual, necesitas actualizar las variables de entorno con el siguiente comando:

source "$HOME/.cargo/env"

Para instalaciones futuras, esto se cargará automáticamente al iniciar una nueva sesión de terminal.

How do I learn Rust in Linux?

Paso 2: Verificar la Instalación

Para asegurarte de que todo se instaló correctamente, puedes comprobar la versión del compilador de Rust:

rustc --version

Deberías ver una salida similar a esta, mostrando la versión instalada:

rustc 1.66.1 (90743e729 2023-01-10)

Paso 3: Instalar un Compilador C (Linker)

Un paso crucial que a menudo se pasa por alto. Rust compila el código, pero necesita un programa llamado "linker" (enlazador) para unir todos los componentes compilados en un único archivo ejecutable. En Linux, el enlazador más común es `cc` o `gcc`, que forma parte del paquete `build-essential`.

Si intentas compilar un programa sin él, recibirás un error como error: linker 'cc' not found. Para evitarlo, instala las herramientas de compilación esenciales:

Primero, actualiza la lista de paquetes de tu sistema:

sudo apt update

Luego, instala el paquete:

sudo apt install build-essential

Confirma la instalación cuando se te solicite, y con esto, tu entorno de desarrollo Rust estará completamente configurado.

Creando y Compilando tu Primer Programa en Rust

Ahora que tienes todo listo, es hora de escribir algo de código. Vamos a crear el clásico "Hola, Mundo" para verificar que el compilador y el enlazador funcionan juntos.

When did Linux start using rust?
In December 2023, the first drivers written in Rust were accepted, and released in version 6.8. The Linux kernel has been primarily written in C and assembly languages since its first release in 1991. Around 1997, the addition of C++ was considered and experimented upon for two weeks before being scrapped.

1. Crea un directorio para tus proyectos y navega hacia él:

mkdir ~/proyectos_rust cd ~/proyectos_rust

2. Crea un archivo con la extensión .rs. Usaremos `nano` como editor, pero puedes usar el que prefieras:

nano hola_linux.rs

3. Dentro del archivo, escribe el siguiente código. La función `main()` es el punto de entrada de todo programa en Rust. La macro `println!` imprime texto en la consola.

fn main() { println!("¡Felicidades! Tu primer programa en Rust funciona en Linux."); }

Guarda el archivo y sal del editor (en `nano`, es `Ctrl+X`, luego `Y`, y `Enter`).

4. Ahora, compila tu código con `rustc`:

rustc hola_linux.rs

Si no hay errores, este comando creará un archivo ejecutable binario en el mismo directorio, llamado `hola_linux` (sin extensión).

5. Finalmente, ejecuta tu programa:

./hola_linux

Verás el siguiente mensaje en tu terminal:

¡Felicidades! Tu primer programa en Rust funciona en Linux.

Tabla Comparativa: Rust vs. C/C++ en el Contexto de Linux

Para entender mejor el valor que Rust aporta al ecosistema de Linux, aquí tienes una tabla comparativa con C/C++.

What is rust for Linux?
Rust for Linux is the project adding support for the Rust language to the Linux kernel. This website is intended as a hub of links, documentation and resources related to the project.
CaracterísticaRustC / C++
Seguridad de MemoriaGarantizada en tiempo de compilación (sin punteros nulos, sin data races).Manual. El desarrollador es responsable (riesgo de buffer overflows, use-after-free).
Gestión de PaquetesIntegrada con Cargo, moderna y fácil de usar.Externa y fragmentada (make, CMake, Conan, vcpkg, etc.).
Curva de AprendizajeMás empinada al principio debido al borrow checker y los conceptos de ownership.Más familiar para muchos, pero dominar sus complejidades y evitar errores sutiles lleva años.
RendimientoComparable a C/C++, con control total sobre el hardware y sin recolector de basura.El estándar de oro en rendimiento de sistemas.
Madurez en el KernelEmergente y en rápido desarrollo. Enfocado en nuevos módulos y drivers.Estándar de facto durante más de 30 años. Base de código masiva y estable.

Preguntas Frecuentes (FAQ)

¿Puedo instalar Rust en otras distribuciones de Linux que no sean Ubuntu?

¡Absolutamente! El instalador `rustup` está diseñado para funcionar en cualquier sistema tipo Unix. Lo único que cambiará será el comando para instalar el compilador C. Por ejemplo, en Fedora/CentOS/RHEL, usarías sudo dnf groupinstall "Development Tools" en lugar de `sudo apt install build-essential`.

¿Qué es Cargo y por qué no lo hemos usado?

Cargo es el sistema de construcción y gestor de paquetes de Rust. Para un solo archivo como nuestro ejemplo, usar `rustc` directamente es más simple. Sin embargo, para cualquier proyecto real, usarías Cargo. Él se encarga de crear la estructura del proyecto, descargar dependencias (llamadas "crates") y compilar todo de forma optimizada. Se instala automáticamente con `rustup`.

¿Ya se puede reescribir todo el kernel de Linux en Rust?

No, y ese no es el objetivo actual. El proyecto "Rust for Linux" se centra en permitir la escritura de nuevos módulos y controladores en Rust, coexistiendo con el código C existente. La idea es introducir gradualmente los beneficios de seguridad de Rust en áreas nuevas y críticas, no reemplazar la base de código de C de la noche a la mañana.

¿Cómo mantengo actualizada mi instalación de Rust?

Es muy sencillo. La herramienta `rustup` se encarga de todo. Simplemente ejecuta el siguiente comando en tu terminal para obtener la última versión estable:

rustup update

¿Y si quiero desinstalar Rust?

Si en algún momento decides que quieres eliminar Rust de tu sistema, `rustup` también lo facilita. El siguiente comando eliminará el compilador, las herramientas y las variables de entorno asociadas:

rustup self uninstall

Si quieres conocer otros artículos parecidos a Aprende e Instala Rust en Linux: Guía Completa puedes visitar la categoría Juegos.

Subir