OSDev

для всех
Текущее время: 19 окт 2019, 17:42

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 12 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: карта памяти
СообщениеДобавлено: 01 дек 2013, 12:44 

Зарегистрирован: 17 окт 2013, 18:45
Сообщения: 23
через функцию 0E820h int 15h выудил карту памяти. там есть участки с типом "зарезервирован". что сие обозначает? плохо если я буду их юзать под свои цели?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: карта памяти
СообщениеДобавлено: 01 дек 2013, 12:51 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1389
В спецификации ACPI ясно сказано: зарезервированные области программа (ОС) использовать не должна.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: карта памяти
СообщениеДобавлено: 01 дек 2013, 13:07 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1091
Откуда: Балаково
Это означает, что эти участки памяти заняты какими-то устройствами и самим BIOS. Ни чего страшного - если просуммировать доступные участки памяти, то в сумме получится размер установленной физический памяти.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: карта памяти
СообщениеДобавлено: 01 дек 2013, 13:33 

Зарегистрирован: 17 окт 2013, 18:45
Сообщения: 23
выудил из-под борща:
Код:
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. как сие понимать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: карта памяти
СообщениеДобавлено: 01 дек 2013, 13:38 

Зарегистрирован: 17 окт 2013, 18:45
Сообщения: 23
судя по результатам под физическому адресу 0 можно свободно писать что угодно? т.е. я после перехода в PM могу свободно разместить по адресу 0 GDT?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: карта памяти
СообщениеДобавлено: 01 дек 2013, 13:43 

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: карта памяти
СообщениеДобавлено: 01 дек 2013, 13:48 

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: карта памяти
СообщениеДобавлено: 01 дек 2013, 13:54 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1091
Откуда: Балаково
dixie писал(а):
Ну да... осталось узнать - как он будет USB клаву, эмулируемую через int 16h читать....

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


Последний раз редактировалось Himik 01 дек 2013, 13:58, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: карта памяти
СообщениеДобавлено: 01 дек 2013, 13:57 

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: карта памяти
СообщениеДобавлено: 01 дек 2013, 14:07 

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB