转linux引导加载学习笔记

转linux引导加载学习笔记

ID:30449583

大小:86.28 KB

页数:13页

时间:2018-12-30

转linux引导加载学习笔记_第1页
转linux引导加载学习笔记_第2页
转linux引导加载学习笔记_第3页
转linux引导加载学习笔记_第4页
转linux引导加载学习笔记_第5页
资源描述:

《转linux引导加载学习笔记》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、转Linux引导加载学习笔记本文以是我的学习记录,其中一些文字和图片来自参考资料所列文档,感谢作者对其知识和分享!最近在自学Linuxkernel方面的东西,这两天了粗浅的研究了下kernelboot过程,在此记录。这里所指Linux引导加载未涉及虚拟化环境,即系统未运行在hypervisor之上。Linux通过执行不同阶段的引导加载程序(bootloader)程序来引导操作系统,在完成内核等引导之后,最终会由调度器接管CPU,其通过启用中断来周期性的抢占控制权,处理多个用户进程/客户进程(kvm虚拟化)。Toplevel的引导过程如下图。整个Linux系统引导共分5步执行操作

2、:BIOS/BootMonitor引导程序;BIOS包括POST和Runtime服务。被称为第一阶段的MBR(Masterbootrecord)引导程序;位于BIOS配置的启动磁盘0柱面1扇区的主引导记录,用于启动第二阶段的linuxbootloader。被称为第二阶段的linuxbootloader;主要有LILO(Linuxloader)和GNUGRUB(Grandunifiedbootloader)两种bootloader程序,现主流为GRUB。包括了通过initrd来创建RAM盘,执行init脚本,通过LKM(linuxkernelmodule)加载本地磁盘等驱动程序来

3、挂载磁盘中的root文件系统。RAM盘中是个完整的小型linux环境,在没有磁盘的嵌入式环境中,initrd可以是最终的根文件系统,也可以通过NFS来挂载最终的文件系统。linuxkernel(及initrd函数)引导;负责加载并解压zImage/bzImagekernel及initrd映像,并开始执行kernel初使化和引导程序/过程。init进程。用于启动linux配置的各项用户空间服务(demon)进程。加电后首先被执行的是BIOS(Baseinput/outputsystem)程序。嵌入式环境使用bootmonitor,它负责在一个位于rom/flash中预定地址开始执

4、行引导程序,而在PC环境中这个启动地址是0xFFFF0,相对来讲BIOS提供了更多的配置功能。它主要由两部分组成:POST(PowerOnSelfTest)程序;其负责接通电源时对硬件检测,包括创建中断向量、设置寄存器、对一些外部设备进行初始化和检测等。BIOSRuntime服务;负责为操作系统提供一些基础服务,主要与IO外设有关。当BIOSPOST执行完后,其将会从内存中清理,而Runtime服务会常驻内存,为操作系统提供一些底层的支持。最后BIOS将控制权交给称为第一阶段引导程序的MBR(Masterbootrecord)程序。接下来执行的MBR是一个512byte固定大小

5、的映像。包括446byte长的被称为初始程序加裁程序(Initialprogramloader,IPL)的可执行代码和64byte分区表(16byte*4个),最后以0xaa55特殊字节结束。如下图所示。MBR引导程序会将扫描分区表,获得唯一活动分区后,将其中的引导程序读入RAM并开始执行。MBR启动的引导程序被称为第二阶段引导程序,它是引导的主体,是引导加载的真正部分。Linux中该阶段有两个流行的程序,LILO(较老)和GRUB。如果安装了lilo程序,可以通过root用户执行如下命令来通过lilo生成默认配置的MBR,并写入到启动磁盘0柱面1扇区位置上。Shell代码#/

6、sbin/lilo-v-v#/sbin/lilo-v-v一般需要修改lilo的配置文件,使生成的MBR有效。位于/etc/lilo.conf。lilo配置示例。Config代码boot=/dev/hdamap=/boot/mapinstall=/boot/boot.bprompttimeout=100compactdefault=Linuximage=/boot/vmlinuz-2.4.18-14label=Linuxroot=/dev/hdb3read-onlypassword=linuxother=/dev/hdalabel=WindowsXPboot=/dev/hdama

7、p=/boot/mapinstall=/boot/boot.bprompttimeout=100compactdefault=Linuximage=/boot/vmlinuz-2.4.18-14label=Linuxroot=/dev/hdb3read-onlypassword=linuxother=/dev/hdalabel=WindowsXPboot键指定了lilo在哪里安装MBR。可以通过替换boot=/dev/fd0配置来指定lilo创建有引导记录的软盘。LILO天生存在一些缺点和不

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

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

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