07.01.2013 Views

Linux i386 Önyükleme Kodu NASIL

Linux i386 Önyükleme Kodu NASIL

Linux i386 Önyükleme Kodu NASIL

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!