Lançamento no HN: meu OS de hobby, escrito por mim, finalmente rodando em um IBM ThinkPad vintage
(github.com/joexbayer)- RetrOS-32 é um projeto de sistema operacional de hobby de 32 bits baseado na arquitetura i386
- Oferece recursos de gráficos, multitarefa e rede e já foi testado em hardware real
- Foi escrito em C, C++ e Assembly e oferece compilação multiplataforma via Docker
- É possível montar um sistema de usuário, executar emulação no QEMU e inicializar em hardware físico
- O projeto conta com recursos de kernel bem desenvolvidos e uma pilha de rede, com novas funcionalidades sendo adicionadas continuamente
Introdução ao projeto RetrOS-32bit
- Projeto de desenvolvimento de um sistema operacional de hobby de 32 bits baseado na arquitetura i386
- Suporta ambiente gráfico, multitarefa e recursos de rede
- Início do projeto: 12 de maio de 2022
Informações básicas de login
- Contas de usuário padrão: system, admin, guest
- A senha de admin é
admin, e guest não tem senha - Novos usuários podem ser criados com o comando
admin create <nome de usuário> <senha>
Principais linguagens e ferramentas de desenvolvimento
- C, Assembly: kernel, utilitários, sistema de build
- C++: aplicações em espaço de usuário
- Make: automação de build
- Docker: fornece um ambiente de compilação multiplataforma
Hardware testado
- Lenovo x240
- Asus Eee PC series
- Dell Optiplex 780
- Samsung N150 Plus
- Samsung NP-NC10
- IBM Thinkpad a21p
Primeiros passos (Getting Started)
Ferramentas necessárias (Prerequisites)
- Docker: compilação multiplataforma
- QEMU: emulação de máquina virtual
- Ambiente Linux/WSL:
build-essential,gcc-multilib,grub2,xorriso,xxd - MacOS: é necessário usar Docker (limitação para builds x86 de 32 bits)
Instalação (Installation)
- Clonar o repositório Git
- Inicializar os submódulos do Git
- Gerar o arquivo de imagem com os comandos
make compile,make img - Executar o emulador QEMU com o comando
make qemu
No MacOS e no Windows, recomenda-se usar Docker
Como usar (Usage)
- Fazer upload do arquivo
.imgno site copy.sh v86 para executar - Também é possível executar diretamente com QEMU:
make qemuouqemu-system-i386 <nome da imagem> - Em hardware real, é possível inicializar gravando uma ISO baseada em GRUB em USB/CD
Estrutura do projeto (resumo simples)
apps: aplicações em espaço de usuáriobin: arquivos bináriosboot: código-fonte do bootloaderdrivers: drivers do kernelfs: código do sistema de arquivosgraphics: código de processamento gráficoinclude: arquivos de cabeçalhokernel: principais fontes do kernellib: bibliotecasnet: código de rederootfs: sistema de arquivos raiztests: código de testetools: ferramentas de build e utilitários
Roteiro de desenvolvimento (Roadmap)
- Bootloader customizado e boot compatível com GRUB concluídos
- Implementados agendamento preemptivo multithread e separação entre espaço de kernel e de usuário
- Pilha de rede: Ethernet, IP, ARP, UDP, TCP, DHCP, DNS concluídos
- Sistema gráfico: gerenciador de janelas, widgets, renderização com framebuffer duplo implementados
- Sistema de arquivos: semelhante ao Ext2, com suporte a FAT16, leitura/escrita disponíveis
- Planos futuros: adicionar suporte a web server, FTP, IRC, SSH, Telnet, HTTP e HTML
1 comentários
Comentários do Hacker News