Um desenvolvedor oferece uma reimplementação do GNU Coreutils em Rust 

gnu-coreutils-rust

O uso do Rust para este projeto ajudará a acelerar esse processo, pois muitos bugs em potencial são completamente eliminados.

Sylvestre Ledru começou a trabalhar em uma reimplementação do GNU Coreutils em Rust durante a pandemia de COVID-19 e o apresentou na semana passada durante a edição de 2023 do FOSDEM. 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. »

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. Um desenvolvedor oferece uma reimplementação na linguagem Rust.

Um dos objetivos: tornar o pacote utilizável em outros sistemas operacionais: Windows, macOS, Android, FreeBSD, etc. 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.

equipe do Google, cuja publicação ocorreu no terceiro trimestre do ano anterior, chegou a 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++ pode ser alcançada com controles durante a execução do programa. Em outras palavras, é com código C++ lento que se consegue 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.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.