9
« am: 07. July 2013, 12:43 »
Hallo Zusammen
Ich schreibe gerade an meinem eigenen OS.
Ich habe schon viele Probleme gelöst, nur bei einem komme ich nicht weiter:
Wo soll ich den Kernel und alle seine Datenstrukturen im Ram platzieren?
Bisher habe ich den Kernel einfach an der Stelle gelassen, wo Grub ihn mir standartmässig hinlädt, bei 0x100000.
Nun suche ich einen besseren Ort für ihn.
Das wichtigste ist, dass
Er nicht an einem Ort ist, wo ein Gerät seine Register eingeblendet hat. Das heisst alle Orte an denen Geräte irgendwas in den Ram einblenden, kommen nicht in Frage(ausser die Adresse lässt sich ändern)
Ich möchte den Kernel, sowie alle seine Datenstrukturen in zusammenhängenden Pages haben, so dass ich sie einfach mappen kann. Am besten sie sind in den selben 4MB(solange mein Kernel und seine Datenstrukturen noch klein genug sind sind, später in den selben 8MB usw) so dass ich ganze Pagedirectories mappen kann.
Der Kernel soll physikalisch und virtuell am selben Ort sein, denn das macht mir die Sache viel einfacher.
Gewisse Programme/Bibliotheken möchten vllt dort sein wo mein Kernel ist. Mein OS sollte irgenwann(In sehr ferner Zukunft) auch Windows und Linux Programme ausführen können. Diese haben vermutlich Lieblingsadressen/Reservierte Adressen.
Könnt ihr mir sagen wo ich den Kernel unter den oben genannten Kriterien eher ansiedeln soll und wo auf keinen Fall?
Wo sind eure Kernel?
Lg Timon