Linux启动流程描述

目录

Linux的引导过程

启动系统内核

启动init进程


什么是Linux

Linux的内核最初是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的

Linux全称GUN/Linux,是一套开源的类Unix操作系统,是一个基于POSIX的多用户、多任务,支持多线程和多CPU的操作系统,支持32位和64位硬件

常用的Linux的发行版本

Ubuntu Linux        桌面市场方面

Redhat                 服务器稳定版本(服务会收费)

CentOS                社区企业版(免费)

扫描二维码关注公众号,回复: 17115940 查看本文章

SuSE                     主要用于欧洲等地区(有收费版本,有不收费版本—可以理解为欧洲版的CentOS)

Fedora Core          桌面用户测试专用

Linux与Windows的比较

 

Windows

Linux

使用权限

收费系统

开源的免费系统

多用户/多线程

支持

支持

使用场景

主要用于游戏玩家等个人计算机的操作系统

主要用作服务器的操作系统

系统结构

由一个个独立的软件模块组成

基于文件的操作系统

软件支持

软件数量和种类多
不过软件一般需要收费,由Windows官方进行开发维护

大部分位开源的免费软件,用户修改定制和再发布
不过软件的种类和功能较少

操作习惯

一般使用图形化操作(也支持命令行)

一般使用命令行来操作(也支持图形化)

安全性

Linux相比于Windows更加安全,Linux开源的方式能够更容易发现和修复错误

可定制性

Linux相比于Windows的定制化更高


Linux的引导过程

不同Linux系统的引导过程大体一致,不一样的是管理方式不一样,过程是一样的

以下的介绍是以CentOS6为例子的

启动系统内核

BIOS开机自检

BIOS开机自检也称为加电自检,是计算机BIOS的一个功能,在开机后会运行

针对计算机进行硬件检测,包含CPU、内存、硬盘等

自检过程中发现故障后会通过某些方式来提示硬件问题(告警灯、显示屏、LED等)

MBR引导

自检完成后BIOS中定义的BOOT启动项去寻找具有MBR引导程序的硬盘,启动该系统

如果启动盘有多个,则依次去检查,如果第一个启动盘有MBR引导,则就启动该启动盘,否则依次往下检查;如果检查中遇到启动盘的MBR引导程序有故障,会停留在该错误的界面,需要我们去排查故障

GRUB菜单

MBR引导结束后,进行GRUB菜单选择(如果启动盘有多个系统,选择哪个系统)

GRUB包含三个部分

Stage1           存储于MBR中前446字节,用于实现引导Stage2

Stage1.5        存储于/boot/grub目录中,用于识别内核所在分区的文件类型

Stage2           存储于/boot/grub目录中,结合grub.conf配置文件实现引导操作系统

具体工作

确定设备的MBR后,会将计算机的控制权转交给MBR中位于前446字节的Stage1

然后引导stage1.5,结合stage2实现操作系统的选择

启动Kernel

启动所选系统的内核(Kernel),再次检查硬件设备,并加载设备启动所需要的驱动

硬件设备驱动是在系统内的,我们现在还没有启动系统,如何加载驱动

需要使用内核下或者BOOT根分区下的initramfs.img文件来加载驱动

initramfs.img文件是在内核启动时提供一个基本的,最小的文件系统,以便于内核能够访问系统所需要的驱动程序和工具并启动,以此来进入到真实的系统中

kernel初始化过程

  1. 启动所选系统的内核
  2. 进行设备检查探测
  3. 进行驱动初始化(可能从initrd(initramfs)文件中装载设备驱动模块)
  4. 以只读挂载根文件系统
  5. 装载第一个进程init(PID:1)

启动init进程

进入到真实的操作系统中之后,此时就需要启动相关服务、进程

init进程是系统所有进程的起点(PID为1),其它进程都为此进程的子进程;作用是初始化系统环境

读取/etc/inittab配置文件——定义了系统运行级别

运行init进程需要读取的/etc/inittab配置文件,该配置文件定义了系统的运行级别、/etc/sysinit脚本、/etc/rc.d/rc脚本以及mingetty进程

系统运行进程

通过该配置文件来识别系统启动到哪个运行级别下;不同的运行级别对应不同的运行模式,不同的运行模式系统所需要提供的服务是不一样的

0级别是关机

1级别           单用户

2级别           多用户,但是没有网络服务

3级别           多用户,全功能(一般为3级别)

4级别           系统保留,不会使用  

5级别           图形化界面 

6级别           重启

/etc/rc.d/rc.sysinit脚本——系统初始化脚本

包含主机名、挂载的磁盘分区、关闭SELinux等初始化工作

etc/rc.d/rc脚本——各种服务的启动/关闭脚本

通过该脚本来需要开启/关闭该运行级别下需要开启/关闭的应用服务,并需要读取开机自启动文件(/etc/rc.d/rc.local文件)下的应用或服务将其开启

K开头表示关闭该服务、L开头表示开启该服务;先关闭服务,再开启服务

mingetty进程

运行mingetty进程打开登录窗口,同时执行/bin/login跳出登录界面,输入用户名密码登录到系统,进行相应的操作

猜你喜欢

转载自blog.csdn.net/m0_49864110/article/details/133960364
今日推荐