Определение количества физической памяти

Модератор: Модераторы разделов

Serg79
Сообщения: 153

Определение количества физической памяти

Сообщение Serg79 »

Даже не знаю в какой раздел поместить данную тему. Вот решил сюда.

Тут такой вопрос, как мне определить количество установленной физической памяти на машине?

Считывание значения по адресу (в реальном режиме) 0040:0016 (сильно не пинайте, сейчас точно не помню точный адрес, по этому могу и ошибаться) слова, у меня на машине показывает 614 Кбайт, что соответственно не правда. Хотя BIOS как то определяет размер физической памяти. Может кто знает, по какому адресу он размещает данное значение.
Спасибо сказали:
Аватара пользователя
Voice
Сообщения: 1073
Статус: столлманист
ОС: Debian GNU/Linux

Re: Определение количества физической памяти

Сообщение Voice »

Код: Выделить всё

[user@ucr1 ~] $ cat /proc/meminfo
MemTotal:       508436 kB
MemFree:          7984 kB
Buffers:         73848 kB
Cached:         217020 kB
SwapCached:         48 kB
Active:         305620 kB
Inactive:       145372 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:       508436 kB
LowFree:          7984 kB
SwapTotal:     2104472 kB
SwapFree:      2104424 kB
Dirty:              28 kB
Writeback:           0 kB
Mapped:         239800 kB
Slab:            36324 kB
CommitLimit:   2358688 kB
Committed_AS:   507976 kB
PageTables:       2116 kB
VmallocTotal:   516088 kB
VmallocUsed:     13880 kB
VmallocChunk:   499520 kB
HugePages_Total:     0
HugePages_Free:      0
HugePages_Rsvd:      0
Hugepagesize:     4096 kB
[user@ucr1 ~] $


А, стоп. Вам в реальном режиме?
Поищите на форуме osdev.org, там такие вопросы решают.
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
Спасибо сказали:
Аватара пользователя
Zeus
Сообщения: 694

Re: Определение количества физической памяти

Сообщение Zeus »

А что, количество физической памяти может изменяться в реальном режиме?
Спасибо сказали:
Serg79
Сообщения: 153

Re: Определение количества физической памяти

Сообщение Serg79 »

Zeus писал(а):
02.05.2007 11:13
А что, количество физической памяти может изменяться в реальном режиме?

Что значит "может изменяться"? Что то я Ваш вопрос не пойму.
Спасибо сказали:
Аватара пользователя
red_dragon
Сообщения: 435
Статус: Ленивый энтузиаст
ОС: F12 x86_64

Re: Определение количества физической памяти

Сообщение red_dragon »

Serg79 писал(а):
02.05.2007 11:17
Что значит "может изменяться"? Что то я Ваш вопрос не пойму.

Видимо Zeus не совсем понял(или не знает), что такое "реальный режим".
|^^^^^^^^^^^|______
|_____ПИВО_____|','''|'''''''''\____,,
|_______________| _|'____|____|
*'(@)'(@)'''''''|(@)(@)******|(@)*
Спасибо сказали:
Аватара пользователя
Zeus
Сообщения: 694

Re: Определение количества физической памяти

Сообщение Zeus »

А-а, блин, вы вон об чём!
Я-то подумал, что в процессе работы системы :laugh:
Спасибо сказали:
Serg79
Сообщения: 153

Re: Определение количества физической памяти

Сообщение Serg79 »

Мне тут подсказали, что можно просканировать всю физическую память и вычислить ее размер, что то типа такого:

Код: Выделить всё

/* отправляем в память тестовое значение */
xchgl %eax, (%edi)
/* получаем его обратно */
xchgl (%edi), %eax
/* если значение изменилось, значит память закончилась */

Мне вот интересно, как BIOS определяет доступную физическую память, а также память выделенную под графический видеоадаптер? При старте машины он все эти значения высвечивает на консоле. А также он должен где то сохранить эти данные, вот только где он их сохраняет я не знаю.
Спасибо сказали:
Аватара пользователя
ddc
Бывший модератор
Сообщения: 3535
Статус: OpenBSD-compatible
ОС: OpenBSD -current

Re: Определение количества физической памяти

Сообщение ddc »

Zeus, количество физической памяти может меняться во время работы. На особом железе. Можно поковыряться в опциях Linux (ядра), там включается поддержка этого.
Спасибо сказали: