lds是什么文件

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/08 03:43:20

lds是什么文件
lds是什么文件

lds是什么文件
下面是vmlinux.lds.S文件,我老是觉得晕晕的,有哪位大虾能解释一下或推荐一个有相关学习资料的站点?
/* ld script to make i386 Linux kernel
* Written by Martin Mares ;
*/
OUTPUT_FORMAT("elf32-i386","elf32-i386","elf32-i386")
OUTPUT_ARCH(i386)
ENTRY(_start)
SECTIONS
{
.= PAGE_OFFSET_RAW + 0x100000;
_text = .; /* Text and read-only data */
.text :{
*(.text)
*(.fixup)
*(.gnu.warning)
} = 0x9090
.text.lock :{ *(.text.lock) } /* out-of-line lock text */
.rodata :{ *(.rodata) }
.kstrtab :{ *(.kstrtab) }
.= ALIGN(16); /* Exception table */
__start___ex_table = .;
__ex_table :{ *(__ex_table) }
__stop___ex_table = .;
__start___ksymtab = .; /* Kernel symbol table */
__ksymtab :{ *(__ksymtab) }
__stop___ksymtab = .;
_etext = .; /* End of text section */
.data :{ /* Data */
*(.data)
CONSTRUCTORS
}
_edata = .; /* End of data section */
.= ALIGN(8192); /* init_task */
.data.init_task :{ *(.data.init_task) }
.= ALIGN(4096); /* Init code and data */
__init_begin = .;
.text.init :{ *(.text.init) }
.data.init :{ *(.data.init) }
.= ALIGN(4096);
__init_end = .;
.= ALIGN(32);
.data.cacheline_aligned :{ *(.data.cacheline_aligned) }
.= ALIGN(4096);
.data.page_aligned :{ *(.data.idt) }
__bss_start = .; /* BSS */
.bss :{
*(.bss)
}
_end = .;
/* Stabs debugging sections.*/
.stab 0 :{ *(.stab) }
.stabstr 0 :{ *(.stabstr) }
.stab.excl 0 :{ *(.stab.excl) }
.stab.exclstr 0 :{ *(.stab.exclstr) }
.stab.index 0 :{ *(.stab.index) }
.stab.indexstr 0 :{ *(.stab.indexstr) }
.comment 0 :{ *(.comment) }
}