rhel6系统的启动流程

在linux学习过程中, 我们绝大数时间都用来去学习命令的使用或则是服务的搭建, 因为这些操作性的东西会让我们有一种成就感, 而很少有同学去学习底层的一些东西, 比如说操作系统, 其实任何一门技术当你学到一定高度的时候,你就会发现,很难再往上爬, 其中一个很大的原因就是基础知识的掌握不牢固。 写这段话,告诫自己与他人, 你可能会用你的一生去学习一门技术,长路漫漫, 何不从一开始就把基础打好。

废话就不多说了, 下面介绍rhel6系统的启动流程.

下面是centos6系统的启动流程图:

下面具体分析每个步骤的过程:

1>.POST 加电自检

加电自检是BIOS 功能的一个主要部分 。负责完成对CPU 、主板、内存 、硬盘子系统、显示子系统、 串并行接口、键盘、CD-ROM 光驱等硬件情况的检测

2>.选择启动项

通过BIOS, 选择系统引导的设备, 比如光盘、USB、磁盘。

3>.(以MBR分区的磁盘引导为例)MBR引导:

0磁盘0扇区的前446bytes, 存放的是bootloader引导程序。

446bytes显然太小了, 要想利用这446bytes做一个启动项显然有点困难, 为了解决这个问题, Linux将Boot Loader的程序运行与配置项加载分成三个阶段来运行:

stage1: 运行Boot Loader主程序, 这个程序必须被安装在启动区, 即MBR中。因为MBR空间有限, 因此在MBR当中仅安装Boot Loader的最小主程序, 并没有安装Boot Loader的相关配置文件。

stage1.5: 在MBR随后的扇区中存放,主要用于与stage2所在分区的文件系统进行交互。

stage2: 通过Boot Loader加载所有配置文件及相关的坏境参数信息, 这些配置文件及相关的坏境参数都存放于磁盘分区上的/boot目录下。

4>. 经过bootloader引导程序只是将核心内核文件vmlinuz-2.6.32-642.el6.x86_64加载起来, 把系统控制权移交给内核。

5>. 加载/usr/modules下模块驱动和挂载真正的/文件系统

想要加载/文件系统, 首先要加载/分区的驱动程序,而/分区的驱动程序却在/lib/modules/中,而/lib/modules这个目录却在/下, 显然无法去加载/lib/modules中的模块程序, 这时就需要ramdisk这个虚拟的/文件系统, 这个虚拟的/文件系统是在你安装操作系统内的时候, 系统会自动检测出你的磁盘驱动,创建一个虚拟的/文件系统中去。内核启动后, 首先会将虚拟的根文件系统加载起来, 通过虚拟根文件系统,去加载/lib/modules中的模块程序。将这些模块程序加载起来后, 真正的/系统就可以挂载起来了, 这时虚拟的/文件系统ramdisk退出系统了。

