2

Não entendi nada do código rsrsrs

Vc está escrevendo código baremetal para rodar em processadores Intel ?

Um tempo atrás estava tentando criar um SO para a beagle bone Black por achar que a arquitetura ARM era mais fácil que a x86, mas acho que é mais complicada.

Estava tentando fazer em assembly puro.
Não queria nenhum software estranho rodando por baixo do meu kkkkkk.

Mas a documentação da arquitetura para programar em assembly é muito ruim na minha opinião.

No caso da Intel, como vc carrega código assembly no pc para que esse código seja a primeira coisa a ser executada ?

Carregando publicação patrocinada...
1

Opa amigo, o primeiro código Assembly a ser executado no CoffeaOS é justamente o arquivo arch/x86/loader.s.

Quem executa ele, é o GRUB. O arquivo simplesmente escreve alguns cabeçalhos do GRUB na memória para que o mesmo identifique como um arquivo compatível com o multiboot.

Assim que ele identifica, o controle é passado para meu loader. E lá é onde eu inicializo a pilha do Kernel (importante para passar argumentos para C via cdecl) e logo após, passo o controle para minha função kmain em C.