OSDev

для всех
Текущее время: 25 авг 2025, 12:53

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




Начать новую тему Ответить на тему  [ Сообщений: 160 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7, 8, 9 ... 16  След.
Автор Сообщение
СообщениеДобавлено: 15 авг 2013, 23:09 
Аватара пользователя

Зарегистрирован: 25 июл 2013, 08:45
Сообщения: 141
Откуда: Новочеркасск
scuter писал(а):
кароче у вас зимой снега не допросишся.

1. Если бы спрашиваемое у кого-то было, например у меня, я бы поделился
2. Вопросы надо формулировать яснее, так как я например, так и не понял, о чем речь
3. Читать тему ветки, в которой размещается вопрос, ибо вопрос - оффтоп


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

Зарегистрирован: 10 апр 2012, 23:19
Сообщения: 277
у вас на скриншотах отображается адреса и размеры памяти, куда уж тут яснее - это детектор памяти (INT 0x15, eax= 0xE820)


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

Зарегистрирован: 25 июл 2013, 08:45
Сообщения: 141
Откуда: Новочеркасск
То что на скриншоте - информация полученная от GRUB2 из структуры, передаваемой ядру через заголовок multiboot. Я сам не писал процедуру детектирования памяти, а воспользовался готовой информацией получаемой от загрузчика по стандартизированной спецификации. Просто я более-менее красиво вывел её на экран, проанализировав по пути типы блоков.

Если интересует алгоритм, запросто могу поделится исходниками своей оси.
scuter писал(а):
это детектор памяти (INT 0x15, eax= 0xE820)

Возможно GRUB использует именно эту процедуру определения объема памяти, не вдавался в подробности. Моя ось грузится GRUB, и начинает работу сразу в защищенном режиме.

К тому же у меня не дискета а образ HDD объемом 2 Гб, с файловой системой ext2 на котором установлен GRUB2, а ядро в виде ELF-бинарника поднимается загрузчиком из раздела HDD. Я просто не стал заморачиваться с дискетами и MBR, а сосредоточится на разработке ядра. В этом явный профит - ось по взрослому грузится и спокойно живет на одном винте с другими осями. Если интересует, могу поделится RAW-образом HDD

Собственно:
1. Актуальные исходники PhantomEx (коменты на английском) лицензия GPL и все скрипты для сборки/установки в комплекте
2. образ HDD с загрузчиком GRUB2 и ядром PhantomEx в формате vmdk (для VMware Workstation)
3. Спецификация Multiboot здесь
4. Мой личный блог - тут

RAW образ не полез почему-то на яндекс-диск, но его можно разжать в RAW с помощью QEMU например командой (если под линуксом канеш...)

$ qemu-img convert -f vmdk -O raw hdd.vmdk hdd.img

Вобщем всё что знал - рассказал

pavia писал(а):
Работы на 30 минут. Из них 15 на гугл и чтения документации

Ну утрировать не надо. У кого как. Я вот на мультибуте сидел неделю испсиховался весь :) . Сабж (многозадачность) растянулся на месяц, учитывая ещё что полученное - только первый робкий вздох


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

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1209
scuter, см. папку tools/meminfo. Выводятся сырые данные, полученные от int 15h/0E820h. Не нужно много ума и времени, чтобы написать вот это:
Код:
  xor ebx,ebx
  mov es,bx
@@:
  mov di,500h
  mov ecx,20
  mov edx,"PAMS"
  mov eax,0E820h
  int 15h
  jc short error
  cmp eax,"PAMS"
  jne short error
  cmp ecx,20
  jne short error
  push ebx

  stdcall putstr,word [di+ARDESC.BaseAddrHigh+2],word [di+ARDESC.BaseAddrHigh],\
                 word [di+ARDESC.BaseAddrLow+2],word [di+ARDESC.BaseAddrLow],\
                 word [di+ARDESC.LengthHigh+2],word [di+ARDESC.LengthHigh],\
                 word [di+ARDESC.LengthLow+2],word [di+ARDESC.LengthLow],\
                 word [di+ARDESC.Type+2],word [di+ARDESC.Type]
  db 13,10,128,128,128,128,32,128,128,128,128,32,128,128,0

  pop ebx
  and ebx,ebx
  jnz short @b


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