6>.启动init进程读取/etc/inittab文件和/etc/init/*.conf文件

a>. 使用/etc/rc.d/rc.sysinit初始化脚本

b>. 执行/etc/rc.d/rc脚本, 会自动加载/etc/rc#.d/下的所有脚本, #号为默认级别。#号为默认级别。

c>.执行/etc/rc.d/rc.local脚本

d>.执行/bin/login程序,进入登录状态。

rhel5的启动其实和rhel6差不多。 原理上都是这个样子的,但是还是有稍许的不同,比如在rhel5中,只去执行/etc/inittab的命令就OK了,而在rhel6中,将/etc/inittab分布在/etc/inittab和/etc/init.d/目录下。

rhel7的启动和rhel5、6可以说是发生了很大的变化,但是整个启动的思想还是可以参考rhel6的启动过程。

时间: 2024-10-31 09:10:23

rhel6系统的启动流程的相关文章

Linux之Centos系统的启动流程

概述 了解系统的启动流程,有助于我们了解Linux系统上的一些工作原理,有助于我们深入的理解一个系统的运作方式,那么本篇就以CentOS6系统为例,介绍一下有关Linux系统启动相关的内容,分为一下几个部分 1.Linux系统的一些基础概念 2.CentOS6上的启动流程概述 第一章 Linux系统的一些基础概念 Linux系统的组成部分:内核(kernel)+根文件系统(rootfs) rootfs:程序和glibc(GNU发布的libc库)   库:   函数集合,function,调用接口

0923------APUE 学习笔记----------Linux系统的启动流程

前言: 前天在看APUE的时候突然想到了这个问题,于是给自己科普一下Linux系统的启动流程. 1.加载BIOS 接通电源后,计算机首先加载BIOS(即Basic Input-Output System,该程序被固化在主板上的一个ROM芯片中,包括最基本的输入输出程序.系统设置程序.开机硬件自检程序和系统自举程序等),进行硬件自检(即Power On Self Test)检查计算机硬件是否满足运行的基本条件(对于非严重故障,会发出一些声音,严重故障则会直接退出),硬件自检完成以后,BIOS根据C

LINUX系统开机启动流程全解

1,linux系统6.0系列和7.0系列系统开机启动流程:简述:1,开机BIOS自检2,MBR引导(磁盘上的一个引导扇区512K)3,grub引导菜单(可进入单用户模式或者救援模式)4,加载Kernel内核5,启动init进程(6系列的第一个进程7系列的第一个进程是systemd6,读取initab启动文件执行rc.sysinit等开机启动脚本文件7,启动mingetty,启动系统登录界面 原文地址:https://blog.51cto.com/13858002/2429553

Linux系统开机启动流程介绍

一.linux系统进程启动流程图: 二.简单概括描述linux系统从开机到登陆界面的启动过程 1.开机BIOS自检 2.MBR引导 3.grub引导菜单 4.加载内核 5.启动init进程 6.读取inittab文件执行rc.sysinit.rc等脚本 7.启动mingetty进入系统登录界面 三.详细剖析linux系统启动过程 1.POST开机自检 电脑主机打开电源的时候随后会听到滴的一声响系统启动开始了开机自检POST-power on self Test自检开始这个过程中主要是检测计算机硬

Linux系统的启动流程以及做个小小的Linux

内核的作用     进程管理:进程间切换     内存管理:内存空间分割为内核空间和用户空间     IO管理:对底层硬件的使用必须由内来实现,不能由用户空间进程来实现     文件系统管理     驱动程序管理     安全管理:包括netfilter模块和selinux模块等 内核的设计模式     单内核:模块都是集成在内核内部(Linux是单内核)     微内核:模块都是独立的,随用随加载(Windows是微内核)     Ps:1.linux是单内核,但是广泛采用了微内核的设计思想

CentOS 6.2系统详细启动流程

CentOS 6.X启动流程 /boot分区 启动引导程序是默认可以识别boot分区的.因此在系统还无法加载硬盘的时候,boot分区是可以识别的! initramfs内存文件系统 CentOS 6.x中使用initramfs内存文件系统取代了CentOS 5.x中的initrd RAM Disk.他们的作用类似,可以通过启动引导程序加载到内存中,然后加载启动过程中所需要的内核模块[用来模拟真正的Linux文件系统结构,详细信息如下],比如USB.SATA.SCSI硬盘的驱动和LVM.RAID文件

[转] 浅谈Linux系统的启动流程

原文:http://blog.csdn.net/justdb/article/details/9621271 版权声明:本文为博主原创文章. Linux系统的启动时通过读取不同的配置文件,执行相应的Shell脚本完成的.当然本文只是简单的从文件的角度分析,更深层次的本文没涉及. 主要读取了以下文件: 1 /boot/grub/grub.conf 2 /etc/inittab 3 /etc/rc5.d(rc.d) 0-99 Seq 4 /etc/passwd (Login,input userna

关于Android系统的启动流程

当按下Android设备电源键时究竟发生了什么?Android的启动过程是怎么样的?什么是Linux内核?桌面系统linux内核与Android系统linux内核有什么区别?什么是引导装载程序?什么是Zygote?什么是X86以及ARM linux?什么是init.rc?什么是系统服务?当我们想到Android启动过程时,脑海中总是冒出很多疑问.本文将介绍Android的启动过程,希望能帮助你找到上面这些问题的答案. Android是一个基于Linux的开源操作系统.x86(x86是一系列的基于

Linux系统详细启动流程

第一阶段:BOIS(Basic Input Output System)初始化,如图1 首先加载的是BIOS ,通过bios程序去加载CMOS(用来保存BIOS的硬件配置和用户对某些参数的设定(如日期.时间.启动设置等)的芯片,是主板上的一块可读写的并行或串行FLASH芯片,是)的信息.取得cmos中的信息后,BIOS开始开机自检(POST),然后执行硬件的初始化,并设定Pnp(即插即用,U盘等)设备,再定义可以开机的设备顺序,接下来就是读取开机设备的数据(就是第一个开机设备内的第0个扇区内的M