- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
linux启动步骤详解
Linux启动流程分析
以个人计算机架设的Linux主机为例,简单来说,系统启动过程如下:
加载BIOS的硬件信息与进行自我测试,并依据设置取得第一个可启动的设备;
读取并执行第一个启动设备内MBR的boot Loader(即是grub,spfdisk等程序);
依据boot loader的设置加载Kernel,Kernel会开始检测硬件与加载驱动程序;
在硬件驱动成功后,Kernel会主动调用init进程,而init会取得run-level信息;
Init执行/etc/rc.d/rc.sysinit文件来准备软件执行的操作环境(如网络、时区等);
Init执行run-level的各个服务的启动(script方式);
Init执行/etc/rc.d/rc.local文件;
Init执行终端机模拟程序mingetty来启动login进程,最后就是等待用户登陆。
(鸟哥的私房菜)
BIOS,开机自我测试与MBR
在个人计算机架构下,想要启动整个系统首先就得让系统去加载BIOS,并通过BIOS程序去加载CMOS的信息,并且通过CMOS内的设置取得主机的各项硬件配置,例如CPU与接口设备的通讯频率、启动设备的查找顺序、硬盘的大小与类型、系统时间、各周边总线是否启动 plug and play(即插即用设备)、各接口设备的I/O地址以及与CPU通信的IRQ中断等的信息。
在取得这些信息后,BIOS还会进行开机自检,然后开始执行硬件检测的初始化,并配置PnP设备,之后再定义出可启动的设备顺序,接下来就会开始进行启动设备的数据读取了,即MBR相关的任务开始。
由于系统软件大多放置到硬盘中,所以BIOS会指定启动的设备好让我们可以读取磁盘中的操作系统内核文件。但由于不同的操作系统的文件系统格式的不同,因此我们必须要以一个引导装载程序来处理内核文件加载的问题,这个引导装载程序就被称为Bootloader。这个Bootloader程序安装在启动设备的第一个扇区(sector)内,也就是MBR(MasterBoot Record,主引导分区)
BIOS是通过硬件的INT 13中断功能读取MBR的,也就是说,只要BIOS能够检测到你的磁盘,那它就有办法通过INT 13这条信道来读取该磁盘的第一个扇区内的MBR。这样,boot loader 也就能够顺利执行。
Boot Loader的功能
其主要功能是要认识操作系统的文件按格式并据以加载内核到内存中去执行。由于不同操作系统的文件格式不一致,因此每种操作系统都有自己的boot loader。用自己的loader才有办法载入内核文件。那在多操作系统中,系统的MBR只有一个,怎样来实现双系统呢?(见书)。
加载内核检测硬件与initrd的功能。
当我们通过boot loader的管理而开始读取内核文件后,接下来,Linux就会将内核解压缩到内存中,并且利用内核的功能,开始测试与驱动各个周边设备,包括存储设备、CPU、网卡、声卡等。此时Linux内核会以自己的功能重新检测一次硬件,而不一定会使用BIOS检测到得硬件信息。也就是说,内核此时才开始接管BIOS后的工作了。内核文件一般放置到/boot里面,并且取名/boot/vmlinuz。
为了硬件开发商与其他内核功能开发者的便利,因此Linux内核是可以通过动态加载内核模块的(就请想成驱动程序即可),这些内核模块就放置在/lib/modules/目录内。
由于模块放置到磁盘根目录内(记得/lib 不可以与/分别放在不同的分区),因此在启动的过程中内核必须要挂载根目录,这样才能够读取内核模块提供加载驱动程序的功能,而且为了担心影响到磁盘的文件系统,因此启动过程中根目录是以只读的方式来挂载的。
通常,非必要的功能可以编译成为模块的内核功能,因此USB、STAT、SCSI等磁盘设备的驱动程序通常都是以模块的方式来存在的。例如,你的linux是安装在SATA磁盘上面的,可以通过BIOS的INT13取得Boot loader 与kernel文件来启动,然后kernel会开始接管系统并且检测硬件及尝试挂载根目录来取得额外的驱动程序。
问题是,内核根本不认识SATA磁盘,所以需要加载SATA磁盘的驱动程序,否则根本就无法挂载根目录。但是SATA的驱动程序在/lib/modules/目录内,根本无法挂载根目录,又怎么读取到/lib/modules/目录内的驱动程序呢?此时,通过虚拟文件系统来处理这个问题。
虚拟文件系统一般使用的文件名为/boot/initrd,这个文件的特色是,它也能通过Boot loader来加载到内存中,然后这个文件会被压缩并且在内存当中仿真成一个根目录,且此仿真在内存当中的文件系统能够提供一个可执行的程序,通过该程序来加载启动过程中所需要的内核模块,通
您可能关注的文档
- 2015年考研南开大学英语语言文学方向复习经验 专业课复习 公共课时间安排 招录比.pdf
- 2015年首都师范大学法语语言文学考研招生简章,考研参考书,考研招生人数.pdf
- 2015年天津外国语大学外国语言学及应用语言学考研真题,考研重点,真题解析.pdf
- 2015年天津外国语大学法语语言文学考研真题,考研参考书,考研经验,真题解析.pdf
- 2015年天津外国语大学语言类专业第二外语考研真题,复习经验,考研重点,考研参考书.pdf
- 2016年餐饮创业大时代要靠单品爆款再续辉煌.docx
- 2016年各大卫视版面与节目创新趋势浅析.pdf
- 2016孕妇初期适合吃的最新菜谱.pdf
- 2016清华大学人文学院日语语言文学考博历年真题解析-育明考博.pdf
- bb私房菜.doc
- 第18讲 第17课 西晋的短暂统一和北方各族的内迁.docx
- 第15讲 第14课 沟通中外文明的“丝绸之路”.docx
- 第13课时 中东 欧洲西部.doc
- 第17讲 第16 课三国鼎立.docx
- 第17讲 第16课 三国鼎立 带解析.docx
- 2024_2025年新教材高中历史课时检测9近代西方的法律与教化含解析新人教版选择性必修1.doc
- 2024_2025学年高二数学下学期期末备考试卷文含解析.docx
- 山西版2024高考政治一轮复习第二单元生产劳动与经营第5课时企业与劳动者教案.docx
- 第16讲 第15课 两汉的科技和文化 带解析.docx
- 第13课 宋元时期的科技与中外交通.docx
文档评论(0)