Man kann sich ja ohne Probleme den Quellcode vom Linuxkernel mal anschauen.
So komplex ist diese ganze Sache gar nicht, es ist einfach nur sehr aufwändig. Man muss sich mit der Hardware auseinandersetzen, dazu benötigt man Kenntnisse der Struktur eines OS (Threads, Prozesse, Locks, Semaphore). Interessant dürfte auch die Speicherverwaltung sein, die zudem noch umgesetzt werden sollte. CPU-Scheduling ist ein weiteres Stichwort. Welcher Prozess darf wie lange die CPU in Anspruch nehmen? Kann man sich alles mal im Linux Quellcode anschauen.
An Universitäten nähert man sich diesem Thema meiner Meinung nach sehr gut. Zuerst werden die formalen/mathematischen Grundlagen gelegt, dann folgen weitere Kurse: Rechnerarchitektur -> Betriebssysteme -> parallele Prozesse -> Systemprogrammierung. Keiner meiner Professoren hat uns jedoch dazu geraten sich in diesem Bereich zu spezialisieren. Wenn man derartige Kenntnisse hat, dann sollte man lieber in die Entwicklung von Embedded Systems gehen.
Mich würde es persönlich reizen ein solches Projekt zu beginnen, da man dazu aber sehr viel Zeit braucht, werde ich sicher nicht damit anfangen.