Com nossos arquivos devidamente criados e com o código correto, vamos ao passo mais importante: a compilação.
Irei mostrar como compilar passo a passo, mas se quiser automatizar o processo, pode ser feito por meio de um
makefile. Caso queira um pronto, fique à vontade para baixar o makefile do ErdOS e utilizar em seu SO:
Compilando nosso lançador:
nasm -f elf32 -o start.o start.asm
Note que é criado um arquivo ".o". Ele é o objeto compilado de nosso lançador. Nós faremos isto algumas vezes durante nosso processo de compilação.
Vamos compilar agora nosso arquivo principal e driver de vídeo:
g++ -Wall -O -fstrength-reduce -fomit-frame-pointer -finline-functions -nostdinc -fno-builtin -fpermissive -m32 -c libc/io.cpp
$ g++ -Wall -O -fstrength-reduce -fomit-frame-pointer -finline-functions -nostdinc -fno-builtin -fpermissive -m32 -c main.cpp
Finalizando a compilação de nosso código fonte, iremos precisar juntar tudo. Para isto, iremos utilizar o
linker ld e nosso arquivo de configurações para ele, o "link.ld":
ld -m elf_i386 -T link.ld -o bin/kernel.bin obj/start.o obj/main.o obj/io.o
Note que, ao completar o processo de junção, você irá obter um arquivo chamado "kernel.bin" dentro do diretório bin. Isto já é seu kernel pronto.
Para ver como ficou, você pode utilizar a máquina virtual QEMU:
cd bin
$ qemu-system-i386 -kernel kernel.bin
Após o boot do QEMU, você verá o resultado de seu trabalho:

ErdOS rodando sob QEMU na distribuição Ubuntu
Finalização
Este é apenas o início de sua jornada com sistemas operacionais. Com este simples artigo, espero ter esclarecido algumas dúvidas e deixar um material completamente funcional em nossa língua.
Me disponho a responder dúvidas à medida do possível. Sempre mande sua dúvida, sugestão ou crítica. Fique à vontade para me dar aquele "tapa na cara", se for o caso.
Se você tem interesse em levar adiante, contribua com o projeto ErdOS no GitHub, ou caso queira fazer testes e levar para outro rumo, também fique à vontade para criar seu próprio fork:
Muito obrigado por ter prestigiado este artigo.
Me siga no Twitter: @gabrielbiga
Até a próxima.