欢迎来到天天文库
浏览记录
ID:61748039
大小:151.50 KB
页数:30页
时间:2021-03-17
《基于i386体系结构的Linux启动代码分析.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、基于i386体系结构的Linux启动代码分析xlanchen@2006.6.1启动代码文件linux/arch/i386/boot/bootsect.Slinux/arch/i386/boot/setup.Slinux/arch/i386/boot/compressed/head.Slinux/arch/i386/kernel/head.Slinux/arch/i386/kernel/init_task.clinux/arch/init/main.cxlanchen@2006.6.12EmbeddedOpera
2、tingSystems实模式实模式是为了兼容早期的CPU而设置的系统总是始于实模式实模式下地址总线:20位内存范围:0~1MB逻辑地址=段地址+段内偏移段地址=段寄存器中的值*16(或左移4位)段寄存器长度:16bitxlanchen@2006.6.13EmbeddedOperatingSystemsI386实模式下的内存布局图RAM1-MBROM-BIOSVIDEO-BIOSVRAM0xA00000xC00000xF00000x00000xlanchen@2006.6.14EmbeddedOperatingS
3、ystems软盘和硬盘启动软盘启动,bootsect.S0x7c000x900000x7c00,BIOS0x90000,lilo堆栈,0x3ff4(0x4000-12),向下增长磁盘参数表,12Bytes,0x3ff4~0x4000显示“Loading”Setup0x90200系统小内核,0x10000(64KB处),低装载大内核,0x100000(1MB处),高装载setup硬盘启动,两阶段引导装载LILO(LInuxLOader)第一个扇区…装载LINUXBootsect.S0x90000Setup.
4、S0x90200系统0x100000x100000跳转到setupxlanchen@2006.6.15EmbeddedOperatingSystemsSetup初始化硬件设备并为内核程序的执行建立环境内存检测键盘视频磁盘控制器IBM微通道总线MCAPS/2设备(总线鼠标)APMBIOS若低装载,将系统移动到0x1000处(4KB处)否则,不必临时IDT和临时GDTFPUPIC,16个硬件中断中断向量32~47实模式保护模式Startup_32xlanchen@2006.6.16EmbeddedOpera
5、tingSystemsCompressed/head.SStartup_32初始化段寄存器和一个临时堆栈初始化BSS段解压缩高装载或低装载解压缩0x100000(1MB)跳转到0x100000处xlanchen@2006.6.17EmbeddedOperatingSystemsHead.SStartup_32初始化段寄存器建立进程0的内核堆栈Setup_idt拷贝系统参数识别处理器GDT、IDTStart_kernelxlanchen@2006.6.18EmbeddedOperatingSystemsThe
6、system-segmentregistersInprotected-modetheCPUneedsquickaccesstosomeimportantdata-structures,suchas:Memory-SegmentDescriptorsInterrupt-GateDescriptorsCall-GateDescriptorsTask-StateDescriptorsPage-DirectoryandPage-TableDescriptorsSpecialCPUregisterslocatethese
7、itemsxlanchen@2006.6.19EmbeddedOperatingSystemsGDTandIDTTwomostvitalsystemregistersforprotected-modeexecutionare:GDTR(GlobalDescriptorTableRegister)IDTR(InterruptDescriptorTableRegister)48-bitswidebase-address+segment-limit(anarrayofdescriptors,theGDT&theI
8、DT)SpecialinstructionsSGDT/LGDT,SIDT/LIDTSegmentBase-AddressSegmentLimit471615016bits32bitsxlanchen@2006.6.110EmbeddedOperatingSystemsSystemRelationshipsdescriptordescriptordescriptordescriptord
此文档下载收益归作者所有