Autor Thema: RAM auslesen bis 4GB  (Gelesen 4022 mal)

YoshiX650

  • Gast
Gespeichert
« am: 12. May 2014, 13:33 »
Hallo,
ich möchte den RAM auslesen, aber max. nur 4GB.
Wie macht man das am besten? Bei Google finde ich nur sowas mit der WinAPI

LG

Jidder

  • Administrator
  • Beiträge: 1 623
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 12. May 2014, 14:03 »
Warum die Einschränkung auf 4 GB? Was hast du vor?
Dieser Text wird unter jedem Beitrag angezeigt.

YoshiX650

  • Gast
Gespeichert
« Antwort #2 am: 12. May 2014, 17:20 »
Weil 32-Bit doch nur bis 4GB RAM unterstützt und erst ab 64-Bit mehr als 4GB möglich sind...

Jidder

  • Administrator
  • Beiträge: 1 623
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 12. May 2014, 17:54 »
Um die Frage direkt zu beantworten: In C könnte man den gesamten Adressraum wie folgt auslesen:
unsigned char *p = (unsigned char *)0; // Bei Adresse 0 anfangen.
do {
     unsigned char b = *p;             // Byte Auslesen

     // Hier byte verarbeiten

     p++;                              // Zur nächsten Adresse gehen
} while (p != 0);                      // Wenn wir wieder am Anfang sind, sind wir fertig.

Falls dir diese Antwort komisch vorkommt, liegt das daran, dass ich immer noch nicht weiß, was du vorhast.
Dieser Text wird unter jedem Beitrag angezeigt.

YoshiX650

  • Gast
Gespeichert
« Antwort #4 am: 12. May 2014, 18:57 »
Ich möchte mit der Speicherverwaltung anfangen und müsste deshalb wissen wie viel RAM am start ist.

Jidder

  • Administrator
  • Beiträge: 1 623
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 12. May 2014, 19:15 »
Das wirst du auf (modernen x86-Systemen) durch einfaches Auslesen (Probing) des physischen Adressraums nicht herausbekommen. Da befindet sich nämlich nicht nur der RAM, sondern auch andere Hardwaregeräte sind direkt darüber ansprechbar. Außerdem hat der Speicher Lücken. Im besten Fall kriegst durch so eine Methode falsche Angaben, im schlimmsten Fall verstellst du etwas an der Grafikkarte.

Die Informationen über den Arbeitsspeicher stellt das BIOS bereit. Wenn du Multiboot nutzt, bekommst du diese Information ganz einfach heraus. Dazu steht auch einiges in unserem Wiki: http://www.lowlevel.eu/wiki/Teil_7_-_Physische_Speicherverwaltung
Dieser Text wird unter jedem Beitrag angezeigt.

Svenska

  • Beiträge: 1 778
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 13. May 2014, 02:06 »
Weil 32-Bit doch nur bis 4GB RAM unterstützt und erst ab 64-Bit mehr als 4GB möglich sind...
PAE ermöglicht es auch auf 32-Bit-Prozessoren, mehr als 4 GB RAM zu benutzen. Die Multiboot-Informationen (oder das BIOS) können daher auch mehr als 4 GB RAM mitteilen. Ein 32-Bit-Windows mit Standardeinstellungen benutzt PAE allerdings nicht.

 

Einloggen