Linux启动流程描述

目录

Linux的引导过程

启动系统内核

启动init进程


什么是Linux

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

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

常用的Linux的发行版本

Ubuntu Linux        桌面市场方面

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

CentOS                社区企业版(免费)

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

Fedora Core          桌面用户测试专用

Linux与Windows的比较

 

Windows

Linux

使用权限

收费系统

开源的免费系统

多用户/多线程

支持

支持

使用场景

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

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

系统结构

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

基于文件的操作系统

软件支持

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

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

操作习惯

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

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

安全性

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

可定制性

Linux相比于Windows的定制化更高


Linux的引导过程

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

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

Linux启动流程描述_第1张图片

启动系统内核

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跳出登录界面,输入用户名密码登录到系统,进行相应的操作

你可能感兴趣的:(Linux,linux,运维,服务器)