Linux系统启动过程

Linux系统启动过程

BIOS --> MBR --> GURB --> Kernel --> Init --> Runlevel

  1. BIOS(Basic Input/Output System):基本输入输出系统
  2. MBR(Master Boot Record):主引导记录
  3. GRUB(Grand Unified Bootloader):多系统启动程序
  4. Kernel:内核
  5. Init:初始进程
  6. Runlevel:运行级别

BIOS

BIOS主要是进行开机自检,检查一些硬件,比如运算器、存储器等,再去找MBR信息。

MBR

主引导记录(MBR),是计算机开机以后访问硬盘时所必须要读取的第一个扇区,大小为512字节,包含最多446字节的启动代码、4个硬盘分区表项(每个表项16字节,共64字节)、2个签名字节(0x55,0xAA)。

GRUB

GRUB是多操作系统启动程序,用于引导不同的系统。grub的配置文件为/etc/default/grub

加载内核

当电脑通电之后,首先是BIOS开机自检,检查计算机的硬件,操作系统接管硬件之后,首先读入 /boot 目录下的内核文件。

启动init

init进程是Linux系统中所有进程的起点。init进程会读取配置文件来确定系统的运行级别。

运行级别

许多程序需要开机自动,这些程序需要init进程去开启,但是不同场景需要启动不同的程序,这些场景就是指运行级别,init进程会根据运行级别去启动不同的程序,一共分为7个运行级别:

  • 0: 系统停机状态,也就是关闭计算机,系统默认运行级别不能设为0,否则无法正常启动
  • 1: 单用户模式,仅root用户,也就是所谓救援模式
  • 2: 无网络多用户模式
  • 3: 有网络多用户模式
  • 4: 保留作自定义,否则同运行级 3
  • 5: 一般用于图形界面(GUI)登录(如 X的 xdm 或 KDE的 kdm)
  • 6: 重启动计算机,系统默认运行级别不能设置为6,否则无法正常启动

系统一般默认的运行级别是5

可以使用 runlevel 命令查看当前的运行级别

runlevel
N 5

init 命令可以用于切换当前系统的运行级别

init 0      // 关机
init 1		// 进入单用户模式
init 3      // 切换当多用户级别
init 5      // 切换到图形界面级别
init 6      // 重启

系统初始化

系统初始化这一步主要是执行一些脚本。会根据运行级别去选择 /etc/rc[0,1,2,3,4,5,6].d其中一个目录,并执行选择的目录中的脚本。

用户登录

用户登录分为三种方式:

  1. 命令行登录
  2. ssh登录
  3. 图形界面登录

图形模式与文字模式的切换方式

Linux预设提供了六个命令窗口终端机让我们来登录。

这个六个窗口分别为tty1、tty2、tty3、tty4、tty5、tty6、tty7。默认登录的是第一个窗口,也就是tty1,tty1是图形界面。其他都是命令行登录。按下Ctrl + Alt + F1 ~ F6 可以在这六个窗口之间切换。

/etc/rc[n].d中的脚本介绍

一共分为7个目录,每一个目录分别对应着一个运行级别,在系统开机或关机时会自动执行对应级别的脚本。分别有: rc0.d、rc1.d、rc2.d、rc3.d、rc4.d、rc5.d、rc6.d、rcS.d

查看/etc/rc5.d中的内容,里面都是一些软链接,所有的软链接都是指向 /etc/init.d 中的脚本文件,命令规范如下:

[K|S][number][name] --> ../init.d/name
  • S 表示系统启动时需要执行的脚本
  • K 表示系统关闭时需要执行的脚本
  • [number] 表示脚本的运行优先级,number越小,优先级越高
  • [name] 脚本名称,一般以服务的名称命名

如果想让自己写的脚本开机就自动执行,可以把脚本按规范放到那7目录中。

一些自启脚本说明

脚本说明
/etc/profile此文件为系统的每个用户设置环境信息,当用户第一次登录时
/etc/bash.bashrc为每一个运行bash shell的用户执行此文件。当bash shell被打开时,该文件被读取。
~/.bash_profile用户专用于自己使用的 shell 信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的 .bashrc文件。
~/.bashrc该文件包含专用于你的 bash shell 的 bash 信息,当登录时以及每次打开新的 shell 时,该文件被读取。
~/.profile在 Debian 中使用 .profile 文件代替 .bash_profile 文件 .profile(由Bourne Shell和Korn Shell使用)和 .login(由C Shell使用)两个文件是 .bash_profile 的同义词,目的是为了兼容其它 Shell。
~/.bash_logout当每次退出系统(退出bash shell)时,执行该文件。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值