Lançamento do sistema operacional Redox OS 0.8 escrito em Rust

Foi publicado o lançamento do sistema operacional Redox 0.8, desenvolvido com a linguagem Rust e o conceito de microkernel. Os desenvolvimentos do projeto são distribuídos sob a licença gratuita do MIT. Para testar o Redox OS, são oferecidas versões de demonstração de 768 MB, bem como imagens com um ambiente gráfico básico (256 MB) e ferramentas de console para sistemas de servidor (256 MB). Os assemblies são gerados para a arquitetura x86_64 e estão disponíveis para sistemas com UEFI e BIOS. A imagem de demonstração, além do ambiente gráfico Orbital, inclui um emulador DOSBox, uma seleção de jogos (DOOM, Neverball, Neverputt, sopwith, syobonaction), tutoriais, um tocador de música rodioplay e um editor de texto Sodium.

O sistema operacional se desenvolve de acordo com a filosofia Unix e empresta algumas ideias de SeL4, Minix e Plan 9. Redox usa o conceito de microkernel, no qual apenas a comunicação entre processos e gerenciamento de recursos é fornecida no nível do kernel, e todas as outras funcionalidades são colocadas em bibliotecas que podem ser usadas tanto no kernel quanto em aplicativos do usuário. Todos os drivers são executados no espaço do usuário em ambientes de sandbox isolados. Para compatibilidade com aplicativos existentes, é fornecida uma camada POSIX especial que permite que muitos programas sejam executados sem portabilidade.

O sistema aplica o princípio "tudo é uma URL". Por exemplo, o URL “log://” pode ser usado para registro, “bus://” para comunicação entre processos, “tcp://” para comunicação de rede e assim por diante. Os módulos, que podem ser implementados como drivers, extensões de kernel e aplicativos personalizados, podem registrar seus próprios manipuladores de URL, por exemplo, você pode escrever um módulo de acesso de E/S e vinculá-lo ao URL "port_io://", após o qual você pode usá-lo para acessar a porta 60 abrindo a URL "port_io://60".

O ambiente do usuário no Redox é construído em torno do próprio shell gráfico do Orbital (não confundir com o outro shell do Orbital que usa Qt e Wayland) e o kit de ferramentas OrbTk, que fornece uma API semelhante ao Flutter, React e Redux. Netsurf é usado como um navegador da web. O projeto também desenvolve seu próprio gerenciador de pacotes, um conjunto de utilitários padrão (binutils, coreutils, netutils, extrautils), o shell de comando ion, a biblioteca C padrão relibc, o editor de texto semelhante ao vim do sódio, a pilha de rede e o arquivo sistema. A configuração é definida na linguagem Toml.

A nova versão continua trabalhando para garantir o trabalho em hardware real. Além da arquitetura x86_64, foi adicionada a capacidade de trabalhar em sistemas x32 de 86 bits (i686, Pentium II e mais recentes). A portabilidade para CPU ARM64 (aarch64) está em andamento. O trabalho em hardware ARM real ainda não é suportado, mas é possível inicializar ao emular ARM64 no QEMU. Por padrão, o subsistema de áudio é ativado e o suporte inicial para configurações de vários monitores é fornecido (em sistemas com um framebuffer UEFI). O equipamento suportado pelo Redox OS inclui chips de som AC'97 e Intel HD Audio, saída gráfica via VESA BIOS ou UEFI GOP API, Ethernet (Intel 1/10 Gigabit Ethernet, Realtek RTL8168), dispositivos de entrada (teclados, mouses, touchpads) , SATA (AHCI, IDE) e NVMe. O suporte para Wi-Fi e USB ainda não está pronto (o USB funciona apenas no QEMU).

Outras inovações:

  • Imagens de inicialização mescladas para sistemas BIOS e EFI.
  • Implementação de chamadas de sistema clone e exec movidas para o espaço do usuário.
  • Processo de download simplificado. Foi introduzido um programa bootstrap que é executado pelo kernel e fornece carregamento adicional de arquivos ELF, como o processo init.
  • Adicionado programa escalado para permitir que programas setuid, como o sudo, funcionem.
  • Para simplificar a criação e instalação de processos em segundo plano, o pacote redox-daemon crate foi proposto.
  • O sistema de compilação foi redesenhado, tornando possível compilar para diferentes arquiteturas na mesma árvore de origem. Para simplificar a montagem de diferentes configurações, o script build.sh é proposto. Adicionado suporte para construção usando o kit de ferramentas podman. A montagem do kernel, bootloader e initfs é unificada com outros pacotes.
  • Adicionada uma configuração de demonstração para criar programas de amostra que não estão incluídos na imagem de inicialização básica com um ambiente gráfico.
  • O suporte para controle de volume programático foi adicionado ao subsistema de áudio audiod.
  • Adicionado driver para chips de som baseados em AC'97. Driver aprimorado para chips Intel HD Audio.
  • Adicionado driver para controladores IDE.
  • Suporte aprimorado para unidades NVMe.
  • Drivers PCI, PS/2, RTL8168, USB HID e VESA aprimorados.
  • A organização do processo de instalação foi redesenhada: o bootloader, bootstrap, kernel e initfs agora estão localizados no diretório /boot.
  • O kernel simplificou o trabalho com memória, adicionou a capacidade de manipular espaços de endereço no nível do usuário.
  • O suporte para sistemas de vários monitores foi adicionado ao shell gráfico Orbital, o processamento do cursor do mouse foi aprimorado e um indicador foi adicionado para alterar o volume. O menu tem a capacidade de dividir os aplicativos em categorias.

Fonte: opennet.ru

Adicionar um comentário