Was ich persönlich denke, ist, das die Arbeit an einem Betriebssystem zwar anspruchsvoll, aber eigentlich nicht unglaublich abstrakt und schwer ist. Das Problem liegt er im Umfang. Man muss sich einfach mit unglaublich vielen unterschiedlichen Dingen beschäftigen muss, damit das System etwas drauf hat.
Compilerbau ist etwas anderes. Ein Compiler besteht aus mehren übereinandergelegten Automaten. Die nacheinander den Quelltext oder Stücke davon bearbeiten und an den nächsten weitergeben. Ich persönlich habe bereits die scheinbar einfache Aufgabe, eine Compiler der 5 Funktionen + einen Datentyp vordefinierter Variablen beherrscht als schon ziemlich schwierig empfunden (mittlerweile nehme ich für so was Lua). Andererseits ist die Arbeit überschaubarer.
Also ich denke, es ist beides in etwa gleich schwer. Entscheidend ist dabei aber auch das persönliche Interesse bzw. die Begabung für das eine oder andere. Momentan scheint man mit OS-Dev jedoch besser bedient was Quellen anbelangt (lowlevel, osdev.org, osdever.net usw.), als ich mich mal etwas nach dem Thema Compiler umgesehen habe, konnte ich nicht allzu viel finden.
Da muss ich dir recht geben, warum weiß ich auch nicht. Vermutlich gibt es mehr Hobbyprogrammier, die ein OS programmieren wollen (ich denk mal das "Ich will so sein wie Linus Torwals" spielt bei manchen 'ne Rolle.)
Ich finde auch, dass man bei einem OS schneller einen Einblick bekommt, wenn man den Source eines "großen" OS durchsieht. Mich etwas im Linux-Kernel umzusehen fiel mir deutlich leichter als den Code des FreeBASIC-Compilers zu kapieren.
Naja, ich denk mal Linux wird ja von sehr vielen Leuten bearbeitet, und muss deshalb auch logisch aufgebaut werden, während FreeBasic erst mal nur von ein paar Leuten entwickelt wurde, die sich erst mal wenig um die Quellcode-Verzeichnis-Struktur gekümmert haben.
Letztendlich sehe ich aber keine wirkliche Relevanz hinter der Frage. Entscheidend, ob man sich mit dem einen oder anderen beschäftigt, sollte vor allem das persönliche Interesse sein. Wobei ich allerdings davon abrate, sich mit beidem zur gleichen Zeit zu beschäftigen
Da hast du recht. Deshalb hab ich mein OS-Projekt beerdigt. (War eh nix außer eine kprintf() Function in FB.)