Linux系统启动的标准流程.doc

Linux系统启动的标准流程.doc

ID:61487944

大小:40.00 KB

页数:5页

时间:2021-02-05

Linux系统启动的标准流程.doc_第1页
Linux系统启动的标准流程.doc_第2页
Linux系统启动的标准流程.doc_第3页
Linux系统启动的标准流程.doc_第4页
Linux系统启动的标准流程.doc_第5页
资源描述:

《Linux系统启动的标准流程.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、系统的启动是指从计算机加电到显示用户登陆提示的整个过程。我们将在这里对整个流程以及关系到的一些内容做讨论。过程主要可以分为两个阶段:载入内核和准备运行环境,我们分别进行讨论。本部分的讨论只基于i386硬件架构,但大部分内容是有共通性的。图一 启动过程综述载入内核(将内核载入内存,并将控制权传递给它)    计算机加电到BootLoader开始工作,硬件含量远大于软件含量,所以这里暂不提及,如果实在有关心的朋友,请先别着急,我们将在下期里讨论它。这一阶段是 BootLoader 的主战场。它必须将可执行的内核映像和内核启动所需的额外数据信息从

2、存储介质上载入内存,这并不是件简单的工作,因为除了从硬盘载入,可能还会需要从网络引导服务器这样的外部介质上载入。各种纷繁芜杂的文件系统类型也给载入带来了巨大的挑战。BootLoader 可能还需要改变CPU的运行特权级别,然后就可以让内核投入运行了。除此之外, BootLoader 还要完成一些其它功能,比如从BIOS中获取系统信息,或者从启动时的命令行参数中提取信息等。有的 BootLoader 还要扮演引导选择工具的角色,方便用户选择不同的操作系统。BootLoader的职责:l         判断到底要载入什么,这可以要求用户进行选

3、择l         载入内核和它可能需要用到的相关数据,比如initrd或者其它参数l         为内核准备好运行环境,比如,让CPU进入特权模式l         让内核投入运行BootLoader的历史变迁:早期的Linux只支持软盘引导扇区和 Shoelace 两种 BootLoader。 Shoelace 是从Minix继承下来的、文件系统相关的 BootLoader。它只支持 Minix 文件系统。当时Linux只使用 Minix 一种文件系统,所以这样做并没什么问题。可是, Minix 文件系统存在不能保存创建、修改和访

4、问时间信息;文件名长度限制在14个字节等问题。随着Linux的发展,这些与传统Unix文件系统大相径庭的缺陷越来越让人难以忍受,它已经不适合作为Linux的主要文件系统了。为了支持其它文件系统的实现,Linux引入了VFS(虚拟文件系统)。这个举措很快就引起了热烈的反响,一大批新的文件系统实现出现了。其中一个 Minix 文件系统的变体,扩展文件系统 Xiafs(根据它的作者命名)突破了 Minix 文件系统的文件名长度限制,将此长度一举提高到全部30个字符。当时文件系统之间的竞争着实激烈,很难看出谁会胜出,甚至搞不清楚会不会有一个最终的“

5、赢家”。       尽管不确定性很大,但是有一点却是清楚的:不管最后哪种文件系统会受到青睐,但是除了 Minix 作为根文件系统,谁也不能从硬盘上启动,因为Shoelace只支持Minix文件系统。LILO应运而生了。由于支持多种文件系统(当时内核支持的主流文件系统已经有 Minix ,扩展文件系统 ext ,Xiafs 。还有人在移植 BSD 的 FFS ,根本看不出来什么时候是个尽头)在实现和维护上难度太大,而BootLoader 也不应该成为人们试验新的文件系统的绊脚石,所以LILO采取了和文件系统无关的设计。这种设计经受住了时间的

6、考验,被证明是非常成功的。即使在今天,LILO仍旧可以从内核支持的绝大部分文件系统的硬盘上启动。但是,由于ext2历经了这么长的时间一直没有大的演变,成为了事实上的标准,所以跟文件系统相关的BootLoader又渐渐流行了起来。   尽管ext2已经能满足大部分人的日常需要,但是文件系统的设计者们还是在研制以日志机制为特征的新的文件系统,并且已经取得了相当大的进展。考虑到当前又有可能出现多种文件系统的实现同时并存的情况,因此对与文件系统无关的BootLoader的需求可能会再次变得强劲。初始化基本的操作环境一旦内核开始运行,它会初始化内部的

7、数据结构,检测硬件,并且激活相应的驱动程序,为应用软件的准备运行环境。期间包含一个重要操作——应用软件的运行环境必须要有一个文件系统,所以内核必须首先装载root文件系统。由于我们的目的是介绍基本流程,所以相关的硬件初始化细节就不再讨论,相关内容在下一期杂志中会有详细介绍。硬件初始化完成后,内核着手创建第一个进程——初始进程。说是创建,其实也不尽然,该进程其实是整个硬件上电初始化过程的延续,只不过执行到这里,进程的逻辑已经完备,所以我们就按照进程的创建方式给它进行了“规格化”——我们把这个初始进程也叫做“硬件进程”,它会占据进程描述符表的第

8、一个位置,所以可以用task[0][k1] 或INIT_TASK表示。该进程进而会再创建一个新进程去执行init()函数,其实,这个新进程才是系统第一个实际有用的进程,它会负责接

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

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

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