Ich habe ein Klassenprojekt, bei dem ich mein eigenes Betriebssystem erstellen soll. Ich habe viel darüber nachgedacht und jetzt sieht alles verwirrend aus

Ich habe ein Klassenprojekt, bei dem ich mein eigenes Betriebssystem erstellen soll. Ich habe viel darüber nachgedacht und jetzt sieht alles verwirrend aus

Ich habe darüber nachgedacht, ein Betriebssystem zu erstellen und verlasse mich jetzt auf Ihren Rat, wo ich mit der Erstellung beginnen soll.

Antwort1

Ist das dein Ernst? Ich meine, es gibt viele von Fans erstellte Betriebssysteme, aber es ist harte und aufwändige Arbeit!

Zunächst einmal muss ein Betriebssystem mindestens über Folgendes verfügen:

  1. Ein Bootloader: Um den Kernel in den RAM zu übertragen, die TLBs vorzubereiten und einige organisatorische Arbeiten durchzuführen

  2. Ein Kernel: Der Kernel ist der wichtigste Teil eines Betriebssystems und verwaltet wichtige Aspekte wie die Zuordnung von physischem/virtuellem Speicher zwischen Programmen, Multitasking, I/O-Planung, IPC, Mutexe usw. Je nach Betriebssystem gibt es verschiedene Philosophien (monolithisch, wie die Linux-Architektur; hybrid, wie die OS X-Architektur; oder Mikrokernel, wie das unfertige Hurd). Je nachdem ist es der Kernelcode oder der Benutzercode, der jeden einzelnen Aspekt des Systems verwaltet.

  3. Userland-Anwendungen, die einem Benutzer eine gewisse Interaktion mit der Maschine ermöglichen.

In der GNU/Linux- und BSD-Welt gibt es mehrere davon, wie zum Beispiel:

Bootloader: GRUB2, GRUB, LILO, ISOLINUX ...

Kernel: Linux, kFreeBSD ...

Userland-Apps: GNU [oder] BSD Coreutils, Bash, Xorg und unzählige mehr :)

Falls das Ihre Frage ist, haben wir hier die Antwort für Sie. Weitere Informationen dazu, wie Sie mit den Designentscheidungen zu den einzelnen Aspekten beginnen können, finden Sie im folgenden Wiki:http://wiki.osdev.org/Hauptseite

Es gibt viele Informationen darüber, wie Bootloader funktionieren, wie man im Baremetal-Modus ohne Commodities wie stdio.h programmiert und wirklich viele nützliche Informationen.

verwandte Informationen