linux开机流程、模块管理与Loader

1.系统开机过程:

1)加载BIOS的硬件信息与进行自我测试,并依据设定取得第一个可开机的装置

2)读取并执行第一个开机装置内MBR的boot Loader(亦即grub,spfdisk等程序)

3)依据boot loader的设定加载Kernel,Kernerl会开始侦测硬件信息与加载驱动程序

4)在硬件驱动成功之后,Kernel会主动呼叫init程序。而init会取得run-level信息

5)init执行/etc/rc.d/rc.sysinit档案来准备软件执行的作业环境(如网络,时区等)

6)init执行run-level的各个服务之启动(script方式)

7)init执行/etc/rc.d/rc.local档案

8)init执行终端机仿真程序mingtty来启动login,最后就等待用户登入啦。

2.BIOS、开机自我测试,MBR与boot loader

1)启动整部系统首先就得要让系统加载BIOS,并透过BIOS程序加载CMOS的信息,并且藉由CMOS内的设定值取得主机的各项硬件配置。取得这些信息后,BIOS还会进行自我测试,然后开始执行硬件侦测的初始化,并设定PnP(Plug and Play,即插即用装置),之后在定义出可开机的装置顺序,接下来就会开始进行装置的数据读取了(MBR相关任务的开始)。

2)开机管理程序(Boot Loader)安装在开机装置的第一个扇区(sector)内,也就是我们一直谈到的MBR(Master Boot Record,主要启动记录区)。BIOS透过INT 13这条信道来读取MBR。

3)Loader最主要的功能是识别操作系统的文件格式并加载核心到主存储器中去执行。其中每个文件系统(filesystem或partition)都会保留一块启动扇区提供操作系统安装boot loader,而通常操作系统默认都会安装一份loader到他的根目录所在的文件系统的boot sector上。linux系统安装时,你可以选择将boot loader安装到MBR去,也可以选择不安装。而windows安装时,它预设会主动的将MBR与boot sector都装上一份boot loader程序。因此,安装多重操作系统时,你的MBR常常会被不同的操作系统的boot loader所覆盖。

4)boot loader的主要功能有:

提供选单:用户可以选择不同的开机项目,这也是多重引导的重要功能

载入核心档案:直接指向可开机的程序区段来开始操作系统

转交其他loader:将开机管理功能转交给其他loader负责。

5)windows的loader预设不具有控制权转交功能,因此不能使用Windows的loader来加载Linux的loader,这也是为啥必须先装windows在装linux。

3.加载核心侦测硬件与initrd:boot loader开始读取核心后,linux会将核心解压缩到主存储器中,并且利用核心的功能,开始测试与驱动各个周边装置,包括储存装置、CPU、网络卡、声卡等。此时Linux会以自己的功能重新侦测一次硬件,而不一定会使用BIOS侦测到的硬件信息。即核心此时才开始接管BIOS后的工作了。核心一般放在/boot/vmlinuz

4.Linux可以动态加载核心模块的(可以理解为驱动程序),这些核心放置在/lib/modules/目录内。由于放置到磁盘根目录内(/lib不能与/分别放在不同的partition),因此在开机的过程中核心必须要挂载根目录,这样才能够读取核心模块提供加载驱动程序的功能。而且为了担心影响到磁盘内的文件系统,因此开机过程中根目录是以只读的方式来挂载的。

5.虚拟文件系统一般使用的档名为/boot/inird,这个档案可以透过boot loader来加载到内存中,然后这个档案会被压缩并且在内存当中仿真出一个根目录,且此仿真在内存当中的文件系统能够提供一支可执行的程序,透过该程序来加载开机过程中所最需要的核心模块,通常这些模块就是USB,RAID,LVM,SCSI等文件系统与磁盘接口的驱动程序,等载入完成后,会帮助核心重新呼叫/sbin/init来开始后续的正常开机流程。

6.第一支程序init及配置文件/etc/inittab与runlevel:在核心加载完,进行完硬件侦测与驱动程序加载后,此时你的主机硬件应该已经准备就绪了,此时核心会主动呼叫第一支程序,那就是/sbin/init,因此该程序的PID为1,该程序的最主要功能就是准备软件执行环境包括系统的主机名,网络设定,语系处理,文件系统格式及其他系统服务启动等。而所有的动作都会透过init的配置文件/etc/init的配置文件,亦即是/etc/inittab来规划,而inittab内还有一个很重要的设定项目,那就是默认的runlevel(开机执行等级)。关于运行级别棵参考:http://7613577.blog.51cto.com/7603577/1587174

7./etc/inittab解读:

initdefault:预设的runlevel设定值

sysinit:代表系统初始化动作项目

ctraltdel:代表[ctr]+[alt]+[del]三个按键是否可以重新启动的设定

wait:后面的字段设定的指令项目必须要执行完毕才能继续底下其他的动作

respawn:代表后面字段的指令可以无限制的再生(重新启动)。eg:tty1的mingetty产生的可登入画面,在注销结束后,系统会再开一个新的可登入画面等待下一个登入。

8.init的处理流程:该档案的内容设定是一行一行的从上往下处理的,具体为:

1)先取得runlevel亦即默认的开机级别。

2)使用/etc/rc.d/rc.sysinit进行系统初始化

3)执行runlevel对应的行,eg:runlevel=5,则执行l5:5:wait:/etc/rc.d/rc 5

4)设定[ctr]+[alt]+[del]这组的组合键功能

5)设定不断电系统pf,pr两种机制

6)启动mingetty的六个终端机(tty1~tty6)

