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/ |