0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux启动过程流程分析

Q4MP_gh_c472c21 来源:未知 作者:李倩 2018-04-24 14:48 次阅读

内核引导阶段

1、bootsect阶段

2、setup阶段

3、head.S阶段

4、main.c阶段

init阶段(1)

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)

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)

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)

4. 进入用户登录界面

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

init阶段(5)

#Trap CTRL-ALT-DELETE

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"

#Rungettysin standardrunlevels

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

#Runxdminrunlevel5

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

程序流程如下:

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 内核
    +关注

    关注

    3

    文章

    1309

    浏览量

    39862
  • Linux
    +关注

    关注

    87

    文章

    10994

    浏览量

    206772

原文标题:Linux启动过程简单分析【图】

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32H7的启动过程分析

    本章教程主要跟大家讲STM32H7的启动过程,这里的启动过程是指从CPU上电复位执行第1条指令开始(汇编文件)到进入C程序main()函数入口之间的部分。
    的头像 发表于 10-17 14:42 1668次阅读

    详解STM32启动过程

    本章教程主要跟大家讲STM32H7的启动过程,这里的启动过程是指从CPU上电复位执行第1条指令开始(汇编文件)到进入C程序main()函数入口之间的部分。
    发表于 11-14 11:24 1634次阅读

    Linux和Windows系统启动过程的简单分析

    Linux和Windows系统启动过程的简单分析 对于Windows系统的使用和操作,大家应该都比较熟悉,而对于Linux系统来说,应该是相对陌生。那这两个系统在
    发表于 08-28 11:27

    Linux启动过程分析说明

    Linux 启动过程分析
    发表于 06-15 11:49

    Linux启动过程详解

    1、Linux 基础安装Linux操作系统 Linux文件系统 Linux常用命令 Linux启动过程
    发表于 11-02 07:01

    嵌入式Linux系统的构成和启动过程

    文章目录一、嵌入式Linux系统构成二、嵌入式Linux系统启动过程在我们的周围,大量的嵌入式设备都是基于Linux系统来构建的,嵌入式Linux
    发表于 12-16 06:20

    嵌入式uCLinux内核启动过程分析

    分析uCLinux的启动过程,可以加快系统启动速度、正确建立应用环境。本文要研究的就是uCLinux操作系统内核的启动过程
    发表于 08-15 16:51 733次阅读

    Linux基础命令之Linux启动过程详解

    2.2 Linux启动过程详解 在了解了Linux的常见命令之后,下面详细讲解Linux启动过程Li
    发表于 10-18 14:17 2次下载
    <b class='flag-5'>Linux</b>基础命令之<b class='flag-5'>Linux</b><b class='flag-5'>启动过程</b>详解

    详解bootloader的执行流程与ARM Linux启动过程分析

    以S3C2410 ARM处理器为例,详细分析了系统上电后 bootloader的执行流程及 ARM Linux启动过程
    的头像 发表于 12-21 09:24 1w次阅读
    详解bootloader的执行<b class='flag-5'>流程</b>与ARM <b class='flag-5'>Linux</b><b class='flag-5'>启动过程</b><b class='flag-5'>分析</b>

    openwrt启动过程详细分析

    OpenWrt是一个开放的linux平台,主要用于带wifi的无线路由上。类似于Ubuntu、Red Hat、之类的linux发行版本,它也有一套自己的启动流程。本文主要介绍了open
    发表于 12-27 09:17 1.2w次阅读
    openwrt<b class='flag-5'>启动过程</b>详细<b class='flag-5'>分析</b>

    走进Linux之systemd启动过程

    Linux系统的启动方式有点复杂,而且总是有需要优化的地方。传统的Linux系统启动过程主要由著名的init进程(也被称为SysV init启动
    发表于 04-27 19:14 2948次阅读

    TMS320F2812的启动过程详细说明

    芯片启动过程是芯片上电之后做的事情,几乎是瞬间完成的流程。涉及到了芯片自身硬件启动过程、固化在芯片中的启动程序的执行、以及进入操作系统之前
    发表于 03-25 15:10 22次下载

    STM32上电后启动过程

    STM32上电后启动过程
    发表于 11-15 18:21 16次下载
    STM32上电后<b class='flag-5'>启动过程</b>

    stm32启动过程

    一次性搞定stm32启动模式与启动过程一、stm32启动模式二、从flash启动过程2.1 数据在堆栈中存储方式2.2 stm32的正常启动过程
    发表于 12-16 16:57 8次下载
    stm32<b class='flag-5'>启动过程</b>

    linux内核启动过程会执行用户空间的init进程

    linux内核启动过程的后期,在kernel_init()函数代表的init线程中,会尝试执行用户空间的init进程
    的头像 发表于 10-14 09:12 763次阅读