Linux启动流程简介

一. 内核镜像 Izmage 被bootloader装载到内存中。zImage的入口代码是自引导程序。包含一些初始化代码。第一条指令在head.S文件中。解压内核,然后调用call_kernel启动vmlinux(解压后在正确位置上的内核)
二. vmlinux开始部分的代码对应的文件也叫head.S.这个是体系结构相关的代码,进行页表的初级初始化后打开MMU,跳转到start_kernel函数中去。
三. start_kernel负责初始化内核的各个子系统,然后调用reset_init().
四.reset_init 调用kernel_thread启动init内核线程,执行init函数,init函数负责挂载跟文件系统,初始化设备驱动程序,启动用户空间的init进程。这些工作是内核中最重要的过程
五. 用户空间init进程执行,init程序在根文件系统的/sbin下,负责启动一系列程序与脚本文件。init进程是所有的进程的发起着与控制者。init进程有两种启动方式:
        1.system V启动流程,这是一般桌面版Linux的启动方式,如ubuntu。
                (1).执行的地一个脚本是/etc/rc.d/rc.sysinit,包含如下内容:检查磁盘,挂在其他的文件系统等
                (2).执行缺醒的运行级别,这个在/etc/inittab中确定
                (3).执行/etc/rc.c/rc.local脚本文件,用户可以在这个文件中添加启动后需要执行的命令
                (4).执行/bin/login程序,提示用户输入用户名与密码,如果吻合则初始化环境,并将控制权转交shell
       2.busybox 启动流程,这是嵌入式系统的启动流程,init程序在/sbin下面,这个是一个符号链接,链接到/bin/busybox上
                (1).为init进程设置信号处理程序
                (2).对控制台进行初始化(串口终端)
                (3).解析/etc/inittab文件
                (4).运行/etc/init.d/rcS脚本,这个脚本设置一些环境变量,运行启动时的程序
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值