Autor Thema: Speicher Management  (Gelesen 3936 mal)

bsunisol

  • Beiträge: 19
    • Profil anzeigen
Gespeichert
« am: 30. March 2006, 18:48 »
Hi leute,
ich bin jetzt mit ein par Kumpels dran auch ein (weiteres) OS zu coden.

Was ich bis jetzt noch aus keinem Tutorial verstanden hab ist, was es mit dem Sprung in den PM auf sich hat und wie man einen C Kernel einbindet. Mein DJGPP macht irgendwie keine reinen Binärdaten.
Gut das hätte noch zeit. man kann ja erst die Funktionen schreiben und dann alles einbinden.

Worum es mir jetz in erster Linie geht ist das Thema Speichermangement. Wie würdet ihr einen Speichermanager schreiben? Und, was man dazu noch braucht: Wie finde ich die RAM-Größe raus? Er muss ja schließlich wissen wieviel Speicher er verwalten muss/darf.

Danke im Voraus
Uni_Sol

maumo

  • Beiträge: 182
    • Profil anzeigen
    • http://maumo.50webs.com/
Gespeichert
« Antwort #1 am: 30. March 2006, 19:54 »
beim booten befindet sich der prozessor im sogenannten "real mode", der
kompatibel zu dem 8086 ist. darin ist die größe der register halt nur 16 bit und deshalb der maximal nutzbare speicher 1 MByte. ausserdem ist keine privileg prüfung vorhanden, sodass alle programme sich gegenseitig beeinflussen könnten. virtueller speicher ist auch nicht möglich (oder sagen wir paging ist nicht möglicht...)

der pmode ist mit 80286 eingeführt worden und wenn der prozessor sich in diesem modus befindet, rechnet er in 32 bit, kann maximal 4 gb arbeitspeicher ansprechen und hat viele (sehr viele) schutzmechanismen. ein einzelner befehl (opcode) hat dan auch die größe von 4byte.

wenn du von anfang an im pmode sein willst (der sprung hinein gelinkt NIEMANDEM auf anhieb) benutze doch GRUB, der kann verschiedene dateisysteme und dateiformate behandeln

maumo

bsunisol

  • Beiträge: 19
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 30. March 2006, 21:22 »
wozu??? entweder mache ich es selber oder nicht. und wir wollen alles selber machen

ja was der pm ist weis ich auch-nur nicht wie man ihn nutzt

scales of justice

  • Beiträge: 228
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 30. March 2006, 21:41 »
dann lies dir mal das Protected Mode Tutorial von Tee-Jay durch (www.jay-code.de)
und sonst wirst du das mit Tutorials (vondenen es reichlich gibt, wer suchet der findet) viel besser verstehen, als hier im Forum

nore

  • Beiträge: 76
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 31. March 2006, 13:00 »
ich kann dazu auch noch dieses tutorial empfehlen:

http://www.fh-zwickau.de/doc/prmo/pmtutor/text/index.htm

es ist immer besser, wenn man manche sachen aus mehreren quellen liest. das prägt sich mehr ein.

bbl

  • Beiträge: 13
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 31. March 2006, 17:58 »
Zitat von: maumo
beim booten befindet sich der prozessor im sogenannten "real mode", der
kompatibel zu dem 8086 ist. darin ist die größe der register halt nur 16 bit


Die General Purpose Register(GPRs) sind auch schon im Real Mode 32 bit, nur ist die Standardregistergröße 16bit (für die Kompatibilität). Man muss bloß Opcode-Prefixe verwenden - ein Assembler sollte das automatisch machen, man kann da genauso 32bit GPRs verwenden wie im Protected Mode.

 

Einloggen