You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Linux</strong> <strong>i386</strong> <strong>Önyükleme</strong> <strong>Kodu</strong> <strong>NASIL</strong><br />
#ifdef CONFIG_VIDEO_SELECT<br />
if (FS:[0x01FA]!=ASK_VGA) { // kullanıcı seçimli video kipi<br />
mode_set();<br />
if (failed) {<br />
prtstr("You passed an undefined mode number.\n");<br />
mode_menu();<br />
}<br />
} else {<br />
vid2:<br />
mode_menu();<br />
}<br />
vid1:<br />
#ifdef CONFIG_VIDEO_RETAIN<br />
restore_screen(); // ekran içeri˘gini geri yükle<br />
#endif /* CONFIG_VIDEO_RETAIN */<br />
#endif /* CONFIG_VIDEO_SELECT */<br />
mode_params(); // kip parametrelerini sakla<br />
popw ds; // orjinal DS’yi geri yükle<br />
}<br />
/* YAPILACAKLAR: video() ayrıntıları */<br />
4.11. Kaynakça<br />
•<br />
A20 – a pain from the past(B82)<br />
• Real–time Programming(B83) Appendix A: Complete I/O Port List<br />
IA–32 Intel Architecture Software Developer’s Manual(B84)<br />
•<br />
•<br />
Summary of empty_zero_page layout (kernel point of view):<br />
linux/Documentation/<strong>i386</strong>/zero–page.txt<br />
5. linux/arch/<strong>i386</strong>/boot/compressed/head.S<br />
Artık bvmlinux içindeyiz! misc.c:decompress_kernel()’in yardımıyla, çekirdek imgemiz<br />
linux/vmlinux’u elde etmek için piggy.o’yu açaca˘gız.<br />
Bu dosya saf 32 bitlik açılı¸s kodudur. Önceki iki dosyadan farklı olarak kaynak kodun içinde hiç .code16 deyimi<br />
yoktur. Ayrıntılar için Using as: Writing 16–bit Code (B85) belgesine ba¸svurun.<br />
5.1. Sıkı¸stırılmı¸s Çekirde ˘gin Açılması<br />
Bölüt tanımlayıcılarındaki (bölüt seçicisi _ _KERNEL_CS ve _ _KERNEL_DS’ye tekabül eden) bölüt taban adresleri<br />
0’a e¸sittir; bu yüzden, e˘ger bu iki adresten her ikisi de kullanıldıysa, mantıksal konum adresi (bölüt:konum<br />
biçiminde) kendi do˘grusal adresine e¸sit olacaktır. zImage için, CS:EIP ¸simdi 10:1000 mantıksal adresinde<br />
(do˘grusal 0x1000 adresi), bzImage ise 10:100000 (do˘grusal 0x100000) adresindedir.<br />
Sayfalama etkinle¸stirilmedi˘gi için do˘grusal adres fiziksel adres ile özde¸stir. Adres konuları için IA–32 Manual<br />
(Vol.1. Ch.3.3. Memory Organization, and Vol.3. Ch.3. Protected–Mode Memory Management) ve <strong>Linux</strong> Device<br />
Drivers: Memory Management in <strong>Linux</strong> (B86) belgelerine bakınız.<br />
BX=0 ve ESI=INITSEG