2010-12-30 7 views
0

Ich möchte in OS-Entwicklung zu bekommen. Allerdings bin ich nicht an all den Macken mit der x86-Architektur interessiert. Ich interessiere mich für das Design des Betriebssystems.Betriebssystem Development Toolkit

Also suchte ich nach einem (x86, oder x86_64 wäre noch besser) OS Toolkit. Etwas, das den Wechsel in den geschützten Modus und das Konfigurieren von Interrupts durch einfache C-Funktionsaufrufe betrifft.

Das einzige, was ich finden konnte, war this Toolkit, das seit 2002 nicht berührt wurde. Bevor ich mit meinem OS anfing, wollte ich sicherstellen, dass es kein neueres/besseres Toolkit gibt Hilfe bei der OS-Entwicklung (für x86 oder x86-64). Also, gibt es ein besseres Toolkit als das, und wenn ich diese Art von Toolkits verwende, welche Arten von Problemen könnte ich auf der Straße begegnen (die ich nicht in hätte ich hatte alle dreckige Arbeit selbst getan)?

+1

Was ist Ihr Ziel hier? Um zu lernen, wie man ein Betriebssystem baut? Der Aufbau eines Betriebssystems, ohne sich mit den Einzelheiten der Hardware auseinandersetzen zu wollen, erscheint mir auf den ersten Blick ein wenig widersprüchlich. Um das zu verdeutlichen, versuche ich nicht, entmutigen zu wollen, ich frage mich nur, was dein Ziel ist und ob es ein besseres Projekt geben könnte, als ein Betriebssystem zu entwickeln, das es erfüllt. –

+0

@Viny Pai: Mein Ziel ist es, die Systeme zu entwerfen, die mit der Interaktion von Programmen umgehen und dann alle Programme der unteren Ebene wie Netzwerktreiber und UI-Systeme schreiben, mit denen ich normalerweise nicht arbeiten würde Systeme. – Ponkadoodle

+0

warum nicht nur mit reactos oder einem linux disto herumspielen? – Necrolis

Antwort

2

Es gibt keine (guten) OS Toolkits; und ich bin mir nicht sicher, ob ein gutes OS-Toolkit irgendeinen praktischen Sinn ergeben würde (z. B. müsste es alle möglichen OS-Designs abdecken und nicht nur eines und wäre komplexer als jedes einzelne OS jemals sein könnte).

Die gute Nachricht ist, dass Sie wahrscheinlich sowieso kein Toolkit brauchen. Wenn Sie nicht vorhaben, Ihren eigenen Boot-Code zu schreiben (z. B. mit GRUB beginnen), ist die Menge an Assembly, die Sie benötigen, nicht sehr groß, und das meiste davon kann relativ einfach entnommen werden (z. B. http://wiki.osdev.org/Inline_Assembly/Examples).

Ich sollte Ihnen wahrscheinlich nicht die schlechten Nachrichten sagen; aber ein Scheduler ist ein kleiner Teil eines Kernels, und ein Kernel ist ein kleiner Teil eines Betriebssystems. Zum Beispiel könnte ein Scheduler 2000 Zeilen Code sein, aber Linux ist ungefähr 50 Millionen Zeilen Code, und wenn Sie Sachen wie Apache, X, Gnome/KDE, Mozilla usw. hinzufügen, können Sie sich vorstellen, wie viel Potenzial steckt für "grobkörnige Arbeit" könnte in einem ganzen Betriebssystem beteiligt sein ... :-)