Я пишу ядро; Прежде чем писать такую сложную вещь, я подумал, что было бы не только полезно, но и непозволительно провести теоретическое чтение ядер, загрузчиков, регистров, BIOS и т. д.
В этой статье говорится (и я цитирую):
The boot sector loader.
This loads the first 512-byte sector from the boot disk into RAM and jumps to it.
Далее говорится:
The first sector of a diskette can be loaded at address 0000:7C00.
Итак, загрузчик загрузочного сектора загружает 512 байтов данных с дискеты, которая находится по адресу памяти 0x7C00 (если я прав), в ОЗУ; Теперь мои вопросы:
- Поскольку машина загружается, оперативная память должна быть пустой, поэтому загрузчик загрузил ее по адресу 0x0000 ОЗУ?
- (На самом деле не имеет отношения к этому контексту) Есть ли способ получить объяснение исходного кода для загрузчика GRUB Legacy (v .9x)?
- Наконец, какие статьи / книги я должен прочитать, чтобы познакомиться с ядрами и т. Д.?
У меня 6 лет опыта программирования, но все они работают с языками высокого уровня в системах, что стало возможным благодаря ядру.
Любая помощь приветствуется. Спасибо! :)
boot sector loader
- это код в BIOS (после включения / сброса), который считываетboot sector
(первые 512 байт) с диска и копирует его в0000:7c00
. После загрузки загрузочного сектора BIOS перейдет сjmp
на0000:7c00
, где начнется выполнение кода загрузочного сектора. - person Michael Petch   schedule 24.08.2015