Зарегистрирован: 25 июл 2013, 08:45
Сообщения: 141
Откуда: Новочеркасск
Оффтопчик: продолжил писать статьи в блог


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

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1209
4 мега - это в PSE, в PAE - 2 мега.

64-битный пэйджинг является вполне логичным расширением PAE. Сейчас в PAE даже разрешается использовать физические адреса выше 64 гиг. Так что PAE достаточно перспективен в плане продолжения развития 32-разрядных систем.


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

Зарегистрирован: 25 июл 2013, 08:45
Сообщения: 141
Откуда: Новочеркасск
phantom-84 писал(а):
4 мега - это в PSE, в PAE - 2 мега

Да, точно, поправился
phantom-84 писал(а):
Сейчас в PAE даже разрешается использовать физические адреса выше 64 гиг. Так что PAE достаточно перспективен в плане продолжения развития 32-разрядных систем.

Хм, не знал, думал помирает за ненадобностью


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

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1209
maisvendoo писал(а):
Хм, не знал, думал помирает за ненадобностью
Такое развитие событий вполне вероятно. PAE не очень активно использовался в 32-разрядных системах. Потом внимание разработчиков сразу переключилось на 64-разрядные версии. Потенциал PAE пока остается не раскрытым до конца. Если 32-разрядные версии перестанут выпускаться или даже просто активно развиваться, то потенциал PAE так и останется не раскрытым.

Лично я пока не планирую делать 64-битную версию. Для меня 32-разрядная система, управляющая большим объемом физической памяти, - вполне реальная перспектива развития.


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

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
phantom-84 писал(а):
Лично я пока не планирую делать 64-битную версию. Для меня 32-разрядная система, управляющая большим объемом физической памяти, - вполне реальная перспектива развития.

Потенциал PAE не останется не раскрытым, потому что он используется в 64-битном режиме в качестве базового.
Для 32-битной системы имеет смысл перейти в совместимый 64-битный режим (официалное название режима compatibility long mode). Это когда включаешь 64-битный режим, но не делаешь перехода на 64-битный селектор кода, а продолжаешь работать в 32-битном сегменте. Это даёт возможность использовать 64-битные регистры в дополнение к 32-битным. В общем-то, и перейдя и в полный 64-битный режим ситуация остаётся такой же - по умолчанию всё 32-битное, а к 64-битным командам просто добавляются префиксы.


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

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1209
Himik писал(а):
Потенциал PAE не останется не раскрытым, потому что он используется в 64-битном режиме в качестве базового.
Я имел в виду не 64-разрядный пэйджинг, а обычный PAE.

Цитата:
Для 32-битной системы имеет смысл перейти в совместимый 64-битный режим (официалное название режима compatibility long mode). Это когда включаешь 64-битный режим, но не делаешь перехода на 64-битный селектор кода, а продолжаешь работать в 32-битном сегменте. Это даёт возможность использовать 64-битные регистры в дополнение к 32-битным. В общем-то, и перейдя и в полный 64-битный режим ситуация остаётся такой же - по умолчанию всё 32-битное, а к 64-битным командам просто добавляются префиксы.
Мне нафиг не нужен LM, но я хочу работать со всем объемом физической памяти (или по крайней мере не ограничиваться памятью в пределах первых 4 гиг). Нет в режиме совместимости поддержки 64-битных регистров, т.к. в нем не работает REX-префикс. По сути ты мне предлагаешь использовать более сложный 64-битный пэйджинг (да еще требовать наличия 64-разрядного проца), когда я могу использовать более простой PAE (способный работать в том числе и на 32-разрядных процах).


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

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


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

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


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

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