O jovem brasileiro Lucas Prado Coelho, de 12 anos, publicou o código-fonte de um sistema operacional gráfico próprio na comunidade. Batizado de GenesisOS, o software opera em arquitetura de 32 bits e foi construído sem a utilização do núcleo Linux como base de código, dependendo de rotinas desenvolvidas diretamente nas linguagens C e Assembly x86. O sistema roda diretamente no hardware emulado (modo bare-metal) utilizando a especificação Multiboot e inicialização direta em modo protegido.
Para viabilizar a exibição da interface de usuário, o desenvolvedor programou o driver para o adaptador gráfico BGA do emulador QEMU, acionando a resolução de 1024×768 pixels em modo True Color de 32 bits através do envio de comandos para as portas físicas de entrada e saída 0x01CE e 0x01CF. A renderização das janelas utiliza a técnica de armazenamento duplo em buffer (Double Buffering) com um bloco de 3 MB na memória RAM que copia os dados finais para o endereço físico 0xFD000000 da placa de vídeo. O método elimina o efeito de oscilação visual de tela durante o movimento dos elementos gráficos. “Fiquei muito feliz em concluir esse ciclo de desenvolvimento do GenesisOS”, diz o jovem em seu post.
A persistência de dados em sistema de arquivos proprietário
O armazenamento de arquivos é gerenciado pelo GenesisOS File System (GFS), formato nativo estruturado para operar com o driver de disco rígido através das portas I/O 0x1F0 a 0x1F7 em modo de endereçamento lógico de blocos de 28 bits (LBA28 PIO). As alterações de arquivos executadas dentro do gerenciador de arquivos integrado persistem no armazenamento após o reinício completo da máquina virtual. O tráfego do ponteiro depende da leitura de pacotes de 3 bytes enviados pelo mouse na interface PS/2, enquanto o relógio interno consulta o chip CMOS pelas portas 0x70 e 0x71 na taxa de uma verificação a cada 30 quadros para evitar a perda de rendimento do processador.
O visual gráfico apresenta elementos estéticos inspirados nas interfaces Luna do Windows XP e Frutiger Aero do Windows Vista, exibindo janelas com bordas arredondadas e efeitos de reflexo luminoso. O gerenciamento de aplicativos ocorre por meio de quatro barras de ancoragem independentes divididas entre as funções de sistema, programas, energia e relógio, operando com sistema de fixação automática nas bordas da tela. O software disponibiliza três programas utilitários residentes em disco: um explorador de arquivos em árvore hierárquica, um editor de texto que grava arquivos do tipo .txt nos setores físicos e o Genesis Paint, editor de imagens limitado a matrizes de 64×64 pixels.
A esteira de automação com compiladores cruzados
O ambiente de compilação foi estruturado no sistema operacional Windows utilizando o conjunto de ferramentas i686-elf do projeto Lordmilko. Lucas integrou um script em linguagem PowerShell que executa uma rotina de monitoramento e correção automática durante o processamento do código. O interpretador de comandos intercepta as sugestões de otimização geradas pelo compilador GCC 15 e reescreve as variáveis correspondentes no arquivo principal do kernel de forma direta antes de finalizar a geração do arquivo binário. O repositório público com o código-fonte e a imagem ISO para inicialização está hospedado na plataforma GitHub.
.png)
há 1 hora
1





English (US) ·
Portuguese (BR) ·