【Linux系统引导过程】 𡠰

原文: http://blog.gqylpy.com/gqy/314

"
***

第一步 开机自检

根据主板BIOS中的启动顺序,移交系统控制权。

当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。

这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了。
***

第二步 MBR引导

众所周知,硬盘上第0磁道第一个扇区被称为MBR,也就是Master Boot Record,即主引导记录,它的大小是512字节,别看地方不大,可里面却存放了预启动信息、分区表信息。

系统找到BIOS所指定的硬盘的MBR后,就会将其复制到0×7c00地址所在的物理内存中。其实被复制到物理内存的内容就是Boot Loader,而具体到你的电脑,那就是lilo或者grub了。

换一种说法,首先会根据硬盘等个个扇区中MBR的设置,将系统控制权传递给包含操作系统引导文件的分区,或者直接根据MBR记录中的引导信息调用启动菜单。
***

第三步 GRUB菜单

系统控制权传递给GRUB后,将会显示启动菜单,然后根据所选项或默认值加载Linux内核文件,最后将系统控制权转交给内核。

Boot Loader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核做好一切准备。

Boot Loader有若干种,其中Grub、Lilo和spfdisk是常见的Loader。

我们以Grub为例来讲解吧,毕竟用lilo和spfdisk的人并不多。
系统读取内存中的grub配置信息(一般为menu.lst或grub.lst),并依照此配置信息来启动不同的操作系统。
***

第四步 加载内核

根据grub设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作。此时,屏幕一般会输出“Uncompressing Linux”的提示。当解压缩内核完成后,屏幕输出“OK, booting the kernel”。
系统将解压后的内核放置在内存之中,并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立。至此,Linux内核已经建立起来了,基于Linux的程序应该可以正常运行了。

默认的内核文件位于:/boot/vmlinux-版本信息
***

第五步 init进程初始化

init是Linux系统中所有进程的祖宗。Linux内核首先会将系统中的/sbin/init进程加载到内存中,这一步骤会读取/etc/inittab文件,并依据此文件来进行初始化工作。然后负责完成一系列的系统初始化过程。

/etc/inittab文件最主要的作用就是设定Linux的运行等级,其设定形式是:id:5:initdefault:”,这就表明Linux需要运行在等级5上。

Linux的运行等级设定如下

  • 0:关机
  • 1:单用户模式
  • 2:无网络支持的多用户模式
  • 3:有网络支持的多用户模式
  • 4:保留,未使用
  • 5:有网络支持有X-Window支持的多用户模式
  • 6:重新引导系统,即重启
    ***

    第六步 init进程执行rc.sysint

在设定了运行等级后,Linux系统执行的第一个用户层文件是/etc/rc.d/rc.sysinit脚本程序。

它做的工作非常多,包括设定PATH、设定网络配置/etc/sysconfig/network、启动swap分区、设定/proc等等。

如果你有兴趣,可以查看一下/etc/rc.d/rc.sysinit文件,里面的脚本够你看几天的。
***

第七步 启动内核模块

具体是依据/etc/modules.conf文件或/etc/modules.d目录下的文件来装载内核模块。
***

第八步 执行不同运行级别的脚本程序

根据运行级别的不同,系统会运行rc0.drc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。
***

第九步 执行/etc/rc.d/rc.local

你如果打开了此文件,里面有一句话,读过之后,你就会对此命令的作用一目了然:

# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don’t
# want to do the full Sys V style init stuff.

rc.local就是在一切初始化工作后,Linux留给用户进行个性化设置的地方。你可以把你想设置和启动的东西放到这里。
******

启动第十步 执行/bin/login程序,进入登录状态

此时,系统已经进入到了等待用户输入账户和密码的时候了,你已经可以用自己的帐号登入系统了。

"

原文: http://blog.gqylpy.com/gqy/314

原文地址:https://www.cnblogs.com/gqy02/p/11371249.html

时间: 2024-10-13 05:23:53

【Linux系统引导过程】 𡠰的相关文章

【Linux系统引导过程】 -- 2019-08-08 20:40:08

原文: http://106.13.73.98/__/89/ *** 第一步 开机自检 根据主板BIOS中的启动顺序,移交系统控制权. 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它. 这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息.硬盘信息.内存信息.时钟信息.PnP特性等等.在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了. *** 第二步 MBR引导 众所周知,硬盘上第0磁道第一个扇区被称为MBR,也就是M

linux系统引导过程及引导修复

