Autor Thema: Fragen zum Speicher  (Gelesen 6760 mal)

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« am: 28. January 2006, 11:23 »
Hallo

1.)Ich weiss, dass solche Theards nicht gern gesehen werden. Aber ich kann einfach nirgends etwas zur Speicherbelgung des gesamten Speichers im PM und nur im PM finden. Denn alles was ich gefunden habe, wiederspricht sich wieder irgendwo.
Hat irgendjemand gute Links...???

2.)Wie kann ich ermitteln, wie gross der Speicher ist??

Danke schonmal
Nooooooooos

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 28. January 2006, 11:51 »
1.a) Also, und wo liegen die Speicherbereiche von der Grafik, des APIC der (dem,der) ACPI ?????

1.b) Und, ausser diesen 3 Dingen muss ich überhaupt rein garnichts beachten????

2.) Wie kann ich ermitteln, wie gross der Speicher ist??

Gruss
Noooooooos

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #2 am: 28. January 2006, 12:03 »
1.a) Ich muss also in den unteren 2GB nur auf den GrafikBuffer (0xB8000) achten. Ist das so richtig???

1.b) Ich benutz Paging, darum muss ich ja Plätze für die Pages finden. Solange ich den V86 nicht benutz oder nicht in den RealMode zurückschalten will, ist es doch Schnurzegal, was ich mit dem BIOS anstelle.

Gruss Noooooooos

n3Ro

  • Beiträge: 288
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 28. January 2006, 12:14 »
Hi,
im PM hat man immernoch alles genauso im Speicher rumliegen wie im RM, also ich wüsste auch nicht, wieso sich durch einschalten eines Schutzmechanismusses die Speicherbelegung ändern sollte. Also muss man von den gleichen Teilen des Speichers die Finger lassen! Bei allem was über der 1MB Grenze liegt wirds dann richtig interessant. Um sich ein ungefähres Bild davon zu verschaffen, sollte man sich die BIOS Memory Map besorgen (GRUB lädt sie dir, ansonsten ist es ein BIOS Call). Da steht dann genau drin, welchen Speicher man verwenden darf. Alles andere ist unsicher, weil es Speicherlöcher geben kann und alle Geräte IRGENDWO im Speicher anzutreffen sind (selbst die Addresse des APIC kann man umschießen). Wo dann die Geräte genau sind, kannst du bei PCI Karten aus deren Konfigurationsregistern auslesen.

hf
Agieren statt Konsumieren!

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #4 am: 28. January 2006, 12:28 »
A) Aber wenn ich das BIOS eigentlich nicht mehr brauchen will, kann ich doch diese Daten überschreiben???

B) Welcher BIOS Call wäre denn das??

C) Und auf die Daten des BIOS kann ich mich 1000 Promillig verlassen??


Gruss
Nooooooooos

n3Ro

  • Beiträge: 288
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 28. January 2006, 12:35 »
A) wenn du im Sommer keine Heizung brauchst, reißt du sie dann auch aus der Wand raus?
B) schau einfach mal hier (e820 ist der richtige): http://www.mega-tokyo.com/osfaq2/index.php/How%20do%20I%20determine%20the%20amount%20of%20RAM%3F
C) wenn Linux das kann, dann kannst du das auch ;-)
Agieren statt Konsumieren!

SSJ7Gohan

  • Beiträge: 398
    • Profil anzeigen
Gespeichert
« Antwort #6 am: 28. January 2006, 13:24 »
Soweit ich weiß, sind die oberen 20 MB der 4 GB für Memory Mapped Devices reserviert.
APIC kann man genauso wie Grafikkartenspeicher über MSRs und Grafikarten/VGA/was-auch-immer Register programmieren.

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 28. January 2006, 14:34 »
Also sollte nichts passieren, wenn ich über 1MB  und unter 2GB bleibe????

Geht das so???

SSJ7Gohan

  • Beiträge: 398
    • Profil anzeigen
Gespeichert
« Antwort #8 am: 28. January 2006, 15:12 »
Auf manchen Multiprozessorsystem kann es durchaus sein, dass der APIC an einer anderen Stelle ist. Die normale Addresse trifft nur auf einige Standardkonfigurationen zu, wobei aber fast kein System diesen Standardkonfigurationen entspricht. Standardkonfigurationen sind für Systeme, die IMMER 2 Prozessoren haben, also wo das Motherboard garkeine andere Prozessorenanzahl zuläst. Das ist bei keinem mir bekannten Desktop Prozessor/Motherboard so.

Und warum sollte man nur die häufigen Fälle beachten, wenn man mit ein wenig Mehraufwand ein OS hat, das den Intel Spezifikationen entspricht?

Osbios

  • Beiträge: 247
    • Profil anzeigen
Gespeichert
« Antwort #9 am: 28. January 2006, 19:44 »
Wenn hier schon einer zum osfaq linkt, dann kann er doch gleich alle relevanten sachen mit reinbringen:

Startseite der Wiki: http://www.mega-tokyo.com/osfaq2/

speziel zu Speicher: http://www.mega-tokyo.com/osfaq2/index.php/How%20do%20I%20determine%20the%20amount%20of%20RAM%3F

