FAQ

Essa página contém perguntas e respostas para iniciantes e usuários comuns.

O que é o Redox?

Redox é um sistema operacional baseado em microkernel, completo, funcional, para uso geral criado em 2015, com foco em segurança, liberdade, confiabilidade, correção e pragmatismo.

Onde for possível, os componentes do sistema serão escritos em Rust e executam no espaço do usuário.

O Redox busca ser uma alternativa completa para o Linux e BSD.

Estado atual

O Redox está em qualidade alpha/beta, pois implementamos novas funções enquanto corrigimos bugs.

Portanto, ele não está pronto para uso diário, sinta-se livre para testar o sistema até sua maturidade e não armazene arquivos sensíveis sem o devido backup.

A versão 1.0 será lançada quando todas as APIs do sistema forem consideradas estáveis.

O que Redox significa?

Redox é a reação química (redução-oxidação) que cria a ferrugem, sendo o Redox um sistema operacional escrito em Rust, faz sentido.

Ele soa similar com Minix e Linux também.

Quais funções o Redox possui?

Benefícios do Microkernel

Você pode modificar/trocar a maioria dos componentes do sistema sem reiniciar o sistema, similar a alguns módulos de kernel e livepatching porém mais seguro.

A maioria dos componentes do sistema executam no espaço do usuário em um sistema com microkernel, um bug em componentes do sistema fora do kernel não pode quebrar o kernel.

O kernel é pequeno e muda muito pouco (correção de bugs), portanto você não precisa reiniciar seu sistema com frequência para atualizar, já que a maioria dos serviços do sistema estão no espaço do usuário, eles podem ser trocados/atualizados durante a execução (reduzindo muito o tempo offline de servidores).

A maioria dos componentes do sistema estão no espaço do usuário, simplificando os testes e depuração.

Se você quiser ler mais sobre os benefícios citados acima, leia esta página.

Benefícios da Rust

A síntaxe restritiva e os requisitos do compilador para compilar o código reduzem muito a probabilidade de bugs.

O compilador da Rust ajuda o programador a evitar erros de memória e condições de corrida, o que reduz a probabilidade dos bugs de corrupção de dados.

O design de um microkernel escrito em Rust protege contra as falhas de memória das linguagens C e C++, isolando o sistema do kernel a superfície de ataque é muito limitada.

Como o kernel é pequeno, ele usa menos memória para fazer suas funções e o código limitado no kernel torna ele quase livre de bugs (objetivo do príncipio KISS).

O design seguro e veloz da linguagem Rust, combinado com a pequena quantidade de código no kernel, ajudam a garantir um núcleo fácil, confiável e veloz de manter.

O suporte para segurança de concorrência nas linguagens de programmação C/C++ é frágil e muito fácil de escrever um programa que parece seguro para executar em vários threads, mas introduz bugs útis e buracos de segurança.

Se um thread acessa um pedaço do estado ao mesmo tempo que outro thread está modificando, o programa todo pode exibir bugs confusos e bizarros.

Você pode ver este exemplo de uma categoria séria de bugs de segurança que a segurança de concorrência corrige.

Mas na Rust esse tipo de bug é fácil de evitar, o mesmo sistema de escrita que nos previne de escrever de forma insegura também nos previne de escrever padrões perigosos de acesso simultâneo.

Drivers escritos em Rust possuem incentivos para ter menos bugs e portanto melhor segurança.

Outros Benefícios

O Redox utiliza o RedoxFS como sistema de arquivos padrão, ele suporta funções parecidas com as do ZFS com uma implementação escrita em Rust.

Espere alto desempenho e segurança dos dados (copy-on-write, integridade de arquivos, volumes, snapshots, endurecido contra a perda de arquivos).

Comparação com outros sistemas operacionais

Você pode ver como o Redox é em comparação com o Linux, FreeBSD e Plan 9 nessas páginas:

Qual o propósito do Redox?

O objetivo principal do Redox é ser um sistema de propósito geral com foco em segurança, confiabilidade e correção.

O Redox pretende ser uma alternativa aos sistemas Unix (Linux/BSD) existentes também, podendo executar programas Unix com apenas compilação ou modificações mínimas.

O que posso fazer com o Redox?

Como um sistema de propósito geral, você é capaz de realizar praticamente qualquer tarefa na maioria dos dispositivos com alto desempenho e segurança.

O Redox está em desenvolvimento, portanto nossa lista de aplicações suportada é limitada atualmente, mas crescente.

O que é um sistema Unix-like?

Qualquer sistema compátivel com a Especificação Única do Unix e POSIX, portanto com uma Shell, o conceito de “Tudo é um arquivo”, multitarefa e multiusuário.

