Also komplett bei weitem nicht
Mein Kernel hat gerade mal ein paar Strukturen für Multitasking die jedoch aufgrund des fehlenden Schedulers und der fehlenden Speicherverwaltung im Moment etwa mit einem Blinddarm vergleichbar sind. Haben also keine Funktion, machen aber gerne Probleme
Kernelprogrammierung ist Anfangs (gerade wenn man einen Multiboot kernel baut, danke GNU <3) gar nicht so schwer - man programmiert ohne jegliche Libraries und daher weiss man dass wenn etwas nicht funktioniert meistens man selbst die Schuld tragen muss.
Sobald es jedoch zum eigentlichen OS-Design geht (d.h. Paging, Multitasking etc.) fragt man sich was die Typen die x86 verbrochen haben geraucht haben.
Gute Ressourcen sind osdev.org und lowlevel.eu, auch wenn nicht unbedingt benötigt rate ich dir zu einer Linux Distri (Vorzugsweise NICHT Ubuntu, die haben da einiges kaputt gemacht). Entwicklung unter Windows geht, aber all die verbuggten Portierungen der uralt-gcc-versionen sind sehr mühsam zum laufen zu kriegen. (Einige werden mir da widersprechen, aber wenn man sich erst mal mit Linux vertraut gemacht hat kann man sich da sehr sehr wohl fühlen
)
Mein Kernel kann im Moment leider fast nichts, wirklich. Er kann Interrupts abfangen und einfache Exceptions, welche unweigerlich zu einem beenden des Kernels führen
Ausserdem ist eine etwas unvollständige Variante von printf implementiert (mit Farbe, yay!) welche auch Integer als Dezimalzahl ausgeben kann. Es wird auch erkannt ob eine Tastatur (PS/2 oder USB Legacy) angeschlossen ist, aber aufgrund des fehlenden Multitaskings gibt es keine Treiber dafür
Der PIT wird ebenfalls auf eine Frequenz von 100Hz geschaltet und löst damit alle 10 Millisekunden einen IRQ aus, damit kann ich dann später mal Tasks schlafen lassen.
Das ganze OS besteht mangels Zeit fast nur aus Konzepten welche ich leider zu faul bin umzusetzen. Wie man vielleicht merkt sind Teile des Makefiles, start.S und ein paar IDT/GDT Sachen von lowlevel geliehen, lag aber eher daran dass gerade bei der IDT und GDT man so wie so nichts anders machen kann, da gerade die GDT heute das meiste ihrer ursprünglichen Funktion weitgehend verloren hat.
Assembler konnte ich vorher auch keinen, nun weiss ich wenigstens einige Grundlagen.
Wie du viellleicht am Commit-Log erkennst wurde da seit einigen Monaten nichts mehr gross gemacht.
Inwiefern erweitern sich deine Applikationen denn selbst? Das interessiert mich, hat es eine Art malkov-Kette die aus früheren Aktionen neue vorhersagt?