Construindo um kernel Linux nativamente no macOS: Uma jornada pelo inferno da compilação

2025-07-03
Construindo um kernel Linux nativamente no macOS: Uma jornada pelo inferno da compilação

Este artigo detalha a experiência do autor ao construir um kernel Linux (arquitetura RISC-V) nativamente no macOS. A jornada foi repleta de desafios: uma versão desatualizada do make, o ld do macOS sendo incompatível com as expectativas do Linux, falta dos headers elf.h e byteswap.h, e conflitos de versão com uuid_t e sed. O autor superou esses problemas usando o Homebrew para instalar toolchains atualizadas (make, llvm, lld, libelf, gnu-sed) e criando patches para resolver discrepâncias de arquivos de header e conflitos de definição de tipo. O kernel foi construído com sucesso, com o macOS mostrando tempos de construção mais rápidos que o Docker para construções limpas, mas construções incrementais mais lentas. O autor conclui que corrigir problemas de construção é um processo contínuo e iterativo, semelhante à integração contínua.

Leia mais
Desenvolvimento

Starina: Um sistema operacional microkernel com uma abordagem de hipervisor como biblioteca

2025-05-20
Starina: Um sistema operacional microkernel com uma abordagem de hipervisor como biblioteca

Esta publicação apresenta uma abordagem inovadora para compatibilidade com Linux no sistema operacional Starina: integrando o monitor de máquina virtual (VMM) como uma biblioteca dentro de aplicativos. Ao contrário dos VMMs tradicionais autônomos, a API `starina_linux::Command` do Starina permite que os desenvolvedores executem programas Linux de forma semelhante ao `std::process::Command`, interagindo com a VM por meio de um sistema de arquivos virtual (virtio_fs). Esse design simplifica o desenvolvimento e tem o potencial de atingir tempos de inicialização mais rápidos do que o Linux nativo. Atualmente, I/O básico de arquivos é suportado; trabalhos futuros incluem adicionar rede, armazenamento persistente e contêinerização aprimorada.

Leia mais
Desenvolvimento micronúcleo

Construindo um Hipervisor RISC-V no Sistema Operacional Starina: De Hello World ao Boot do Linux

2025-05-17
Construindo um Hipervisor RISC-V no Sistema Operacional Starina: De Hello World ao Boot do Linux

Este post documenta a jornada do autor na construção de um hipervisor leve baseado na extensão RISC-V H dentro do sistema operacional Starina. Usando a emulação RISC-V H-extension do QEMU, o autor implementou incrementalmente a entrada no modo convidado, o tratamento de chamadas de sistema, um programa simples Hello World e, finalmente, a inicialização do kernel do Linux. Desafios incluindo gerenciamento de tabelas de páginas, configuração da árvore de dispositivos, suporte de temporizador e MMIO foram superados, com passos e soluções detalhadas fornecidas. O post conclui com uma inicialização bem-sucedida do Linux no hipervisor Starina.

Leia mais
Desenvolvimento