Операционные системы пишут ,в основном, на следующих языках: С, С++, C#, язык ассамблера. Обычно, их смешивают - где особо производительность не нужна - С++, С#. В местах, где важна каждая миллисикунда - С, ассамблер.
На самом деле, как альтернативу в данный момент я вижу только Go. Ненамного медленнее, а скорость разработки растет в разы.
Проблема в том, что большинство популярных ныне языков программирования попросту не настолько низкоуровневые, чтобы сделать хоть что-то весомое в этой области.
На практике вам не придется выбирать на каком языке писать ОС, потому что 95% разработки это поддерживание/переделывание старого кода.