- O que é o Redox?
- Estado atual
- O que Redox significa?
- Quais funções o Redox possui?
- Benefícios do Microkernel
- Modularidade real
- Isolamento de bugs
- Design de não-reinicialização
- Benefícios da Rust
- Menos suscetível a bugs
- Sem necessidade para mitigações de exploit das linguagens C e C++
- Sistema de arquivos inspirado no ZFS
- Melhorias de segurança/confiabilidade sem impacto significante no desempenho
- Segurança no Thread
- Drivers escritos em Rust
- Fácil de desenvolver e depurar
- Qual o propósito do Redox?
- O que posso fazer com o Redox?
- O que é um sistema Unix-like?
- Como o Redox é inspirado em outros sistemas?
- Plan 9
- Minix
- seL4
- BSD
- Linux
- O que é um microkernel?
- Quais programas o Redox executa?
- Como instalar programs no Redox?
- Quais são as variantes do Redox?
- Quais dispositivos o Redox suporta?
- CPU
- Interfaces do Hardware
- Vídeo
- Som
- Armazenamento
- Periféricos
- Internet
- Tenho um computador fraco, o Redox irá funcionar?
- Quais máquinas virtuais o Redox possui integração?
- Como compilar o Redox?
- Como abrir o QEMU sem interface gráfica
- Como diagnosticar seu Redox em caso de erros
- Como reportar bugs para o Redox?
- Como contribuir para o Redox?
- Eu tenho um pergunta/problema para a equipe do Redox
title = "FAQ"
Essa página contém perguntas/respostas para iniciantes e usuários comuns.
- O que é o Redox?
- O que Redox significa?
- Quais funções o Redox possui?
- Qual o propósito do Redox?
- O que posso fazer com o Redox?
- O que é um sistema Unix-like?
- Como o Redox é inspirado em outros sistemas?
- O que é um microkernel?
- Quais programas o Redox executa?
- Como instalar programas no Redox?
- Quais são as variantes do Redox?
- Quais dispositivos o Redox suporta?
- [Tenho um computador fraco, o Redox irá funcionar?]
- Quais máquinas virtuais o Redox possui integração?
- Como compilar o Redox?
- Como abrir o QEMU sem interface gráfica
- Como diagnosticar seu Redox em caso de erros
- Como reportar bugs para o Redox
- Como contribuir para o Redox?
- Eu tenho um problema/pergunta para a equipe do Redox
O que é o Redox?
Redox é um sistema operacional baseado em microkernel, completo, funcional, para uso geral 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.
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, já que o Redox é um sistema operacional escrito em Rust, faz sentido.
Ele soa similar com Minix/Linux também.
Quais funções o Redox possui?
Benefícios do Microkernel
Modularidade real
Você pode modificar/trocar a maioria dos componentes do sistema sem reiniciar o sistema, similar ao livepatching porém mais seguro).
Isolamento de bugs
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.
Design de não-reinicialização
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 o tempo offline de servidores).
Benefícios da Rust
Menos suscetível a bugs
A síntaxe restritiva e as sugestões do compilador reduz muito a probabilidade de bugs.
Sem necessidade para mitigações de exploit das linguagens C e C++
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.
Sistema de arquivos inspirado no ZFS
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).
Melhorias de segurança/confiabilidade sem impacto significante no desempenho
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.
Segurança no Thread
O suporte para segurança de thread 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.
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
Drivers escritos em Rust possuem incentivos para ter menos bugs e portanto melhor segurança.
Fácil de desenvolver e depurar
A maioria dos componentes do sistema estão no espaço do usuário, simplificando a depuração.
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/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 é inspirado em 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 é largamente inspirado 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).
FreeBSD é o exemplo mais notável, o Redox se inspirou no Capsicum (um sistema de capacidades) e jails (uma tecnologia de isolamento) para a implementação dos namespaces.
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.
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/programas portados aqui
Como instalar programs no Redox?
O Redox tem um gerenciador de pacotes similar ao apt
(Debian) e pkg
(FreeBSD), você pode ler como utiliza-lo nesta página:
Quais são as variantes do Redox?
O Redox possuí variantes para cada tarefa, leia sobre elas abaixo:
-
server-minimal
- A variante mais enxuta com um sistema básico, destinada a dispositivos embarcados, computadores muito antigos e programadores. -
desktop-minimal
- A variante mais enxuta com o ambiente de desktop Orbital incluído, destinado para dispositivos embarcados, computadores muito antigos e programadores. -
server
- A variante para servidores, com um sistema completo e ferramentas de rede, destinado para admnistradores de rede, dispositivos embarcados, computadores fracos e programadores. -
desktop
- A variante padrão com um sistema completo, o ambiente de desktop Orbital e ferramentas úteis, destinado para o uso diário, produtores, programadores e jogadores. -
dev
- A variante para desenvolvimento com um sistema completo e ferramentas de programação, destinado para programadores. -
demo
- A variante para demonstração com um sistema completo, ferramentas, reprodutores e jogos, destinado para testadores, jogadores e programadores.
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
- Intel - 64-bit (x86_64) e 32-bit (i686) a partir do Pentium II e após com limitações.
- AMD - 64-bit (AMD64) e 32-bit.
- ARM - 64-bit (Aarch64) com limitações.
Interfaces do Hardware
(USB breve)
Vídeo
(Intel/AMD e outros no futuro)
Som
(Sound Blaster em breve)
Armazenamento
(USB em breve)
Periféricos
(USB em breve)
Internet
(Wi-Fi/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?
Atualmente o Redox tem um script de bootstrap para o Pop OS!, Ubuntu, Debian, Fedora, Arch Linux, openSUSE e FreeBSD com suporte não mantido para outras distribuições.
Nós também oferecemos o Podman como método de compilação universal, esse é método de compilação recomendado para sistemas que não sejam baseados no Debian, pois ele evita problemas de ambiente durante a compilação.
- Guia no Livro do Redox - (Pop OS!, Ubuntu, Debian, Fedora, Arch Linux, openSUSE and FreeBSD)
- Guia do Podman no Livro do Redox
Como abrir o QEMU sem interface gráfica
Execute:
make qemu vga=no
Como diagnosticar seu Redox em caso de erros
Leia essa página ou nos explique no Chat.
Como reportar bugs para o Redox?
Verifique as Issues no GitLab primeiro para ver se seu problema é conhecido.
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
- Leia a Documentação.
- Leia todo o livro do Redox para ver se isso responde sua pergunta/corrige seu problema.
- Se a documentação/livro não resolver, diga sua pergunta/problema no Chat.