То что на скриншоте - информация полученная от 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 на гугл и чтения документации
Ну утрировать не надо. У кого как. Я вот на мультибуте сидел неделю испсиховался весь

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