- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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
- 1.1细胞是生命活动的基本单位课件-2024-2025学年高一上学期生物人教版必修1.pptx
- 1.2细胞的多样性和统一性第1课时课件-2024-2025学年高一上学期生物人教版必修1.pptx
- 第16课《白杨礼赞》课件-2025-2026学年统编版语文八年级上册.pptx
- 2026届高三生物一轮复习课件+减数分裂与生物的遗传、变异.pptx
- 3.1细胞膜的结构和功能第2课时课件-2025-2026学年高一上学期生物人教版必修1.pptx
- 2025届高三生物一轮复习课件2.1减数分裂和受精作用.ppt
- 中考语文二轮专题复习课件:新闻概括题.pptx
- 第6课《我看》课件+++2025-2026学年统编版语文九年级上册.pptx
- 第21课《人民英雄永存不朽》课件-2025-2026学年统编版语文八年级上册.pptx
- 2025年广西河池罗城特聘农机技术指导员的(1人)考前自测高频考点模拟试题含答案详解(b卷).docx
最近下载
- 神经内科三基考试题及答案.doc VIP
- 等离子体物理与当代高新技术(本科生).ppt VIP
- SMTC 2 800 003 LIN节点设计需求LIN node design requirements(20180730).pdf
- 医院医院安保服务及停车场运营管理服务招标文件.pdf
- (最新)社区网格员考试试题(含答案).docx VIP
- 老小区燃气管道改造监理实施细则.docx VIP
- 中国行业标准 YY/T 1831-2021梅毒螺旋体抗体检测试剂盒(免疫层析法).pdf
- Walkera华科尔无人机FCS-F8使用指南_CN_V1.2_2020.10.12(金属壳版).pdf
- 五升六数学暑假作业60天附答案.docx VIP
- 高中物理:强基计划专题讲座.pptx VIP
文档评论(0)