Linux —— 系统初始化过程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/starter_____/article/details/89308129

BIOS初始化

主要负责计算机硬件检测,确定操作系统的引导顺序,并从可引导设备中加载和执行引导程序,确定从哪里可以引导并启动操作系统,引导成功后,交由Kernel负责


Boot Loader管理程序GRUB的加载

  • 将引导装载程序安装到主引导记录的程序
  • 用户能够开始操作系统的选择,在内核引导时传递特定指令给内核,或是在内核引导前确定一些系统参数。
  • 同时提供非常方便的引导程序修复功能,并支持引导菜单的加密保护

内核初始化

用户在GRUB引导菜单中选择了合适的启动内核后,操作系统正式进入加载内核的功能。包括以下功能

  • 硬件设备的检测
  • 设备驱动程序的初始化
  • 以只读方式挂载根文件系统
  • 启动第一个应用进程init

第一个初始进程init启动

  • 当内核启动之后,通过启动用户级程序init来完成引导进程的内核部分。
  • init总是第一个进程(PID=1)
  • init进程扮演了终极父进程的角色,失去了父进程的子进程就会以init作为它们的父进程。

确定系统运行级别

读取配置文件/etc/inittab,这是一个系统初始化脚本程序,用于确定系统启动的运行级别,定义系统常规功能。


运行系统初始化脚本

/etc/rc.d/rc.sysinit 是系统的初始化脚本,系统的大部分功能都由这个脚本实现


运行指定级别目录内的脚本

每一个特定的运行级别都会有一个与之相对应的目录,共有7个运行界别,每一个运行级别的目录内都有一些可执行脚本。


运行用户自定义脚本

用户可以自定义一些系统启动时启动的脚本,通过修改/etc/rc.d/rc.local的内容来增加用户自己需要的功能


激活系统常规使用的控制台tty

终端是一种字符型设备,它有多种类型,通常使用 tty 来简称各种类型的终端设备。在 Linux 系统的设备特殊文件目录 /dev/下,终端特殊设备文件一般有以下几种

串行端口终端(/dev/ttySn)

串行端口终端是使用计算机串行端口连接的终端设备。若要向一个端口发送数据,可以在命令行上把标准输出重定向到这些特殊文件名上。如:把单词“test”发送到连接在 ttyS1(COM2)端口的设备上

echo test > /dev/ttyS1

伪终端(/dev/pty)

伪终端是成对的逻辑终端设备,即 master 和 slave 设备,对 master 的操作会反映到 slave 上

控制终端(/dev/tty)

如果当前进程有控制终端的话,那么 /dev/tty 就是当前进程的控制终端的设备特殊文件。/dev/tty 代表当前 tty 设备
。如:把单词“test”显示在当前的终端中

echo "hello" > /dev/tty

控制台终端(/dev/ttyn,/dev/console)

是与操作系统交互的设备,系统将一些信息直接输出到控制台上。目前只有在单用户模式下,才允许用户登录控制台。

虚拟终端(/dev/pts/n)和其他类型

猜你喜欢

转载自blog.csdn.net/starter_____/article/details/89308129