Lançada uma reimplementação do GNU Coreutils feita em Rust

Durante o evento FOSDEM 2023, foi lançada uma reimplementação do GNU Coreutils feita em Rust pelo desenvolvedor Sylvestre Ledru.

GNU Coreutils é um pacote do projeto GNU que contém muitas ferramentas básicas necessárias para sistemas operacionais do tipo Unix: cp (copiar um arquivo ou diretório), mkdir (criar um diretório), etc.

Ele tem um objetivo: tornar o pacote utilizável em outros sistemas operacionais: Windows, macOS, Android, FreeBSD, etc.

Mas agora, um desenvolvedor oferece uma reimplementação do pacote, feita na linguagem Rust.

Lançada uma reimplementação do GNU Coreutils feita em Rust

Lançada uma reimplementação do GNU Coreutils feita em Rust
Lançada uma reimplementação do GNU Coreutils feita em Rust

Sylvestre Ledru começou a trabalhar em uma reimplementação do GNU Coreutils em Rust durante a pandemia do COVID-19 e o apresentou na semana passada no FOSDEM 2023.

O esforço chamado uutils agora é empacotado por muitas distribuições Linux e também é usado por uma famosa rede social por meio do projeto Yocto.

As comparações das linguagens Rust e C++ têm uma linha comum: destacar a superioridade do Rust sobre o C++ em termos de segurança de memória. O editor RisingWave explica por que ele reescreveu seu Cloud DBMS nativo do zero em Rust depois de deixar o projeto C++.

“Rust garante segurança de memória e thread em tempo de compilação, introduzindo regras de propriedade. Vai além do RAII, um mecanismo de gerenciamento de memória comumente usado em C++. Tem duas vantagens. A primeira é óbvia: assim que o compilador Rust validar nosso programa, não teremos nenhum erro de segmento ou condição de corrida em tempo de execução, o que exigiria dezenas de horas de depuração, especialmente em uma base de código altamente simultânea e principalmente assíncrona. A segunda é mais sutil: o compilador do Rust simplesmente restringe os tipos de falhas, o que reduz os trechos de código fortemente aninhados que podem causar tal comportamento defeituoso. A replicação de erros é significativamente aprimorada usando a execução determinística.”

A mudança vem para reavivar o debate sobre a questão de continuar iniciando novos projetos em C e C++ ou simplesmente optar pela linguagem Rust.

“A linguagem Rust oferece garantias de segurança por padrão quando se trata de gerenciamento de memória. Não é o caso de C e C++, cujo uso no Mozilla causa problemas de segurança de memória”, enfatiza Sylvestre Ledru.

No entanto, Bjarne Stroustrup discorda que as comparações entre Rust e C++ limitem a noção de proteção de software à de proteção de memória:

“Não existe uma definição única da noção de ‘segurança’ e podemos obter uma variedade de tipos de segurança por meio de uma combinação de estilos de programação, bibliotecas de suporte e alavancando a análise estática. Bjarne Stroustrup sugere assim que o que se pode obter de C++ em termos de segurança de software depende, entre outras coisas, do desenvolvedor e, em particular, do conhecimento das ferramentas que a linguagem oferece, do seu domínio do compilador, etc.”

Os engenheiros do Google, cientes das possibilidades que o C++ lhes oferece, embarcaram na criação de um verificador de empréstimos nessa linguagem. É um recurso do compilador Rust que garante a segurança da memória por meio do gerenciamento de alocação de ponteiro de memória.

A equipe do Google, cuja publicação apareceu no terceiro trimestre do ano anterior, chegou à conclusão de que o sistema do tipo C++ não se presta a tal exercício. E para que a segurança da memória em C++ possa ser alcançada com verificações durante a execução do programa.

Ou seja, é com código C++ lento que é possível atingir um nível de segurança equivalente ao do Rust.

O lançamento do editor RisingWave ocorre no momento em que Rust se destaca de outras linguagens que são apresentadas há anos como alternativas a C e C++.

Na verdade, o kernel do Linux está se tornando cada vez mais aberto à linguagem de programação de sistemas da Mozilla.

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.

1 comentário em “Como converter imagens para vídeo no Linux”

Deixe um comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.