7)最终以/etc/X11/perfdm-nodaemon启动图形接口

时间: 2024-08-05 05:51:15

linux开机流程、模块管理与Loader的相关文章

鸟哥的linux私房菜——第20章 启动流程、模块管理与loader

20.1 Linux启动流程分析 Linux启动过程: 按下开机电源后计算机硬件主动读取BIOS来加载硬件信息以及硬件系统的自我测试,之后系统会主动读取第一个可启动的设备(由BIOS设置),此时就可以读入引导加载程序(boot loader)了,引导加载程序指定使用那个内核文件来启动,并实际加载内核到内存中解压缩与执行,此时内核就能够在内存中活动,并检测所有硬件信息与加载适当的驱动程序来使主机运行,等内核检测硬件与加载驱动程序完毕后,就可以登录了. 1)加载BIOS的硬件信息与进行自我测试,并依

Linux开机流程即运行级别

Linux开机流程 一.概念 1.boot  loader: 领导装载程序,常用的有(Grub, spfdisk) 2.Grub: 是一个多操作系统启动管理器,开机时领导不同系统,windows  linux等 二.开机的流程 1.加载BIOS(basic input output system)的硬件信息,并进行自我测试 2.读取并执行第一个开机装置内MBR(主引导记录扇区)的boot loader即grub  spfdisk 等程序! 3. grub(boot loader)就是一个多操作系

Linux系统管理之模块管理、打印机设置(笔记)

第一部分.启动流程.模块管理与Loader 一.run level执行等级与切换 1.Linux通过设置run level来规定系统使用不同的服务来启动,基本上,依据有无网络与有无X Window将run level分为7个等级 0 - half :系统直接关机 1 -single user mode :系统单用户模式.用在系统出问题时维护 2 -multi-user,without NFS:类似下面的runlevel3,但无NFS服务 3 -Full multi-user:完整含有网络功能的纯

Linux开机流程一览

Linux开机流程一览 开机总体流程: 1.BIOS:加载BIOS的硬件信息并进行自我测试,依据设置取得第一个可开机的装置 2.MBR:读取并执行第一个boot loader 3.grub:读取/boot/grub识别系统文件 4.kernel:加载核心文件,加载完成后启动/sbin/init 5.init:启动init程序,完成后等待用户登陆 6.bash:用户登陆 总体流程图 init步详细介绍图

拜师鸟哥之linux学习体会(15)——开机流程、模块管理与Loader

1.    我们先回顾下之前所讲到的linux开机的一个流程:当你按下电源按键后计算机硬件会主动读取BIOS来加载硬件信息及进行硬件系统的自我测试,之后系统会主动读取第一个开机装置(由BIOS设定),此时就可以读入开机管理程序了. 2.    简单地说,系统开机的整个流程如下: 1)加载BIOS的硬件信息与进行自我测试,并依据设定取得第一个可开机的装置 2)读取并执行第一个开机装置内MBR的boot loader 3)依据boot loader的设定加载kernel,kernel会开始侦测硬件预

Linux 开机流程详解

对于任何系统, 开机不仅仅是接通电源这么简单的事情, 在这短短的几秒或几十秒内将会发生许多事情, 了解这个完整的流程将是解决任何开机问题或提高开机速度的前提. 接下来, 我们就详细了解一下Linux的开机流程: 1. 加载 BIOS 的硬件信息并进行自我测试,并依据取得第一个可开机的装置; 2. 读取并执行第一个开机装置内 MBR 的 Boot Loader (如 grub, spfdisk 等程序); 3. 依据 Boot Loader 的设定加载 kernel, kernel 会开始侦测硬件

linux开机流程详解

Linux操作系统的开机流程详解 开机需要十步 第一步:开机自检(BIOS)就是开始工作之前先对自己的工具进行检查是否正常,如果正常那就可以进行接下来的步骤假如步正常就得检测哪里的问题进行处理.BIOS其实就是主板上的一给自检程序,开机先对主板上自带的和外接的一些开机必备的设备进行检测,像CPU,显卡,内存,硬盘等设备的自检过程就是自检 第二步:MBR引导,也就是根据装有linux系统的硬盘上的主引导区的记录进行引导,主引导记录处在硬盘上的第一给物理分区上,硬盘能够读取到数据也就是靠的这个最主要

linux开机流程、模块管理与Loader(续)

1.init处理系统初始化流程: 1)/etc/rc.d/rc.sysinit这个脚本用来设定系统环境,具体为: 取得网络环境与主机类型(读取/etc/sysconfig/network取得主机名与默认网关等网络环境) 测试与挂载内存装置/proc及USB装置/sys(除了挂载内存装置/proc外,还会主动侦测系统上是否具有usb的装置,若有则会注定加载usb的 驱动程序,并尝试挂载usb的文件系统) 决定是否启动SELinux 启动系统的随机数生成器 设定终端机字形 设定显示于开机过程中欢迎画

linux开机流程、模块管理与Loader(再续)

1./etc/sysconfig/目录简介: 1)authconfig:这个档案主要在规范使用者的身份认证机制,包括是否使用本机/etc/passwd,/etc/shadow密码记录使用何种加密算法,还有是否使用外部密码服务器提供的账号验证等,以及/etc/shadow密码记录使用何种加密算法,还有是否使用外部密码服务器提供的账号验证(NIS,LDAP)等.系统默认使用MD5加密算法,并且不使用外部身份验证机制 2)clock:设定linux主机的时区,基本上,在clock档案内的设定项目ZON