系统的引导过程 1.通电 2.bios初始化 eg:内存,硬盘没插好 3.磁盘引导 硬盘里面的数据是以分区形式保存,硬盘上的磁头对硬盘的数据进行扫描##磁道:磁头转一周的轨迹,可以确定数据在哪一环##扇区:确定哪一节的数据##系统引导的过程:#装双系统时,启动windows时,磁头需跳到c盘数据位置,来读取里面的数据,才能启动系统##系统关闭以后,断电,磁头会回到断电的时候所在的位置,硬盘通电,硬盘会转起来,磁盘不会跳到c盘位置,还是在默认的位置(0磁道),如何让磁头跳到c盘,读取数据?#在装系

[Linux学习笔记] Linux系统引导流程(一)

前面我们已经介绍过以CentOS为例的Linux系统的安装以及Linux常用命令的使用,本节内容我们将介绍Linux系统引导流程.当按下电源的那一刻,到我们看到用户界面,这其中都发生了些什么呢?赶快来一探究竟. 下图为Linux系统引导流程过程图: 以下对Linux引导流程过程做一个简单的说明: 1. POST加电自检 POST(POST ON SELF TEST)首先对每一个设备进行检查,完成后会寻找存有引导记录的设备,找到读入操作系统的引导记录,将系统控制权交给引导记录. 2. MBR引导

linux的引导过程和服务控制

引导过程和服务控制 要求: ? 设置Linux系统每次开机后自动进入字符模式界面. 步骤: 编辑/etc/inittab文件,将默认运行级别修改为3.如图所示: ? 使用ntsysv工具同时调整2.3.4.5运行级别中的服务状态,关闭下列服务:anacron.atd.avahi-daemon.Bluetooth.cups.firstboot.hidd.hplip.ip6tables.iptables.isdn.mcstrans.mdmonitor.nfslock.pcscd.portmap.re

深入了解linux操作系统引导过程详解

Linux操作系统的引导过程:开机自检.mbr引导.grub菜单.加载linux内核.init进程初始化. 1.开机自检,检测硬件后根据启动顺序将控制权交给本机硬盘 2.mbr引导,根据硬盘的主引导记录,将控制权转交给引导分区或者启动菜单 3.grub菜单,启动菜单提供给用户选择进入不同的操作系统(例如windows)的界面.默认进入linux将系统控制权转交给内核. 4.加载linux内核,内核负责分配调度硬件资源与系统程序,内核接过系统控制权,开始管理整个Linux系统. 5.init进程初

Linux操作系统的引导过程及初始化的必要操作详解

系统引导是操作系统运行的开始,在用户能够正常登录到系统之前,Linux操作系统的引导过程将完成一系列的初始化任务,并加载必要的程序和命令终端,为用户登录做好准备. 一.引导过程预览 如图: 1.开机自检 服务器主机开机之后,将根据主板BIOS中的设置对CPU.内存.显卡.键盘等设备进行初步检测,检测成功后根据预设的启动顺序移交系统控制权,大多时候会移交本机硬盘: 2.MBR引导 当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR(主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的

linux系统引导流程

系统引导流程********************************************************************固件 firmware(CMOS/BIOS)--->POST加电自检↓自举程序BootLoader(GRUB)--->载入内核↓载入内核Kernel  ----->驱动硬件↓启动进程init PID=1(恒为一)↓读取执行配置文件/etc/inittab 同步软硬件时钟date软件时钟 hwclock硬件时钟更改软件时钟 # date 070

Linux系统启动引导过程和服务控制

刚入门的小伙伴们是不是还在迷惑到底系统从我们按下电源键的那一刻,是如何进行一步一步运行的,知道我们输入用户名和密码进入系统,来操作电脑,今天我们就来写一下开机的启动过程以及相关服务的控制. 一. 系统引导流程: 1 . 开机加电,BIOS对硬件加电自检 加电自检,检测硬件设备,这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息.硬盘信息.内存信息.时钟信息.PnP特性等等 2 . 检查启动顺序,从硬盘引导,读取MBR(446字节) 硬盘上第0磁道第一个扇区被称为MBR,也就是Master

linux开机引导过程总览

简单的说,系统的启动过程如下: 1.开机自检: 按下电源按键后,计算机硬件会主动读取BIOS加载硬件信息并进行硬件的自我测试,然后系统会根据BIOS里的启动顺序读取第一个可启动的设备,从而移交系统控制权,大多数时候移交给本机硬盘. 2.MBR引导 当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中MBR(Master Boot Record,主引导记录)的设置,将系统的控制权传递给包含操作系统引导文件的分区,或者直接根据MBR记录中的引导信息调用启动菜单(如GRUB). 3.GRUB菜单 启动过