Пиша ядро; преди да напиша толкова сложно нещо, мислех, че ще бъде не само полезно, но и наложително да направя малко теоретично четене на ядра, зареждащи програми, регистри, 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 (ако съм прав) в RAM; сега въпросите ми са:
- Тъй като машината се зарежда, RAM трябва да е празна, така че буутлоудърът е зареден на 0x0000 от RAM?
- (Наистина не е свързано с този контекст) Има ли някакъв начин да получите обяснение на изходния код за 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