linux学习之——开机启动流程的详解

本博客主要涉及以下两个方面:

1.linux开机启动总流程

2.各部分操作系统陌生名词解释

前言解释:这里会主要对开源系统linux中的***Debian和Centos7*** 系列的启动流程进行详解,主要对Debian进行详解,centos7系列本质上差不多,区别会详列出来,请对比查看。

1.开机启动总流程
因为Debian本身就属于操作系统,所以启动流程中最重要的部分还是操作系统自身的启动,也就是操作系统内核的启动。于是将整个启动过程主要分为下面5个步骤:
1.操作系统内核的启动——2.守护进程的启动——3.开机程序的启动——4.用户登陆——5.***人机交互界面shell ***的启动(其中2步骤决定着3的启动内容,下面会有解释)。

1.1启动各部分详解

1.1.1操作系统内核的启动步骤
1.电脑通电——2.BIOS 进行通电自检和自启动程序的发现——3. MBR中grub 程序的启动——4.系统内核的启动
详细流程是:计算机通电后,主板中的***ROM 芯片***上的BIOS程序启动,并对计算机进行开机前的程序检查和发现磁盘分区表中的第一个***扇区*** 中的主引导记录块(通常分区表中第一个扇区中会有系统的启动引导程序),这里讲的是MBR分区表中的grub启动引导程序,grub可以读取内核文件对其进行启动,到此,最重要的部分系统内核就算启动完成了。

1.1.2守护进程和开机程序的启动步骤
一个操作系统中最重要的部分是内核,但仅仅只有内核肯定是行不通的,除此以外,还需要需许许多多的程序来让内核调用,所以操作系统的启动第二部就是守护进程的启动从而引导开机程序的启动,在这里,守护进程决定着什么开机程序的启动,因为操作系统中有太多的程序,但每次开机会根据你的操作启动的程序也会不同。所以,会先启动守护进程然后来决定开机需要启动什么程序,在先前的linux系统中,会有7个进程进行选择,init 0~init6,分别代表的操作如下:
init0:关机服务
init1:单用户模式
init2:不支持NFS服务的***多用户模式***
init3:支持NFS服务的多用户模式
init4:保留
init5:图形用户界面
init6:重启服务

1.1.3用户登陆启动步骤

一般来说,用户的登陆方式有三种:
命令行登陆
ssh登陆
图形界面的登陆
下面主要介绍做常用的命令行登陆和图形界面登陆:
命令行登陆:init进程调用getty程序,让用户输入用户名和密码,输入完成后,再调用login程序,对密码进行核对,如果密码正确,就从文件/etc/passwd中读取该用户指定的shell,然后启动shell。
图形界面的登陆:init进程调用显示管理器,Gnome图形界面对应的显示管理器为gdm(Gnome display Manager),然后输入用户名和密码,如果密码正确,就读取/etc/gdm3/Xession,启动用户的会话。

1.1.4人机交互界面shell的启动步骤

人机交互界面shell的启动,通常用户登陆后,系统内核会给用户分配一个专用的shell,当login程序对密码进行核对成功后,会从文件/etc/paaswd中获取被指定的shell,然后启动打开shell。
shell:英文翻译为壳,简单来说就是命令行界面,因为操作系统是特别脆弱的,为了防止非专业人士直接对其操作造成损害,所以可以通过shell人机交互界面与操作系统进行会话,从而实现用户的需求。

Debian和centos的区别:
主要表现在centos7之中,之前所使用的守护进程已经被system代替。Debian中使用init进程来对开机启动程序进行设定,但在centos7后面的版本中,通过systemd执行sysinit.target文件来设定,但centos7后面的版本是兼容运行级别的。主要原因是使用systemd后系统的效率会大大提高,原因如下图:
在这里插入图片描述

2.上文中操作系统陌生名词解释
因为我自己在了解整个过程中的时候对有的系统名词不了解其含义,所以下面我会将比较陌生的名词列出来,因为篇幅过长的话会显得很啰嗦,所以请大家去csdn或者百度百科进行了解,下面只列出来我其中重要并且陌生的系统名词:
1.Debian和centos系统。都属于自由软件操作系统,内核都是linux系统的内核。
2.人机交互界面shell。linux中默认的shell是/bin/bash
3.BIOS。基本输入输出系统,主板上的Rom芯片上的一个程序。
4.MBR和GRUB。MBR属于磁盘分区表的一种类型,GRUB是系统内核的自启动程序。
5.ROM。只读存储器,只能读取,不可修改,局限性太大,已经被淘汰,现在使用的是EEPROM存储器。
5.扇区。磁盘的基本单位。
6.单用户模式和多用户模式。也可以理解为系统界面和普通界面。

PS:其中重要的名词我都使用特殊标记标记出来了.

大家有什么不同的见解请底下评论出来,一起学习,一起进步。

猜你喜欢

转载自blog.csdn.net/weixin_44431280/article/details/97527902