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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Linux</strong> <strong>i386</strong> <strong>Önyükleme</strong> <strong>Kodu</strong> <strong>NASIL</strong><br />

Rules.make çoklu Makefile dosyaları için kurallar içerir.<br />

2.2. linux/arch/<strong>i386</strong>/vmlinux.lds<br />

Derlemeden sonra ld birkaç nesne ve ar¸siv dosyasını biraraya getirir, verilerini yeniden yerle¸stirir ve sembol<br />

referansları ba˘glayıp kapatır. linux/arch/<strong>i386</strong>/vmlinux.lds dosyası linux/Makefile tarafından<br />

yerle¸sik çekirdek görüntüsü linux/vmlinux ’un ilintilenmesinde kullanılan ilintileyici betik olarak tasarlanmı¸stır.<br />

/* <strong>i386</strong> <strong>Linux</strong> çekirde˘gi olu¸sturmak için ld beti˘gi<br />

* Martin Mares tarafından yazılmı¸stır;<br />

*/<br />

OUTPUT_FORMAT("elf32–<strong>i386</strong>", "elf32–<strong>i386</strong>", "elf32–<strong>i386</strong>")<br />

OUTPUT_ARCH(<strong>i386</strong>)<br />

/* "ENTRY" linux/Makefile içinde "–e stext" komut satırı seçene˘gi ile de˘gi¸stirilir */<br />

ENTRY(_start)<br />

/* Çıktı dosyası (linux/vmlinux) yerle¸simi.<br />

* Bakınız Using LD, the GNU linker: Specifying Output Sections (B9) */<br />

SECTIONS<br />

{<br />

/* Çıktı bölümü .text 3G+1M adresinden ba¸slar.<br />

* Bakınız Using LD, the GNU linker: The Location Counter (B10) */<br />

. = 0xC0000000 + 0x100000;<br />

_text = .; /* Metin ve salt okunur veri */<br />

.text : {<br />

*(.text)<br />

*(.fixup)<br />

*(.gnu.warning)<br />

} = 0x9090<br />

/* Tahsis edilmemi¸s oyuklar 0x9090 ile doldurulur, örn. "NOP NOP" için opcode.<br />

* Bakınız Using LD, the GNU linker: Optional Section Attributes (B11) */<br />

_etext = .; /* text bölümünün sonu */<br />

.rodata : { *(.rodata) *(.rodata.*) }<br />

.kstrtab : { *(.kstrtab) }<br />

/* Sonraki 16 baytlık sınıra hizalandı.<br />

* Bakınız Using LD, the GNU linker: Arithmetic Functions (B12) */<br />

. = ALIGN(16); /* Ola˘gandı¸sılık tablosu */<br />

_ _start_ __ex_table = .;<br />

_ _ex_table : { *(_ _ex_table) }<br />

_ _stop_ __ex_table = .;<br />

_ _start_ __ksymtab = .; /* Çekirdek sembol tablosu */<br />

_ _ksymtab : { *(_ _ksymtab) }<br />

_ _stop_ __ksymtab = .;<br />

.data : { /* Veri */<br />

*(.data)<br />

CONSTRUCTORS<br />

}<br />

/* "CONSTRUCTORS" için bakınız:<br />

* Using LD, the GNU linker: Option Commands (B13) */<br />

_edata = .; /* data bölümünün sonu */<br />

http://belgeler.org <strong>Linux</strong> Kitaplı˘gı 6 / 77

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

Saved successfully!

Ooh no, something went wrong!