OSDev
http://osdev.su/

карта памяти
http://osdev.su/viewtopic.php?f=5&t=832
Страница 1 из 2

Автор:  Мотороллер [ 01 дек 2013, 12:44 ]
Заголовок сообщения:  карта памяти

через функцию 0E820h int 15h выудил карту памяти. там есть участки с типом "зарезервирован". что сие обозначает? плохо если я буду их юзать под свои цели?

Автор:  SII [ 01 дек 2013, 12:51 ]
Заголовок сообщения:  Re: карта памяти

В спецификации ACPI ясно сказано: зарезервированные области программа (ОС) использовать не должна.

Автор:  Himik [ 01 дек 2013, 13:07 ]
Заголовок сообщения:  Re: карта памяти

Это означает, что эти участки памяти заняты какими-то устройствами и самим BIOS. Ни чего страшного - если просуммировать доступные участки памяти, то в сумме получится размер установленной физический памяти.

Автор:  Мотороллер [ 01 дек 2013, 13:33 ]
Заголовок сообщения:  Re: карта памяти

выудил из-под борща:
Код:
base        size       type
0             9F00        1
9F00        1000        2
E8000       18000       2
100000     1FEF0000  1
1FFF0000  10000       3
FFFC0000  40000       2


в сумме свободной памяти получается 510 мб, что соответствует правде, (в борще установил 512 мб памяти).
НО! тут по ходу дыры в памяти... ибо: 9F00+1000=AF00 != E8000. как сие понимать?

Автор:  Мотороллер [ 01 дек 2013, 13:38 ]
Заголовок сообщения:  Re: карта памяти

судя по результатам под физическому адресу 0 можно свободно писать что угодно? т.е. я после перехода в PM могу свободно разместить по адресу 0 GDT?

Автор:  Himik [ 01 дек 2013, 13:43 ]
Заголовок сообщения:  Re: карта памяти

Ознакомься с распределением основной памяти, возьми любой справочник, увидишь чем занята память в первом мегабайте. После A0000 идёт видеопамять.
В защищённом режиме BIOS не работает, поэтому память с 0 может быть использована как угодно.

Автор:  dixie [ 01 дек 2013, 13:48 ]
Заголовок сообщения:  Re: карта памяти

Конечно можешь... ;) Ведь таблица прерываний реального режима, которая там лежит - тебе точно не нужна... Ну зачем она?
Цитата:
В защищённом режиме BIOS не работает, поэтому память с 0 может быть использована как угодно.
Ну да... осталось узнать - как он будет USB клаву, эмулируемую через int 16h читать....

Автор:  Himik [ 01 дек 2013, 13:54 ]
Заголовок сообщения:  Re: карта памяти

dixie писал(а):
Ну да... осталось узнать - как он будет USB клаву, эмулируемую через int 16h читать....

int 16h работает только в реальном режиме, поэтому она ему не пригодится.
Я не в курсе, но разве USB-клавиатура эмулируется только через int 16h?

Автор:  dixie [ 01 дек 2013, 13:57 ]
Заголовок сообщения:  Re: карта памяти

Himik писал(а):
Никак не будет, потому что int 16h тоже работает только в реальном режиме.
Ну, тогда, наверно - это очень хороший совет - обнулить нафиг таблицу прерываний, чтобы остаться без возможности ходить в реальный и звать int 10h/13h/16h - как минимум...
Не очень-то похоже, что у него уже есть свой драйвер vga на уровне портов/sata/usb+hid, ага?

Автор:  SII [ 01 дек 2013, 14:07 ]
Заголовок сообщения:  Re: карта памяти

Карта памяти, возвращаемая ACPI, не описывает память ниже 1 Мбайта. Там распределение памяти стандартное, наследуемое ещё от древних ПК: нижние адреса заняты таблицей векторов реального режима и областью данных BIOS, старшие адреса у границы 640 Кбайт также заняты BIOS, поэтому писать в них нельзя: надо сначала спросить у BIOS объём "нижней" памяти -- он окажется не 640 Кбайт, а несколько ниже: именно таким путём BIOS "откусывает" эти адреса под собственные нужды. Вообще, всё это описывалось мной на нашей википедии.

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/