O pessoal já recomendou um monte de tópicos para estudar e materiais de estudo então não vou ser redundante aqui (veja o comentário do @maniero). Mas gostaria de complementar aqui dando uma noção mais "vida real".

Entenda primeiro que existem sistemas operacionais e sistemas operacionais. Tem gente que adora especular que isso é uma ciência de foguetes, que você precisa abdicar de sua vida social, que vai demorar décadas ou que você vai precisar de uma equipe de 895 engenheiros... Mas vale lembrar que a primeira versão do MS-DOS foi desenvolvida em 6 semanas. Isso aí, 1 mês e não 10 anos. O Super Mario foi um projeto muito mais complexo de desenvolver do que o MS-DOS.

Há muito misticismo quando se fala de sistemas operacionais porque a galera não tem a menor ideia, ou uma ideia bem superficial, de como um sistema operacional funciona. Sim, desenvolver S.O. no nível de um Linux ou Windows atual é uma tarefa irrealista para qualquer ser humano sozinho.

Mas gente, e a primeira versão do Linux que foi desenvolvida pelo Torvalds sozinho e em poucos meses? E o Minix que foi desenvolvido pelo Tanenbaum sozinho?

Como qualquer outro projeto de qualquer natureza, um S.O. pode ser desenvolvido seguindo a metodologia de MVP. Não precisa ser absurdamente complexo, absurdamente portável, absurdamente seguro, absurdamente performático e absurdamente compatível com milhares de hardwares na versão 0.0.1.

Só o que importa é que seja bem feito, tendo um bom alicerce você levanta um prédio sem problema nenhum. Mas se o alicerce for ruim o prédio desaba. :smile:


Dito isso, além do já mencionado por outras pessoas aqui, se quiser desenvolver um S.O. também sugiro estudar o código de outros S.O. e focar em uma arquitetura específica (na primeira versão). Alguns projetos que você pode dar uma olhada:

  1. FreeDOS: https://github.com/FDOS/kernel
  2. SerenityOS: https://github.com/SerenityOS/serenity
  3. MenuetOS: https://www.menuetos.net/
  4. Linux: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/

Sobre o lance da arquitetura específica, os manuais da Intel têm um volume específico só para falar sobre desenvolvimento de sistemas operacionais. Que é o volume 3 "System Programming Guide". Você pode baixar os manuais aqui:

Obs.: se quiser desenvolver para outra arquitetura então sugiro procurar e consultar os manuais oficiais dessa arquitetura.

Ah, e se tiver precisando de um conteúdo para introdução ao baixo nível. Fiz uma apresentação recentemente justamente sobre isso: