您的当前位置:首页正文

地理信息系统及其应用

来源:个人技术集锦
应用科技

Linux操

作系统的启动过程分析

陈长生王艳霞

(河南经贸职业学院电子工程系,河南郑州450053)

[}裔耍】首先通过对Linux亲!lr=作系统的简单介绍,然后详细分析了Linux操作系统的启动过程,同时也介绍了启动过程中的相关概念,以

期以够起到抛砖引玉的作用。

供键词】Linux;启动;内核;加栽

Linux是在1991年发展起来的具有UNIX全部特征的操作系统,其内核源代码公开。Linux是一个以Intel系列CPU(CYRIX、AMD的

CPU也可㈨为硬件平台、完全FREE的与UNIX兼容的操作系统,完

全适合于个人PCo

Linux的核心具有Windows无法比拟的稳定性和

高效率,因此成为当前流行的操作系统之一。本文将对Linux的启动过

程进行分析。

1

Linux启动过程简析

许多人对Linux的启动过程感到很神秘,因为所有的启动信息都

在屏幕上一闪而i虫其实,Linux的启动过程并不像启动信息所显示的

那样复杂,它主要分成两个阶段:第一个阶段是启动内核。在这个阶段,内核装入内存并在初始化每个设备驱动器时打印信息。第二个阶段是执行程序inito装入内核并初始化设备后,运行init程序。init程序处理所有程序的启动,包括重要系统精灵程序和其它指定在启动时装入的软件。

1.1启动内核

首先介绍启动内核部分。电脑启动时,BIOS装载MBR,然后从当前活动分区启动,LILO获得引导过程的控制权后,会显示LILO提示符。此时如果用户不进行任何操作,LJLO将在等待制定时间后自动引导默认的操作系统,而如果在此期间按下TAB键,则可以看到一个

可引导的操作系统列表,选择相应的操作系统名称就能进入相应的操作系统。

当用户选择启动LINUX操作系统时,LILO就会根据事先设置好的信息从ROOT文件系统所在的分区读取LINUX映像,然后装入内核映像并将控制权交给LINUX内核。LINUX内核获得控制权后,以如下步骤继续引导系统:

1)LINUX内核—般是压缩保存的,因此,它首先要进行自身的解压缩。内核映像前面的一些代码完成解压缩。

2)如果系统中安装有可支持特殊文本模式的、且LINUX可识别的SVGA卡,LINUX会提示用户选择适当的文本显示模式。

3)内核接下来检测其他的硬件设备,例如硬盘、软盘和网卡等,并对相应的设备驱动程序进行配置。这时,显示器上出现内核运行输出的一些硬件信息。

4)内核装载ROOT文件系统。ROOT文件系统的位置可在编译内核时指定,也可通过LILO或RDEV指定。文件系统的类型可自动检

测。如果由于某些原因装载失败,则内核启动失败,最终会终止系统。

12执行ink程序

利用init程序可以方便地定制启动期间装入哪些程序。init的任务是启动新进程和退出时重新启动其它进程。例如,在大多数Linux系统中,启动时最初装入六个虚拟的控制台进程,退出控制台窗口时,进程死亡,然后init启动新的虚拟登录控制台,因而总是提供六个虚拟登陆控制台进程。控制init程序操作的规则存放在文件/etc/inittab中。

2Linux启动过程详解2.1

Linux启动过程综述

系统加电自检后,位于BIOS的ROM中的引导装入程序开始寻找引导扇区。引导扇区一般是磁盘的第一个扇区,其中有一个可以加载操作系统的小程序。引导扇区由字节OxlFE处的幻

OxAA55标记,也

就是扇区的最后两个字节,引导载入程序以此来区分某个磁盘的第一个

扇区是否是引导扇区。引导载入程序可以在软盘驱动器,硬盘驱动器以

及CD—ROM中寻找引导扇区,当找到了一个引导分区之后,就将其载入内存,然后将控制移交给加载操作系统的那个程序。其实在一般的Linux系统中,引导装入程序所加载的引导扇区实际上是LIL0的一部分,即为LILO的“第一阶段启动加载器”。“第二阶段启动加载器”向你给出提示,然后加载你所选择的操作系统内核。接着内核加载并运行init程序。因为init程序的运行需要调用库中的函数,所以同时还要载入glibc库。init程序读取/etcAnittab文件,这个文件指定了系统默认的运行级别,根据文件内容先由Bash运行系统初始化脚本/etc/rc.d/rc.sysinit,进行诸如文件系统检查和加载,时钟设置,主机名设置等初始化工作。然后根据默认的运行级别调用/etc/rc.d/rc#.d脚本,来启动一些服务程序,接着运行mingetty,它使得用户能够通过~个虚拟

控制台进行登陆。当用户输入用户名之后,login程序开始运行,它请

求用户输入密码并核对密码,如果密码准确为用户调用默认的shell。shell给出一个提示符,用户就可以在命令行格式下输八和执行i占令。

22

Linux中的kilt进程

系统启动时,启动程序运行在内核式。这时,只有—个初始进程在系统中运行。初始化结束后,初始进程启动被称为init的内核进程。init进程有两个作用。第一个作用是扮演终结父进程的角色。因为init进程永远不会被终止,所以系统总是可以确信它的存在,并在必要的时候以

它为参照。ink的第二个角色是在进^某个特定的运行级别(Runlevel)

时运行相应的程序,以此对各种运行级别进行管理。它的这个作用是由/etc/inittab文件定义的。Init进程是其他进程的父进程,它根据启动脚本文件/etc/inittab的内容创建其他进程,以完成一些重要的工作。

23

Linux的shell

Shell是linux的一个特殊程序,是用户与操作系统内核之间的接口,也是linux命令行解释器,即用户所见到的linux命令行界面。Shell接受用户输入的命令并翻译成指令,是一个介于用户和底层操作系统核心之间的程序。Shell拥有自己内置的命令集,同时也能被其他linux实用程序和应用程序调用。

Shell并非一般意义上的命令懈释器,它同时还是面向对象的第四代程序设计语言。如果要启动一个程序,对一个文件进行简单的处理,只要直接输入命令即可。如果需要根据环境和条件启动多条命令,并对一些文件做许多事情,则可以通过shell程序(通常称为shell脚本)

来完成。Shell程序包含了要由shell执行的命令并存放在普通的linux

文件中。

3绪语

Linux系统特有的优势性及便捷性已经开始越来越广泛的被人们使用。许多公司企业开始使用Linux系统作为自己电脑的操作系统。Lin—UX在今后的生活工作中将会越来越引起人们的重视。

[参考文献]

…1挪青。成秋华劂络操作系统应用(Linux)[M].北京:高等教育出版社,2003.

f2】赵炯.Lmux内该完‘=刨析fMJ.北京:机耔良上业出版祉,2006.P】JⅫnKirkland.DavidCarmichael,ChristopherLTinker,GregoryL.Tinker.Linux系统故障I参断与排除【^1j.北京:人民邮电出版社,2007.

_11虻托蝴U研n∞241

因篇幅问题不能全部显示,请点此查看更多更全内容