Weil ich kann.
Eine gute Zeit zu haben ist mein Laufwerk für dieses Projekt + Ich lerne viel coole, niedrige Sachen daneben!
Der Cavos -Kernel ist ein monolithisches x86_64, der hier und da in relativ einfachem C mit ein paar Teilen der Intel -Baugruppe geschrieben wurde. Es verwendet den Limin -Bootloader und nutzt das Fat32 -Dateisystem zum Booten zusammen mit Ext2 für die Stammpartition. Ich versuche, die Codestruktur sauber und ziemlich leicht zu verstehen, während ich zu viel Abstraktion vermeidet. Daher werden Codequalität und Klarheit manchmal vor Leistungsgewinnen priorisiert.
UserSpace ist damals mein Hauptaugenmerk, wobei der Kernel ziemlich stabil ist. Ich versuche, dieses Betriebssystem so nah wie möglich an Linux zu machen, und füge meine eigenen Sachen darüber hinzu. Dies ist mit den Systemaufrufen sichtbar, die genau wie Linux sind. Das ist nicht zufällig, ich möchte, dass Cavos so binär kompatibel wie möglich ist!
NEIN! Der Cavos -Kernel hat keinen Quellcode oder Header mit Linux frei. Der Linux -Quellcode wird während der Assembly der Benutzerspanne gezogen, jedoch nur, weil einige Programme von Drittanbietern (portierte) Programme von seinen Headern abhängen. Selbst dann wird kein tatsächlicher Code geteilt.
Es ist wichtig, diese Ziele zu erwähnen, dass es möglicherweise nie erfüllt sein kann. Es dauert sehr lange, bis es fertig ist (wir sprechen Jahre später) oder werden möglicherweise überhaupt nie getan. Darüber hinaus enthält diese Liste nicht jede implementierte oder geplante Funktion und kann jederzeit geändert werden ...
systemcall Alles daran ist bei Install.md zu finden. Weitere Informationen zum korrekten Erstellen des Betriebssystems, zur Reinigung unbenutzter Binärdateien und anderer Dinge.
Samstag, 2. März 2024. Durch viele Problemumgehungen, "schlechte" Entscheidungen und eine überhebliche "Just-Works" -Mentalität hatte ich einen rein x86 (32-Bit) -Kernel zusammengestellt, der unauffällig Uferspace-Anwendungen anfeuern könnte. Immer noch an alten Code festgehalten (von hinten, wenn ich kaum einfache Konzepte verstand, wie beispielsweise Paging), veraltete Bibliotheken und viele andere Dinge. Es hat manchmal funktioniert, aber ich war nicht zufrieden.
17:00 Uhr; An diesem Nachmittag habe ich beschlossen, einen langen Prozess zu starten, in dem alles in die X86_64 -Architektur migriert und zahlreiche Zuverlässigkeitsprobleme ausgebügte, die für die tatsächlichen Albträume zum Debuggen geführt haben. Ich habe im Grunde genommen einen bestimmten Punkt erreicht, um zu verstehen, dass Quick & Dity -Lösungen nur zu völlig vermeidbaren Fehlern führen, die nach enormen Abstraktionsmengen extrem schwer zu bestimmen waren.
Dieses Projekt ist gemäß GPL V3 (GNU General Public Lizenz v3.0) lizenziert. Weitere Informationen finden Sie in der Lizenzdatei.