linux 2.4 内核说明文档(引导篇)

linux 2.4 内核说明文档(引导篇)

ID:6127582

大小:58.00 KB

页数:10页

时间:2018-01-04

linux 2.4 内核说明文档(引导篇)_第1页
linux 2.4 内核说明文档(引导篇)_第2页
linux 2.4 内核说明文档(引导篇)_第3页
linux 2.4 内核说明文档(引导篇)_第4页
linux 2.4 内核说明文档(引导篇)_第5页
资源描述:

《linux 2.4 内核说明文档(引导篇)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、本篇文档目录:1.1.创建Linux内核镜像1.2.引导:概述1.3.引导:BOIS POST1.4.引导:bootsector和setup1.5.采用LILO引导器1.6.高级初始化1.7.SMP机在x86系统上引导1.8.释放初始化数据和代码1.9.处理内核命令以下是正文:1.引导1.1.创建Linux内核镜像本部分解释了编译内核时每个步骤以及每个步骤的输出。这个创建过程依赖于不同的体系结构,这里强调一下我们仅考虑创建一个Linux x86的内核。当用户输入“make zImage”或者“make bzImage”时,输出的可启动内核镜像就分别存放为arch/i386/boot/

2、zImage或者arch/i386/boot/bzImage。下面来看看这个镜像是怎么创建的:1)首先C和汇编源文件被编译成ELF中间文件(.o),其中一部分按照逻辑分组打包成压缩文件(.a)。2)调用ld指令将以上的.o和.a文件被链接成一个静态的80386可执行文件vmlinux。3)接着调用nm vmlinux 指令剔除不相关和不感兴趣的符号并创建系统关系图。4)进入arch/i386/boot目录。5)Bootsect.S文件按照目标是bzImage(zImage)在定义(不定义) –D_BIG_KERBEL_ 宏 下进行预处理,结果分别存为bbootsect.s(boots

3、ect.s)。6)Bbootsect.s文件被编译并转换成“raw binary”格式的bbootsect文件(bootsect.s 被转换成“raw”格式文件bootsect)。7)setup.s(setup.s 包含了video.s文件)被预处理成bzImage需要的bsetup.s或者zImage需要的setup.s文件。这个过程和bootsector一样,bzImage镜像需要定义.D__BIG_KERNEL__宏,结果被转换成“raw binary”格式的bsetup,zImage镜像则被转换成“raw”格式的setup。8)进入arch/i386/boot/compres

4、sed目录,移出/usr/src/linux/vmlinux文件中ELF标识节.note和.comment ,并将其转换成raw binary格式存放到临时文件$tmppiggy。9)将$tmppiggy压缩成$tmppiggy.gz10).将$tmppiggy.gz链接成重定向文件piggy.o11)编译压缩程序head.S 和misc.c文件12)将head.o、misc.o和piggy.o链接成bvmlinux(或者vmlinux),注意vmlinux的标号.Ttext 0x1000和bvmlinux的标号.Ttext 0x100000的不同,这是由于bzImage压缩装载器是

5、从高位装载的。13)将bvmlinux转换成“raw binary”文件bvmlinux.out,移出ELF节.note 和.comment。14)回到arch/i386/boot目录并调用tools/build将bbootsect、bsetup和压缩后的bvmlinux链接成bzImage。这个过程将向bootsector末尾添加重要的变量例如setup_sects和root_dev。10bootsector的大小总是512字节,setup的大小必须大于4个分节且受限于12K,这个规则如下:0x4000 bytes >= 512 + setup_sects*512 + 运行boot

6、sector/setup所需堆栈空间在后面将说明是那个部分造成了这种限制。BzImage文件大小的上限采用LILO启动时为2.5M,采用冷启动如软盘或者光盘等则为1048560字节。注意,tools/build工具检验了boot段的大小、内核镜像的大小和setup的低范围地址,并没有检测setup的高范围地址。因此,在setup.S文件末尾的“.space”节增加一个大的地址数值就会很容易创建一个无法使用的内核。1.2.引导:概述启动过程是和体系结构相关的,这里我们仅关注IBM PC/IA32体系。由于旧有设计以及向前兼容,PC机采用了以前流行的风格启动操作系统。这个过程可以被分为一

7、下六个逻辑步骤:1)BOIS选择启动设备。2)从启动设备装载bootsector。3)Bootsector装载setup,解压缩程序和内核镜像。4)在保护模式下解压内核。5)汇编代码执行低级初始化。6)执行上层初始化。1.3.引导:BOIS POST1)电源启动时钟发生器并在总线上产生一个#POWERGOOD的中断。2)产生CPU的RESET中断(此时CPU处于8086工作模式)。3)%ds=%es=%fs=%gs=%ss=0, %cs=0xFFFF000

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。