Criar uma distribuição Linux é extraordinariamente mais fácil que desenvolver um SO. Você falou como se estivesse no mesmo patamar, mas é tipo a diferença entre desenhar um boneco stick e pintar a Monalisa.
Para criar uma distro, você só precisa de:
- Compilar o kernel;
- Montar um initrd filesystem (ex.: usando BusyBox);
- Montar um root filesystem (você pode usar debootstrap se quiser fazer uma distro Debian-based).
Sim, o cerne é só isso. O resto é detalhe, como escolher o bootloader (você vai escolher GRUB2), buildar ISO de instalação etc.
Para fazer um protótipo de distro, é papo de 1 dia. Um protótipo de SO vai levar semanas ou meses (dependendo do seu nível de conhecimento atual).
Você pode consultar o Linux From Scratch que ele ensina a fazer esse tipo de coisa. Eu não li, mas é um material bastante recomendado nas comunidades: https://www.linuxfromscratch.org/
Agora se você quiser aprender a desenvolver um SO mesmo (e não uma distro Linux), aí é outros 500 porque você vai ter que desenvolver o kernel.
Minha sugestão é começar estudando a parte teórica em livros como "Operating Systems: Three Easy Pieces" (é gratuito): https://pages.cs.wisc.edu/~remzi/OSTEP/
Você vai ter que aprender assembly também. Eu escrevi um livro gratuito sobre isso: https://mentebinaria.gitbook.io/assembly
Se não souber, aprenda C também. Curso gratuito: https://www.mentebinaria.com.br/cursos/programa%C3%A7%C3%A3o-moderna-em-c/
Tendo a base teórica sobre SO e tendo aprendido assembly e C, você já está preparado para começar seu projeto.
Para aprender a desenvolver um bootloader, leia a spec do UEFI: https://uefi.org/specifications
Para aprender a implementar as partes low level do kernel que dependem da arquitetura, você pode ler o manual da arquitetura. Por exemplo, os manuais da Intel: https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html
Inclusive o manual da Intel tem um volume exclusivamente para falar de implementação de sistema operacional (volume 3: System Programming Guide).
Se quiser que seu SO suporte mais arquiteturas, você vai ter que ler o manual para cada uma delas. Normalmente a galera começa desenvolvendo para uma arquitetura só, porque é mais fácil.
Outra questão são os drivers. Cada hardware que você quiser implementar um driver, você vai ter que ler o manual do hardware para saber como ele se comunica.
E uma dica de material bem conhecido: https://wiki.osdev.org/Expanded_Main_Page
Ah, e se quiser que seu kernel seja UNIX-Like, você tem que seguir o padrão POSIX.
Acho que a dica mais importante que eu posso lhe dar, é aprender com quem já fez antes. Existem vários kernels open source, vários drivers open source, vários bootloaders open source etc. Um monte de gente já fez o que você quer fazer. Leia o código deles e aprenda com eles.
Minha recomendação é ler o código fonte do FreeBSD e não do Linux. Sério, evita o código fonte do Linux... Você vai me agradecer depois. e.e