Arbeitsspeicher-Größe herausfinden



  • Hallo,
    über welche I/O Ports oder auf welchem Weg kann man im protected-mode die größe des Arbeitsspeichers ermitteln? 😕 Vielen Danke!



  • Hi.

    Mit Ports und so haengt stark vom verwendeten Chipset ab.
    Um entsprechende Whitepapers darfst du dich selbst kuemmern -> gute Jagd. 😃
    (Vielleicht findet sich ja im Linux-Kernel was...)

    Mein Vorschlag: RealMode/V86-Callback auf int 15h, Funktion C7h und weitere (dort genannte). Wie du das im Detail anstellst, sei in deinem OS-Projekt dir ueberlassen.



  • Ich hab mal ein snippet gesehen, in dem eine Zahl an eine Stelle im Arbeitspeicher geschrieben und dann wieder ausgelesen wurde. Wenns nicht stimmt ist dort kein Arbeitsspeicher mehr. (Hat jetzt aber nix mit ports zu tun...)



  • Ein solches Vorgehen solltest du wenn ueberhaupt als aller letztes Mittel hernehmen, um die Grenzen des Speichers auszuloten. Diese Methode ist 1. unnoetig langsam und 2. unsicher, da du zB. irgendwo auf memory holes oder auf zu anderer Hardware gemapte Bereiche treffen koenntest (als Beispiel zB. Hole@15MB, FrameBuffer und BIOS-Shadows).



  • Hallo,
    Versuch mal
    Interrupt 15h, Funktion 88h
    Ermittelt die Speichergröße über 1MByte.

    Eingabe AH = 88h
    Rückgabe AX = Größe des Speichers in KByte
    (Real Mode)


Anmelden zum Antworten