感谢支持
我们一直在努力

Linux启动流程介绍

一. 内核镜像Izmage被bootloader装载到内存中。zImage的入口代码是自引导程序。包含一些初始化代码。第一条指令在head.S文件中。解压内核,然后调用call_kernel启动vmlinux(解压后在正确位置上的内核)


二. vmlinux开始部分的代码对应的文件也叫head.S.这个是体系结构相关的代码,进行页表的初级初始化后打开MMU,跳转到start_kernel函数中去。


三. start_kernel负责初始化内核的各个子系统,然后调用rest_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) 打赏
转载请注明出处:服务器评测 » Linux启动流程介绍
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