linux 根文件系统启动流程

  • Post author:
  • Post category:linux




linux 根文件系统启动流程

当init服务运行rc.sysinit时 要依次完毕以下一系列工作:

(1)启动udev

(2)设置内核參数

运行sysctl –p,以便从/etc/sysctl.conf设置内核參数

(3)设置系统时间

将硬件时间设置为系统时间

(4)启用交换内存空间

运行swpaon –a –e,以便依据/etc/fstab的设置启用全部的交换内存空间。

(5)检查并挂载全部文件系统

检查全部须要挂载的文件系统。以确保这些文件系统的完整性。检查完成后以可读可写的方式挂载文件系统。

(6)初始化硬件设备

  Linux除了在启动内核时以静态驱动程序驱动部分的硬件外,在运行rc.sysinit时,也会试着驱动剩余的硬件设备。rc.sysinit驱动的硬件设备包括下面几项:

a)定义在/etc/modprobe.conf的模块

b)ISA PnP的硬件设备

c)USB设备

(7)初始化串行port设备

Init服务会管理全部的串行port设备。比方调制解调器、不断电系统、串行port控制台等。Init服务则通过rc.sysinit来初始化linux的串行port设备。

当rc.sysinit发现linux才干在这/etc/rc.serial时。才会运行/etc/rc.serial。借以初始化全部的串行port设备。因此,你能够在/etc/rc.serial中定义怎样初始化linux全部的串行port设备。

(8)清除过期的锁定文件与IPC文件

(9)建立用户接口

在运行完3个基本的RC Script后,init服务的最后一个工作,就是建立linux的用户界面,好让用户能够使用linux。此时init服务会运行下面两项工作:

(10)建立虚拟控制台

Init会在若干个虚拟控制台中运行/bin/login。以便用户能够从虚拟控制台登陆linux。linux默认在前6个虚拟控制台。也就是tty1~tty6,运行/bin/login登陆程序。当全部的初始化工作结束后。cpu_idle()函数会被调用来使系统处于闲置(idle)状态并等待用户程序的运行。

在这里插入图片描述



版权声明:本文为KingRing_原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。