Não é preciso muito para criar um sistema operacional.
Você pode ter 5, 10, 30 anos de experiência na computação, mas se você não tiver nenhuma experiência com o low-level, a nível de programação de drivers, Assembly, C e etc, você não conseguirá chegar a lugar nenhum.
Programar um sistema operacional do zero é não ter nenhuma biblioteca, framework, utilitário, intelisense, absolutamente nada.
É desenvolvimento às cegas, guiado somente por tua inteligência. Precisa saber o avançado de programação de baixo nível, em C, assembly e demais outras linguagens. Além de estudar a arquitetura do computador no geral, entender como as instruções do processador funciona, quais você deve enviar, como você deve gerir a memória, etc.
E o mais importante: por que você quer construir um sistema operacional do zero? Dificilmente terá um motivo, a não ser que seja por puro divertimento ou curiosidade. Pergunte a si mesmo se essa vontade de aprender esse conhecimento é válida para isso ou se poderia gastar seu tempo com algo mais apropriado.
Tem um doido que compilou C# para EFI, usando o bflat. Não vi ninguém indo a fundo com isso, nem acredito que seja uma boa ideia.