Bunu kendin araştırman daha iyi olacaktır çünkü çok zor ve emek isteyen bir iş özellikle sıfırdan yapılıysa linux ile üstüne bilinen bir UI ile yapılıyorsa iş kolaylaşıyor ama genel olarak Kernel,kod bilgisi,tasarım.
C++ ve Assembly ile yapılıyor diye biliyorum. Zaten işletim sistemi yapmak o kadar kolay bir şey değil öyle olsaydı herkes kendi işletim sistemini yapardı.
Nerdeyse tüm işletim sistemlerinde C++ değil C kullanılır kernel yazmak için. SerenityOS gibi istisnalar var ama zaten SerenityOS'un ne kadar ciddi bir proje olduğuda tartışılır.