Ok, jetzt habe ich das verstanden:
Ja, das ist so. Bei der Inialisierung des Paging wird der Kernel-Code als reserviert in das Paging-Directory "kernel_directory" eingetragen. Davon wird ein Clone erzeugt und in "current_directory" eingetragen. Alle neuen Tasks linken das Kernel-Directory in ihren Adressraum und erzeugen einen für sie privaten Stack, bei dem alles aus current_directory gecloned wird, was <nicht> kernel_directory ist. So habe ich es aus dem Tutorial übernommen. Das ist prinzipiell auch das, was im LowLevel-Wiki zum Thema Multitasking umgesetzt werden sollte.
Grundsätzlich unterscheidet sich nur der Code, das Prinzip scheint für mich das gleiche zu sein.
Hier mal ein schönes Bild dazu (ich hoffe, ich darf das verlinken):
Warscheinlich habe ich irgendwo unachtsam Code übernommen, ohne darüber nachzudenken. Ich mach es jetzt so:
Ich stelle mein Backup vor der Implementierung des Multitasking wieder her (der lief mit Paging nämlich) und fange dort noch mal an. Grundsätzlich hätte mich trotzdem interessiert, was ich falsch gemacht habe.
Zum eigentlichen Thema des Threads:
Leider bin ich bei der Implementierung des Auslesens der Symbol-Tabelle noch nicht weiter gekommen, ist wohl noch etwas zu früh, da fehlt mir noch das entscheidende Wissen. Ich werde das aber noch versuchen umzusetzen. Wenn ich erfolgreich war, möchte ich den Code gern allen interessierten zur Verfügung stellen. Vielen Dank erstmal für eure Geduld einem Newbie gegenüber
Grüße