美文网首页嵌牛IT观察
嵌入式linux内核init阶段流程

嵌入式linux内核init阶段流程

作者: d7646e4b90f1 | 来源:发表于2017-11-22 09:04 被阅读0次

姓名:刘伟 学号:17103223402

【嵌牛导读】

本文介绍了嵌入式linux内核init阶段流程

【嵌牛鼻子】嵌入式linux内核init阶段流程

【嵌牛提问】bootsect流程是什么

【嵌牛正文】

内核引导阶段

1、bootsect阶段

2、setup阶段

3、head.S阶段

4、main.c阶段 

init阶段1.确定用户登录模式

在“/etc/inittab”中列出了如下所示的登录模式,主要有单人维护模式、多用户无网络模式、文字界面多用户模式、X-Windows多用户模式等。其中的单人维护模式(runlevel为1)是类似于Windows中的“安全模式”,在这种情况下,系统不加载复杂的模式,从而使系统能够正常启动。在这些模式中最为常见的是3或5,其中本系统中默认的为5,也就是X-Windows多用户模式。

#Default runlevel. Therunlevels usedby RHS are:

#  0 - halt (Do NOT set initdefault tothis)

#  1 - Single user mode

#  2 - Multiuser, without NFS (The same as 3,if you do not have networking)

#  3 - Full multiuser mode (文本界面启动模式)

#  4 - unused

#  5 - X11 (图形界面启动模式)

#  6 - reboot (Do NOT set initdefault tothis)

#

id:5:initdefault:

init阶段2. 执行脚本/etc/rc.d/rc.sysinit

在确定了登录模式之后,就要开始将Linux的主机信息读入Linux系统,其内容就是文件“/etc/rc.d/rc.sysinit”中的。查看此文件可以看出,在这里确定了默认路径、主机名称、“/etc/sysconfig/network”中所记录的网络信息等。

#System initialization.

si::sysinit:/etc/rc.d/rc.sysinit

init阶段3.启动内核的外挂模块及各运行级的脚本

在此,主要是读取模块加载配置文件(/etc/modules.conf),以确认需要加载哪些模块。接下来会根据不同的运行级(runlevel),通过带参数(运行级)运行“/etc/rc.d/rc”脚本,加载不同的模块,启动系统服务。init进程会等待(wait)“/etc/rc.d/rc”脚本的返回。

l0:0:wait:/etc/rc.d/rc 0

l1:1:wait:/etc/rc.d/rc 1

l2:2:wait:/etc/rc.d/rc 2

l3:3:wait:/etc/rc.d/rc 3

l4:4:wait:/etc/rc.d/rc 4

l5:5:wait:/etc/rc.d/rc 5

l6:6:wait:/etc/rc.d/rc 6

init阶段4. 进入用户登录界面

系统还需要配置一些异常关机的处理部分。最后通过“/sbin/mingetty”打开几个虚拟终端(tty1~tty6),用于用户登录。如果运行级为5(图形界面启动),则运行xdm程序,给用户提供xdm图形界面的登录方式。如果在本地打开一个虚拟终端,当这个终端超时没有人登录或者太久没有人击键时,该终端会退出执行,脚本中的“respawn”即告诉init进程重新打开该终端,否则在经过一段时间之后,我们会发现这个终端消失了,无法利用ALT+Fn切换。

init阶段5.#Trap CTRL-ALT-DEL

ETE

ca::ctrlaltdel:/sbin/shutdown-t3 -r now

#When our UPS tells us power has failed, assume we have a few minutes

pf::powerfail:/sbin/shutdown-f -h +2 "Power Failure; System Shutting Down"

#If power was restored before the shutdown kicked in, cancel it.

pr:12345:powerokwait:/sbin/shutdown-c "Power Restored; Shutdown Cancelled"

#Run gettysin standard runlevels

1:2345:respawn:/sbin/mingettytty1

2:2345:respawn:/sbin/mingettytty2

3:2345:respawn:/sbin/mingettytty3

4:2345:respawn:/sbin/mingettytty4

5:2345:respawn:/sbin/mingettytty5

6:2345:respawn:/sbin/mingettytty6

#Run xdmin runlevel5

x:5:respawn:/etc/X11/prefdm-nodaemon

相关文章

  • 嵌入式linux内核init阶段流程

    姓名:刘伟 学号:17103223402 【嵌牛导读】 本文介绍了嵌入式linux内核init阶段流程 【嵌牛鼻子...

  • Android 手机启动流程

    流程 bootloader启动linux Kernel 内核和init进程 init进程分裂出更多名为"daemo...

  • Android重要流程总结

    一. Android系统启动流程是什么?(提示:BootLoader -> Linux内核 init进程 -> Z...

  • AMS服务

    Android 系统启动流程 开始 引导程序BootLoader启动 linux内核启动 查找init.rc文件并...

  • Android系统启动

    init进程 启动电源,加载引导程序,引导程序启动Linux内核,Linux内核加载完成后,首先启动 init 进...

  • linux基础笔记

    Linux系统启动过程 Linux系统的启动过程可以分为5个阶段: 内核的引导。 运行 init。 系统初始化。 ...

  • Linux内核开发环境配置

    Linux不同版本内核安装 查看Linux版本 查看内核版本 解压内核压缩包 Linux内核源码安装流程 VSCo...

  • Android 启动过程分析

    简述流程如下: 硬件环境初始化,内核被加载到内存; 内核引导阶段, 初始化并启动用户空间1号进程(init); i...

  • APP 启动原理

    Android是基于Linux内核的,当手机启动,加载完Linux内核后,会由Linux系统的init祖先进程fo...

  • Linux学习_系统启动

    Linux系统的启动过程分为5个阶段: 内核的引导。 运行 init。 系统初始化。 建立终端 。 用户登录系统。...

网友评论

    本文标题:嵌入式linux内核init阶段流程

    本文链接:https://www.haomeiwen.com/subject/nnxnvxtx.html