OSDev

для всех
Текущее время: 27 апр 2024, 22:32

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




Начать новую тему Ответить на тему  [ Сообщений: 36 ]  На страницу Пред.  1, 2, 3, 4
Автор Сообщение
СообщениеДобавлено: 29 июл 2013, 21:47 
Аватара пользователя

Зарегистрирован: 25 июл 2013, 08:45
Сообщения: 141
Откуда: Новочеркасск
Ошибся, исправился.
То что стандартную это я в курсе. Удобно использовать GRUB в качестве загрузчика одним словом


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 июл 2013, 21:57 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
maisvendoo писал(а):
0 - 9FC00h: Base memory - первые 640 Кб
Точнее 640 кб минус размер EBDA, т.е. имеет место обычная картина.

Кстати, тип 1 описан и в Multiboot Spec.:
Цитата:
where ‘size’ is the size of the associated structure in bytes, which can be greater than the minimum of 20 bytes. ‘base_addr’ is the starting address. ‘length’ is the size of the memory region in bytes. ‘type’ is the variety of address range represented, where a value of 1 indicates available ram, and all other values currently indicated a reserved area.
Если вы не собираетесь забирать память ACPI-таблиц под свои нужды, можно спокойно работать и в рамках данного описания. Моему ядру это вообще пофиг, т.к. оно после загрузки GRUB'ом переключается обратно в RM и выполняет "стандартную" процедуру детекта памяти самостоятельно.

maisvendoo писал(а):
(интересно, выше 32 Мб - зарезервировано. Со времен 80386 видимо);
Не, это только потому, что у тебя 32 мега памяти. Было бы больше, этот резерв скорее всего размещался бы где-то в другом месте.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 29 июл 2013, 22:18 
Аватара пользователя

Зарегистрирован: 25 июл 2013, 08:45
Сообщения: 141
Откуда: Новочеркасск
phantom-84 писал(а):
Не, это только потому, что у тебя 32 мега памяти. Было бы больше, этот резерв скорее всего размещался бы где-то в другом месте.

Да, на всех 4 Гб совершенно другая картина
Изображение
Хм, интересно вообще


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 авг 2013, 15:00 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
ZarathustrA писал(а):
На основе собственного опыта, рекомендую отказаться от VmWare в пользу VirtualBox. VmWare нечестно эмулирует железо, в частности процессор. Видимо в VmWare присутствуют какие-то оптимизации для народных ОСей а-ля Windows/Linux, которые нарушают спецификацию процессора. В результате можно наблюдать полный ужас на виртуальной машине и в то же время вполне себе нормально работающую физическую тачку рядом с тем же кодом на борту. Я наступил на две грабли в этом огороде. Сколько всего их там валяется, никому не известно, но желание гулять по этому огороду пропало.

Я так не считаю. Наверняка можно найти и физическую тачку, где твоя ОС будет работать ужасно. Может статься, что VMware WS эмулирует такой компьютер. Советую поискать ошибку в своём коде.

Меня волнует вопрос, почему в VMware не детектируется память выше 4ГБ, хотя задаю 8ГБ. Использовал функцию BIOS INT 0x15, EAX = 0xE820, доходит только до 3ГБ.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 авг 2013, 16:29 
Аватара пользователя

Зарегистрирован: 25 июл 2013, 08:45
Сообщения: 141
Откуда: Новочеркасск
вот мой скрин из VMware
Изображение
Красным обвел память выше 4 Гб, детектированную GRUB2 который использует тот же механизм. 8 Гб видит спокойно

По этому поводу есть статья

OSDev Wiki писал(а):
Для определения объёма и карты распределения памяти спецификация ACPI предусматривает использование функции E820h прерывания INT 15h. Каждый вызов этой функции возвращает описание одного диапазона адресов оперативной памяти. Чтобы получить полную карту распределения памяти, необходимо вызывать эту функцию многократно, пока не будет получено описание последнего диапазона.

Может вы просто не все диапазоны считываете?

Я просто использую карту памяти, передаваемую GRUB2 через multiboot-заголовок


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 авг 2013, 20:24 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
maisvendoo писал(а):
Может вы просто не все диапазоны считываете?

Да, нашёл ошибку в своём коде, цикл завершался при нахождении первого подходящего блока, остальные блоки откидывались. Да так пока что и останется, просто было непонятно.


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

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


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

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


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

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