Pitch: 12 Anos e criei meu SO.
Tenho 12 anos e criei meu próprio Sistema Operacional Gráfico do zero (sem Linux) rodando em disco real. O que aprendi nessa jornada.
Olá, pessoal do TabNews! Meu nome é Lucas Prado Coelho, tenho 12 anos e gostaria de compartilhar com vocês o meu maior desafio técnico até hoje: o desenvolvimento do GenesisOS, um sistema operacional gráfico de 32 bits escrito do absoluto zero (em C e Assembly x86) que roda diretamente no hardware emulado.
Sei que este é um projeto estritamente educacional e que um sistema de hobista não tem o objetivo de competir com gigantes como o Windows ou o Linux, mas a quantidade de conceitos de baixo nível, eletrônica e arquitetura de computadores que aprendi ao longo dessa jornada foi simplesmente incrível.
Gostaria de detalhar os principais componentes que precisei programar para fazer o GenesisOS ganhar vida:
🚀 A Arquitetura do GenesisOS
Diferente de muitas distribuições que utilizam o kernel do Linux como base, o GenesisOS roda em modo bare-metal (direto no metal). Ele usa o padrão Multiboot e inicializa em modo protegido de 32 bits.
Aqui estão os pilares que precisei construir para que o sistema funcionasse:
1. Driver de Vídeo e o Modo Gráfico (BGA)
Para sair da tradicional tela de texto preta do VGA, precisei programar um driver para a placa de vídeo emulada do QEMU (a Bochs Graphics Adapter ou BGA).
Ativei a resolução de 1024x768 pixels em 32-bit True Color (milhões de cores) enviando comandos de escrita diretamente nas portas físicas 0x01CE e 0x01CF.
Para evitar que as janelas e o mouse piscassem na tela ao serem arrastados (flickering), implementei a técnica de Double Buffering. Todo o sistema é desenhado de forma extremamente rápida em uma tela invisível de 3MB na memória RAM (backbuffer) e, ao final de cada quadro, o bloco inteiro é copiado ("blitado") para a memória de vídeo física (0xFD000000).
2. Driver de Disco Rígido e o GenesisOS File System (GFS)
Este foi um dos maiores desafios. Em vez de simular arquivos em memória estática, programei um driver de disco rígido IDE/ATA físico usando comunicação de hardware via portas I/O (0x1F0 a 0x1F7) em modo PIO de 28 bits (LBA28).
Criei o GFS (GenesisOS File System). Ao iniciar o sistema pela primeira vez, o kernel lê o Setor 1 do HD virtual (disk.img). Se o disco estiver em branco, ele formata o disco e grava a tabela de arquivos mestre.
O sistema de arquivos é persistente e real: quando você cria um arquivo ou apaga no File Explorer, a tabela é reescrita e gravada fisicamente de volta no arquivo de disco. Ao reiniciar o emulador, as modificações continuam lá!
3. Driver do Mouse Físico (PS/2)
Habilitei a porta auxiliar do mouse no controlador de teclado (0x64). O mouse PS/2 envia dados em ciclos rápidos de 3 bytes (botões clicados, delta X e delta Y).
Usei uma verificação de sincronização baseada no bit 3 do primeiro byte (!(data & 0x08)) para garantir que o mouse nunca perca o alinhamento de leitura e o cursor não saia deslizando sozinho de forma caótica.
4. Relógio CMOS em Tempo Real
Para exibir a hora exata no sistema, programei a leitura do chip CMOS da placa-mãe (portas 0x70 e 0x71). Para não sobrecarregar o hardware com leituras constantes (o que causava lag), implementei um limitador de quadros para ler as horas apenas a cada 30 frames.
🎨 A Interface Gráfica (Aero/Luna Vibe) e os Apps
A interface visual do GenesisOS foi inspirada na era do Windows XP (Luna Theme) e Windows Vista (Frutiger Aero). Desenhei botões com faixas brilhantes (glossy glass) e janelas com cantos arredondados (calculados via raio matemático no laço de pixels).
Docks Modularizados: A barra de tarefas foi substituída por 4 docks independentes (SYSTEM, APPS, POWER e CLOCK) que podem ser arrastados livremente para qualquer canto da tela. Ao soltá-los, eles sofrem uma atração magnética (snapping) e se acoplam suavemente nas bordas.
File Explorer Hierárquico: Permite navegar por diretórios reais do HD (Root / e /documents), além de possuir funções de Criar, Deletar e Renomear arquivos.
Notepad (Editor de Texto): Ao abrir um arquivo .txt no File Explorer, você pode usar o seu teclado físico para digitar textos e salvar as alterações direto no setor físico correspondente do HD.
Genesis Paint: Um aplicativo de desenho em escala de 64x64 pixels onde você arrasta o mouse físico real para desenhar e pode salvar sua arte direto no disco.
🛠️ Como desenvolvi tudo no Windows?
Desenvolver sistemas operacionais no Windows de forma nativa é um desafio conhecido devido ao formato de arquivos executáveis (PE vs ELF). Resolvi isso utilizando a cadeia de compiladores cruzados i686-elf-tools do projeto do Lordmilko no GitHub.
Para agilizar o desenvolvimento, configurei um script em PowerShell (compile.ps1) com loop de Auto-Heal (Auto-Correção):
Toda vez que o GCC 15 exibe um erro de digitação do tipo "did you mean 'sugestao'?", o próprio script analisa o log de erros, substitui a variável incorreta no kernel.c e tenta compilar novamente de forma autônoma!
📦 Código e Download da ISO
O GenesisOS está com o código-fonte totalmente aberto. O repositório contém as instruções de compilação, o script de auto-correção, o arquivo do linker e o bootloader.
📂 Repositório no GitHub:
https://github.com/prilugano992-cmyk/Lucas-s-Projects
💾 Download Direto da ISO Bootável: https://github.com/prilugano992-cmyk/Lucas-s-Projects/releases/download/v1.0.0/genesis.iso
Fiquei muito feliz em concluir esse ciclo de desenvolvimento do GenesisOS. Gostaria de ouvir o feedback de vocês, dicas de baixo nível e sugestões de arquitetura. Muito obrigado!

