`
icarusli
  • 浏览: 530996 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Linux启动过程

阅读更多

许多人对Linux的启动过程感到很神秘,因为所有的启动信息都在屏幕上一闪而过。其实,

  Linux的启动过程并不象启动信息所显示的那样复杂,它主要分成两个阶段:

  1.启动内核。在这个阶段,内核装入内存并在初始化每个设备驱动器时打印信息。

  2.执行程序init。装入内核并初始化设备后,运行init程序。init程序处理所有程序的启动,

  包括重要系统精灵程序和其它指定在启动时装入的软件。

  下面以Red Hat为例简单介绍一下Linux的启动过程。

  一、启动内核

  首先介绍启动内核部分。电脑启动时,BIOS装载MBR,然后从当前活动分区启动,LILO获得引

  导过程的控制权后,会显示LILO提示符。此时如果用户不进行任何操作,LILO将在等待制定

  时间后自动引导默认的操作系统,而如果在此期间按下TAB键,则可以看到一个可引导的操作

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

  当用户选择启动LINUX操作系统时,LILO就会根据事先设置好的信息从ROOT文件系统所在的分

  区读取LINUX映象,然后装入内核映象并将控制权交给LINUX内核。LINUX内核获得控制权后,

  以如下步骤继续引导系统:

  1. LINUX内核一般是压缩保存的,因此,它首先要进行自身的解压缩。内核映象前面的一些

  代码完成解压缩。

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

  选择适当的文本显示模式。但如果在内核的编译过程中预先设置了文本模式,则不会提示选

  择显示模式。该显示模式可通过LILO或RDEV工具程序设置。

  3. 内核接下来检测其他的硬件设备,例如硬盘、软盘和网卡等,并对相应的设备驱动程序

  进行配置。这时,显示器上出现内核运行输出的一些硬件信息。

  4. 接下来,内核装载ROOT文件系统。ROOT文件系统的位置可在编译内核时指定,也可通过

  LILO或RDEV指定。文件系统的类型可自动检测。如果由于某些原因装载失败,则内核启动

  失败,最终会终止系统。

  二、执行init程序

  其次介绍init程序,利用init程序可以方便地定制启动其间装入哪些程序。init的任务是

  启动新进程和退出时重新启动其它进程。例如,在大多数Linux系统中,启动时最初装入

  六个虚拟的控制台进程,退出控制台窗口时,进程死亡,然后init启动新的虚拟登录控制台,

  因而总是提供六个虚拟登陆控控制台进程。

  控制init程序操作的规则存放在文件/etc/inittab中。Red Hat Linux缺省的inittab文

  件如下:

  #

  #inittab This file describes how the INIT process should set up the system in a certain

  #run-level.

  #

  #

  #Default runlevel.The runlevels used by RHS are:

  #0-halt(Do NOT set initdefault to this)

  #1-Single user mode

  #2-Multiuser,without NFS(the same as 3,if you do not have networking)

  #3-Full multiuser mode

  #4-unused

  #5-X11

  #6-reboot(Do NOT set initdefault to this)

  #

  id:3:initdefault:

  #system initialization

  si::sysinit:/etc/rc.d/rc.sysinit

  10:0:wait:/etc/rc.d/rc 0

  11:1:wait:/etc/rc.d/rc 1

  12:2:wait:/etc/rc.d/rc 2

  13:3:wait:/etc/rc.d/rc 3

  14:4:wait:/etc/rc.d/rc 4

  15:5:wait:/etc/rc.d/rc 5

  16:6:wait:/etc/rc.d/rc 6

  #Things to run in every runlevel

  ud:once:/sbin/update

  #Trap CTRL-ALT-DELETE

  ca::ctrlaltdel:/sbin/shutdown -t3 -r now

  #When our UPS tells us power has failed,assume we have a few minutes of

  power left.Schedule a

  #shutdown for 2 minutes from now.

  #This does,of course,assume you have powered installed and your UPS

  connected and working

  #correctly.

  pf::powerfail:/sbin/shutdown -f -h +2 "Power Restored;Shutdown Cancelled"

  #Run gettys in standard runlevels

  1:12345:respawn:/sbin/minggetty tty1

  2:2345:respawn:/sbin/minggetty tty2

  3:2345:respawn:/sbin/minggetty tty3

  4:2345:respawn:/sbin/minggetty tty4

  5:2345:respawn:/sbin/minggetty tty5

  6:2345:respawn:/sbin/minggetty tty6

  #Run xdm in runlevel 5

  x:5:respawn:/usr/bin/X11/xdm -nodaemon

  Linux有个运行级系统,运行级是表示系统当前状态和init应运行哪个进程并保持在这种

  系统状态中运行的数字。在inittab文件中,第一个项目指定启动时装入的缺省运行级。

  上例中是个多用户控制台方式,运行级为3。然后,inittab文件中每个项目指定第二个

  字段的项目用哪种运行级(每个字段用冒号分开)。因此,对运行级3,下列行是相关的:

  13:3:wait:/etc/rc.d/rc 3

  1:12345:respawn:/sbin/minggetty tty1

  2:2345:respawn:/sbin/minggetty tty2

  3:2345:respawn:/sbin/minggetty tty3

  4:2345:respawn:/sbin/minggetty tty4

  5:2345:respawn:/sbin/minggetty tty5

  6:2345:respawn:/sbin/minggetty tty6

  最后六行建立Linux提供的六个虚拟控制台。第一行运行启动脚本/etc/rc.d/ rc 3;

  这将运行目录/etc/

  rc.d/rc3.d中包含的所有脚本,这些脚本表示系统初始化时要启动的程序。一般来说,

  这些脚本不需要编辑或改变,是系统缺省的。

分享到:
评论

相关推荐

    Linux启动过程综述

    ### Linux启动过程综述 #### 一、引言 Linux是一种开源的操作系统,以其高度的稳定性和安全性在服务器领域有着广泛的应用。对于深入理解Linux系统的行为及其管理来说,掌握Linux的启动过程至关重要。本文旨在详细...

    ARM Linux启动过程分析

    ARM Linux启动过程分析 1. ARM Linux 启动过程概述 ARM Linux 启动过程可以分为四个部分:引导加载程序(bootloader),Linux 内核,文件系统,应用程序。其中 bootloader 是系统启动或复位以后执行的第一段代码,...

    Linux启动过程分析

    "Linux启动过程分析" Linux 启动过程分析是嵌入式 Linux 系统的核心组成部分,理解 Linux 启动过程对嵌入式系统的开发和应用至关重要。本文将详细分析 Linux 启动过程,包括 bootloader 的执行流程和 ARM Linux 的...

    linux启动过程PDF

    ### Linux启动过程详解 #### 一、Bootloader详解 Linux系统的启动过程中,Bootloader扮演着极其重要的角色。它是系统启动的第一阶段,负责加载操作系统内核到内存中,并将控制权交给内核。根据不同的硬件平台,...

    Linux启动过程综述.pdf

    Linux启动过程是一个复杂而有序的序列,涉及到多个组件和阶段,从硬件初始化到操作系统核心的加载,再到用户空间服务的启动。以下是对Linux启动过程的详细解析,主要以Redhat 6.0 Linux 2.2.19 for Alpha/AXP为例,...

    Linux启动过程详解

    ### Linux启动过程详解 在深入理解Linux操作系统的工作原理时,了解其启动流程是至关重要的一步。本文将详尽解析Linux的启动过程,包括从引导区加载到系统初始化的各个环节。 #### 引导区引导 Linux的启动始于...

    ARMLinux启动过程分析.docx

    ARMLinux启动过程分析 本文将对ARMLinux启动过程进行详细的分析,主要介绍了bootloader的概念和作用、bootloader的执行流程、ARM Linux的启动过程等内容。通过对bootloader和Linux内核的研究,可以加速嵌入式系统的...

    ARM9开发系统的linux启动过程剖析的文档

    本篇文章将深入探讨基于ARM9开发系统的Linux启动过程,帮助读者理解这一复杂但至关重要的技术环节。 首先,我们需要知道Linux启动过程可以分为几个主要阶段:BIOS或Bootloader、Kernel加载和初始化、Initramfs以及...

    linux启动过程分析

    "Linux启动过程分析" Linux启动过程是一个复杂的过程,涉及到多个文件和阶段。下面我们将详细分析Linux启动过程中的各个阶段和关键文件。 1. 启动过程简介 Linux启动过程可以分为三个阶段:引导、内核初始化和...

    linux启动过程详解

    linux系统内核启动过程详细分析,希望对学习linux的大家有帮助。

    Linux 启动过程.docx

    Linux 启动过程 Linux 启动过程可以分为十个步骤,分别是加载 BIOS、读取 MBR、Boot Loader、加载内核、用户层 init、init 进程执行 rc.sysinit、启动内核模块、执行不同运行级别的脚本程序、执行/etc/rc.d/rc....

    计算机病毒与防护:Linux启动过程.ppt

    * * * * * * * * 计 算 机 病 毒 护 与 防 目录页 Linux启动过程 Linux启动过程 1.内核引导 当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。 操作系统接管硬件以后,首先...

    linux启动过程分析及dns服务器.doc

    Linux 启动过程分析及 DNS 服务器 Linux 启动过程分析是计算机专业的重要知识点之一,本文主要对 Linux 启动过程进行了深入分析,并对 DNS 服务器进行了讲解。Linux 是由 Linus Torvalds 在 1991 年开发的,之后在 ...

    linux启动过程,从上电BIOS启动到加载内核...

    Linux 启动过程 Linux 启动过程是一个复杂的过程,从上电 BIOS 启动到加载内核,中间经历了多个阶段。整个过程可以分为以下几个阶段: 1. BIOS 启动阶段:BIOS 在上电后自检,然后读取主引导记录(MBR),并将其...

Global site tag (gtag.js) - Google Analytics