最近在学习Linux,把学到的重点记下来,以便日后复习,同时也给和我一样的菜鸟分享一下。
这篇是关于linux的开机启动过程。
从按下电源键开始:
BIOS加电自检:
Bootloader(GRUB):
- 检查计算机的硬件及外围设备,如cpu、内存等
- 选择由哪个设备来开机,开机时按住F2进入BIOS设置的开机启动顺序就是控制这一选项的
- 读取选择的开机设备的MBR,MBR一般包括两部分,446B是boot loader,64B是分区表(由于64B的限制,最多有四个主分区)还有2B是magic number(幻数,貌似见过这个翻译)
如下图,选开机系统,如果是双系统,还会有其他选项,如windows7,图为虚拟机截图,单系统Opensuse
Kernel:
选择开机系统后,如果选择的是Linux(因为本文就是写Linux的),那么就会初始化Kernel(内核)Init进程:
- 再次检查计算机有哪些设备
- 将查出的设备的驱动程序初始化并载入内核
- 以只读的方式挂载根目录文件系统
- 内核载入1号进程,即init
init首先会读取/etc/initab配置文件以初始化系统
- 根据配置文件决定运行哪个run level,
- 执行rc.sysinit初始化操作系统
- 激活热插拔设备(如USB)启用SELinux(类似防火墙
- 将内核参数写入配置文件
- 设定系统时钟
- 载入键盘模式(我们使用的是英语US的键盘)
- 启动交换分区(就是虚拟内存)
- 设定主机名(上网时的电脑名称)
- 检查根目录文件系统,若没有问题就重新以可读写方式挂载
- 启用RAID磁盘阵列和LVM设备
- 启动磁盘配额功能(规定用户能使用的磁盘大小
- 检查并挂载其他文件系统
- 清除产生的临时文件
- 根据run level开启需要的开启的服务:对应执行/etc/rc.d文件夹中的配置文件
- 设定组合键:如Crl+Alt+Del
- 定义ups不间断电源系统,即定义突然断电等情况出现时要执行的动作,如关机
- 产生六个虚拟终端控制台,tty1~tty6
- 如果是run level5,启动X Windows
run level 功能 0 关机,不能为默认设置 1 单用户模式,仅限root用户,维护用 2 文字界面,无网络,多用户模式 3 文字界面,多用户模式 4 自定义模式,默认与run level3相同 5 启动X11的run level3 6 重启,不能为默认设置
到这里,开机过程就算完成了。
Linux学习笔记之开机过程
最新推荐文章于 2019-03-05 17:02:12 发布