Unix foi um sistema operacional de multitarefa muito influente e impactou as decisões de design em diversos sistemas modernos.

Como o Redox foi influenciado por outros sistemas?

Plan 9

Este sistema da Bell Labs trouxe o conceito de “Tudo é um arquivo” ao seu maior nível, fazendo toda a comunicação do sistema pelo sistemas de arquivos.

Você apenas precisa montar o software em algum local para obter a função desejada, qualquer software pode funcionar dessa forma.

Minix

O sistema Unix-like com microkernel mais influente, ele possuí funções avançadas tais como modularidade do sistema, resistência a quebra do kernel, reincarnação de driver, proteção contra drivers ruins e interfaces seguras para a comunicação dos processos.

O Redox foi muito influenciado pelo Minix, ele tem funções e arquitetura similar escrita em Rust.

seL4

O mais veloz e simples microkernel do mundo, focado em desempenho e simplicidade.

O Redox segue o mesmo princípio, tentando deixar o espaço do kernel o menor possível (movendo componentes para o espaço do usuário e reduzindo a quantidade de chamadas do sistema, passando a complexidade para o espaço do usuário) e mantendo o desempenho geral bom (reduzindo o custo da troca de contexto).

BSD

Essa família de sistemas Unix implementou diversas melhorias para os sistemas Unix, as variantes de código-aberto dos sistemas BSD adicionaram muitas melhorias no sistema original (assim como o Linux fez).

Linux

O kernel monolítico mais avançado e o maior projeto de código-aberto do mundo, ele trouxe muitas melhorias e otimizações para o mundo Unix-like.

O Redox tenta implementar as melhorias de desempenho do Linux em um design de microkernel.

O que é um microkernel?

Um microkernel é um modelo para núcleo de sistema operacional com uma pequena quantidade de código executando no maior privilégio do processador, este modelo melhora a estabilidade e segurança, com um pequeno custo de desempenho.

Você pode ler mais sobre aqui.

Quais programas o Redox executa?

O Redox é desenhado para ser compátivel-em-código com a maioria dos sistemas Unix, Linux e programas POSIX, necessitando apenas de compilação.

Atualmente, a maioria das aplicações com interface gráfica requer um port, já que não suportamos X11 ou Wayland ainda.

Softwares importantes que o Redox suporta:

Você pode ver todos os componentes do Redox e programas portados aqui

Como instalar programs no Redox?

O Redox tem um gerenciador de pacotes similar ao apt (Debian) e pkg (FreeBSD), você pode aprender a como utiliza-lo aqui.

Quais são as variantes do Redox?

O Redox possuí variantes para um grupo de tarefas, leia sobre elas abaixo:

Quais dispositivos o Redox suporta?

Há bilhões de dispositivos com centenas de modelos/arquiteturas no mundo, nós tentamos escrever drivers para os dispositivos mais utilizados para ajudar mais pessoas, alguns drivers são específicos para um dispositivo e outros são específicos de arquitetura.

Leia o HARDWARE.md para ver todos os computadores testados.

CPU

Interfaces do Hardware

(USB em breve)

Vídeo

(Intel/AMD e outros no futuro)

Som

(Sound Blaster em breve)

Armazenamento

(USB em breve)

Periféricos

Internet

(Wi-Fi e Atheros ethernet em breve)

Tenho um computador fraco, o Redox irá funcionar?

Um processador de computador é a máquina mais complexa do mundo, até os mais antigos são poderosos para a maioria das tarefas, isso depende da tarefa.

O principal problema com os computadores antigos é a quantidade de memória RAM disponível (eles foram vendidos em uma época onde pentes de memória RAM eram caros) e a falta das extensões SSE/AVX (os programas usam elas para acelerar os algoritmos), portanto alguns programas modernos podem não funcionar ou precisam de muita memória RAM para tarefas complexas.

O Redox irá funcionar normalmente (se a arquitetura do processador for suportada pelo sistema) porém você terá que testar cada programa.

Quais máquinas virtuais o Redox possui integração?

No futuro o microkernel poderia agir como um supervisor, similar ao Xen.

Um supervisor é um software que executa múltiplas instâncias isoladas de sistemas operacionais simultaneamente.

Como compilar o Redox?

Leia as seguintes páginas:

Como diagnosticar seu Redox em caso de erros

Leia essa página ou nos explique no Chat.

Como reportar bugs para o Redox?

Leia essa página e verifique as Issues no GitLab para ver se seu problema foi reportado por alguém.

Como contribuir para o Redox?

Você pode contribuir para o Redox de diversas formas, veja elas em CONTRIBUTING.

Eu tenho um pergunta/problema para a equipe do Redox