Welche Programmiersprachen müsste man können um eine Betriebssystem von grund auf selber zu Programmieren?

5 Antworten

Ist im Prinzip egal, sofern sie sowas wie inline ASM bietet, oder alternative Primitive für den Umgang mit Hardware.

Allerdings wirst Du sowas wie eine Doku für die Platform brauchen und diese wird sicherlich auch Assembler und/oder C an den entsprechenden Stellen nutzen, sodaß Du beides zumindest verstehen können solltest.

Assembler zumindest rudimentär zu können wäre also schon wichtig, auch fürs Verständnis wie die CPU so arbeitet, wie die MMU reinspielt, DMA-Engine etc. pp. .

Damit irgendwas zum Laufen kommt (Boot-Vorgang etc) musst du schon mal in die Assembler-Sprache rein. Das könnte auch bei der Programmierung von Hardware-Treibern ein Thema sein.

Sobald der erste Vorgang gelaufen ist, kannst du natürlich auf die höheren Programmiersprachen gehen - da bietet sich C++ an - damit kommst du schon an alles Mögliche ran.

Die Frage stellt sich aber doch: warum willst du das machen - da gibt es unendlich viele Stellen, die danach zu berücksichtigen (programmieren) sind: selbst wenn du irgend einen bootfähigen Kernel baust, dann kommt ja noch die ganze Umgebung: die Speicherverwaltung, das Multitasking, die Konzeption des Treibermodells, die Filesysteme (entweder du baust selbst eines oder du schreibst die Treiber für die bisher verfügbaren wie ExFAT, EXTx, NTFS usw)

Wenn das alles aber läuft - und das ist die Arbeit von Jahren - dann hast du ein Betriebssystem, aber keine Software (wie Office, Spiele etc) dafür, weil es ja dein Eigenprodukt ist - kein Hardware-Hersteller wird extra für dein System Treiber programmieren.

Aber mal PS: es gibt / gab eine Programmiersprache (ist heute aber nicht mehr verbreitet) mit dem Namen FORTH, da hat es jemand (gerüchtehalber) hinbekommen, in einem Rechner mit 64 Kb ein multitaskingfähiges Betriebssystem zu entwickeln.

ForumLibhaber 
Fragesteller
 10.03.2024, 19:11

Ich habe nicht vor, einbezogenes OS zu erstellen, aber ich finde es interessant. Wenn dann würde ich mir eher aus verschiedenen Modulen ein eigenes zusammen stellen.

0

Eine reicht.

Am besten eine eher Hardware nahe Sprache wie C oder rust. Du kannst im Prinzip eine beliebige benutzen, wird ja am Ende dann eh kompiliert, nur eigenen sich manche besser als andere. Theoretisch kannst du auch ein Betriebssystem in Javascript entwickeln.

Aber in der Praxis werden natürlich mehr als eine Sprache benutzt.

Wenn man den Bootloader, also sowas wie grub, auch selber schreiben will, sollte man immerhin etwa assembly können, aber man braucht nicht viel(99% kannst du in C oder rust schreiben). Der Bootloader ist aber eigentlich nicht Teil des Betriebssystems, er läd nur das Betriebsystem am Anfang.

C/Rust und/oder Asm

Rust ist ja auch schon in teilen vom Linux Kernel. Aber Linus Torvalds sagte mal: ,,Nothing better than C"

Woher ich das weiß:Hobby – Leidenschaftlicher Programmierer

C (nicht C++) bzw. Assembler sollten reichen.

Woher ich das weiß:Hobby – private Programmiererei
vkxni  10.03.2024, 14:28

Wieso kein C++? :_D

1
CSANecromancer  10.03.2024, 14:49
@vkxni

Ich habe es zumindest noch nie erlebt, dass im Embeddedbereich oder in der Hardwarenähe objektorientiert programmiert worden wäre.

In den Bereichen ist alles prozedural, weil die Architektur der Microcontroller selbst genau das unterstützt. Wenn man es ganz genau nimmt, dann wird auf Hardwareebene so oder so in Assembler programmiert, wobei C eine leichter lesbare Form davon ist. :P Und NEIN, das ist aus KEINEM LEHRBUCH. (Bevor hier wieder irgendwelche Puristen rumheulen.)

1