Da gibts z. B. sowas:

       start        end      size  region/exception       description

Low Memory (the first MiB)
     00000000 - 000003FF       400  RAM                    Real-Mode IVT (Interrupt Vector Table)
     00000400 - 000004FF       100  RAM                    BDA (BIOS data area)
     00000500 - 0009FBFF   ? 9F700  RAM/free for use       Conventional memory (<= 9F700 Byte)
     00007C00 - 00007DFF       200  RAM                    Operating System BootSector
     0009FC00 - 0009FFFF       400  RAM                    EBDA (Extended BIOS data area)
     000A0000 - 000FFFFF     60000  various                ROM Area (384 KiB)

    Standard usage of the ROM Area:
     000A0000 - 000BFFFF     20000  video RAM               VGA Mem (128 KiB)
     000A0000 - 000AFFFF     10000  video RAM                VGA framebuffer (64 KiB)
     000B0000 - 000B7FFF      8000  video RAM                text monochrom  (32 KiB)
     000B8000 - 000BFFFF      8000  video RAM                text color      (32 KiB)
     000C0000 - 000C7FFF      8000  ROM                     Video BIOS* (32 KiB is typical size)
     000F0000 - 000FFFFF     10000  ROM                     Motherboard BIOS* (64 KiB is typical size)

High Memory (everything after the first MiB)
     00100000 - FEBFFFFF  FEB00000  RAM?/free for use?     Extended memory
     01000000 - 010FFFFF    100000  ?                       ISA 15-16MB (only with ISA bus?)
     FEC00000 - FFFFFFFF   1400000  various                PnP NVRAM?, LAPIC, ...



Und nicht vergessen die a20 ein zu schalten!
db 0x55AA

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #10 am: 28. January 2006, 20:03 »
Braucht mann denn das A20 auch im PM???

n3Ro

  • Beiträge: 288
    • Profil anzeigen
Gespeichert
« Antwort #11 am: 28. January 2006, 20:16 »
Türlich braucht man die, zumindest muss es angeschaltet sein.
Zitat von: Osbios
Wenn hier schon einer zum osfaq linkt, dann kann er doch gleich alle relevanten sachen mit reinbringen

Tja, ich dachte im Internetzeitalter sollte schon jeder selbst in der Lage sein Links zu folgen und die wichtigsten Infos auf Seiten zu finden, davon abgesehen dass jeder das OSFAQ kennen müsste/sollte ^^
Agieren statt Konsumieren!

Osbios

  • Beiträge: 247
    • Profil anzeigen
Gespeichert
« Antwort #12 am: 28. January 2006, 20:38 »
Zitat von: nooooooooos
Braucht mann denn das A20 auch im PM???

http://www.mega-tokyo.com/osfaq2/index.php/Why%20cant%20I%20access%20all%20my%20memory%3F

^^
db 0x55AA

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #13 am: 31. January 2006, 17:29 »
Also, wenn ich jetzt diese Map vom Bios geladen habe, wie lese ich jetzt daraus, wo ich welchen Speicher benutzen darf???

Und oder, das 1. MB ist sowiso vom Bios belegt???


Gruss
Noooooooos

Osbios

  • Beiträge: 247
    • Profil anzeigen
Gespeichert
« Antwort #14 am: 31. January 2006, 17:50 »
Lies die Tabelle, die ich oben gepostet habe.
Beim ersten MB ist nur der Bereich von 00000500 bis 0009FBFF frei benuzbar. Dieser Bereich kann unter Umständen etwas kleiner sein auch wenn der PC mehr als 1 MB Speicher hat!

Alles über 1 MB kann/muss über die genannten BIOS Funktionen ermittelt werden! Wie diese zu benuzen sind kannst Du im INet nachschlagen.
db 0x55AA

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #15 am: 31. January 2006, 18:00 »
Unter welchen Umständen ist der Freie Bereich im 1. MB etwas kleiner und wie überprüft man solche Umstände???

Gruss
Nooooooos

Osbios

  • Beiträge: 247
    • Profil anzeigen
Gespeichert
« Antwort #16 am: 31. January 2006, 18:21 »
Kann es sein, dass brainsware.org die einzige Domain ist, die bei deinem Internetzugang freigeschaltet ist?

Kurze Antwort: int 12h un dann in AX, oder direkt aus der Speicheradresse dw 0x413.

Mehr dazu z.B. hier: http://www.mega-tokyo.com/osfaq2/index.php/How%20do%20I%20determine%20the%20amount%20of%20RAM%3F
Und jetzt lies doch mal selber! plz  :roll:

[edit]Warum bei manchen Systemen weniger als 640 KiB im unterem Speicherbereich zur Verfügung stehen kann ich dier leider nicht sagen.[/edit]
db 0x55AA

nooooooooos

  • Beiträge: 734
    • Profil anzeigen
Gespeichert
« Antwort #17 am: 31. January 2006, 20:12 »
Sorry, aber ich kann nicht so gut Englisch (vor allem nicht technisch). Und gute deutsche Infos, findet man praktisch nur auf brainsware.org.

Kann mir mal kurz jemand in ein paar Sätzen erklären, wie diese Tabelle inetwa aufgebaut ist????

Gruss
Nooooooooos

 

Einloggen