Wow, ging ja schnell. Muss mal wieder updatenDirtyOerti hat geschrieben:(Revision 49)
Paging - Realisierung
Re: Paging - Realisierung
- Dirty Oerti
- Beiträge: 2229
- Registriert: Di Jul 08, 2008 5:05 pm
- Wohnort: Thurndorf / Würzburg
Re: Paging - Realisierung
Gab in letzter Zeit einige kleinere Änderungendani93 hat geschrieben:Wow, ging ja schnell. Muss mal wieder updatenDirtyOerti hat geschrieben:(Revision 49)
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
Re: Paging - Realisierung
Ja, das sollte so passen.Dirty Oerti hat geschrieben:Ich habe Code eingebaut, der den TLB invalidieren müsste, wenn bei einem PageFault eine neue Page gesetzt wird.
"Müsste", weil ich keine Ahnung habe, wie ich das überprüfen könnte.
Überprüfen kannst du das nur, indem du eine schonmal gemappte Page wieder rausnimmst und an eine andere Adresse mapst. Auf einem realen Rechner müßtest du aus einem Speicherzugriff auf diese Page dann rauskriegen, von welcher physischen Adresse du gelesen hast. In qemu kannst du info tlb im Monitor benutzen.
- Dirty Oerti
- Beiträge: 2229
- Registriert: Di Jul 08, 2008 5:05 pm
- Wohnort: Thurndorf / Würzburg
Re: Paging - Realisierung
Problem dabei ist, dass mir noch die Funktionen fehlen, um so etwas zu realisieren.taljeth hat geschrieben:Ja, das sollte so passen.Dirty Oerti hat geschrieben:Ich habe Code eingebaut, der den TLB invalidieren müsste, wenn bei einem PageFault eine neue Page gesetzt wird.
"Müsste", weil ich keine Ahnung habe, wie ich das überprüfen könnte.
Überprüfen kannst du das nur, indem du eine schonmal gemappte Page wieder rausnimmst und an eine andere Adresse mapst. Auf einem realen Rechner müßtest du aus einem Speicherzugriff auf diese Page dann rauskriegen, von welcher physischen Adresse du gelesen hast. In qemu kannst du info tlb im Monitor benutzen.
Also nicht fehlen..ich habe nur noch keine Wrapperfunktion geschrieben, um das zu automatisieren. (Mappen von VirtAd auf physAd)
qemu benutze ich nicht...ich arbeite mit bochs. Das einzige, was mir dort irgendwie fehlt, ist der debuger?
Unter Windows scheint man eine bochsdbg.exe mitzubekommen, die bochs im Debugmodus aufruft.
Weißt du, wie das unter Linux geht?
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
Re: Paging - Realisierung
Die Distributionen liefern bochs meistens ohne Debugger aus. Also Source selber ziehen und den passenden Parameter an ./configure übergeben. Das ist dann aber keine eigene Binary, soweit ich weiß, sondern integriert.Dirty Oerti hat geschrieben:qemu benutze ich nicht...ich arbeite mit bochs. Das einzige, was mir dort irgendwie fehlt, ist der debuger?
Unter Windows scheint man eine bochsdbg.exe mitzubekommen, die bochs im Debugmodus aufruft.
Weißt du, wie das unter Linux geht?
Frag mich nicht nach Details, bochs benutze ich selten. Bei qemu kenne ich dagegen sogar den Source relativ gut.
- Dirty Oerti
- Beiträge: 2229
- Registriert: Di Jul 08, 2008 5:05 pm
- Wohnort: Thurndorf / Würzburg
Re: Paging - Realisierung
Hatte das damals selbst kompiliert...mal schauen, vllcht kompilier ichs einfach mal neu..taljeth hat geschrieben:Die Distributionen liefern bochs meistens ohne Debugger aus. Also Source selber ziehen und den passenden Parameter an ./configure übergeben. Das ist dann aber keine eigene Binary, soweit ich weiß, sondern integriert.Dirty Oerti hat geschrieben:qemu benutze ich nicht...ich arbeite mit bochs. Das einzige, was mir dort irgendwie fehlt, ist der debuger?
Unter Windows scheint man eine bochsdbg.exe mitzubekommen, die bochs im Debugmodus aufruft.
Weißt du, wie das unter Linux geht?
Frag mich nicht nach Details, bochs benutze ich selten. Bei qemu kenne ich dagegen sogar den Source relativ gut.
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
- Dirty Oerti
- Beiträge: 2229
- Registriert: Di Jul 08, 2008 5:05 pm
- Wohnort: Thurndorf / Würzburg
Re: Paging - Realisierung
Hmpf.
Versuche mich gerade daran, ein neues PageDirectory zu erstellen.
Irgendwie will das aber nicht so recht...
Und ich raff nicht warum...naja, vllcht morgen.
Ich lese (Paging ist dazu aus) aus dem KernelDirectory die Einträge für die PageTables aus, und schreibe diesen Wert an die Stelle in neuen Directory.
Eigentlich müsste ich so doch den Zeiger auf die PageTable aus dem Kerneldirectory ins Neue Directory kopieren.
Nur den Zeiger, ich sehe keinen Grund, das ganze PageTable neu zu schreiben.
Komischerweise wir irgendwie zu wenig kopiert....viel zu wenig.
Dann stürzt danach alles ab (GDT, Heap, etc fehlt..)
*Sich wunder, aber erstmal Schlaf hol*
Versuche mich gerade daran, ein neues PageDirectory zu erstellen.
Irgendwie will das aber nicht so recht...
Und ich raff nicht warum...naja, vllcht morgen.
Ich lese (Paging ist dazu aus) aus dem KernelDirectory die Einträge für die PageTables aus, und schreibe diesen Wert an die Stelle in neuen Directory.
Eigentlich müsste ich so doch den Zeiger auf die PageTable aus dem Kerneldirectory ins Neue Directory kopieren.
Nur den Zeiger, ich sehe keinen Grund, das ganze PageTable neu zu schreiben.
Komischerweise wir irgendwie zu wenig kopiert....viel zu wenig.
Dann stürzt danach alles ab (GDT, Heap, etc fehlt..)
*Sich wunder, aber erstmal Schlaf hol*
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.