Linux启动过程

Posted xiaojing-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux启动过程相关的知识,希望对你有一定的参考价值。

1. 简单描述(口头)

(1).开机Bios自检

检查硬件:CPU、内存、主板....

检查完毕将启动任务交给相应的设备(BIOS设置的启动顺序)

技术图片

(2). MBR引导(读硬盘的那个地方)

硬盘0柱面0磁道1扇区的前446byte

(3)grub引导菜单 (控制了Linux的启动)

[[email protected] ~]# cat /etc/grub.conf 
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda3
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0  #启动那一个内核文件
timeout=5  #超时
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS 6 (2.6.32-754.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-754.el6.x86_64 ro root=UUID=ad36a095-56bf-4e0f-a120-6a8fb7420cfc rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /initramfs-2.6.32-754.el6.x86_64.img

(4).加载内核文件

(5).启动init进程

[[email protected] ~]# ps -ef|grep init
root          1      0  0 18:53 ?        00:00:01 /sbin/init
root      24716   1816  0 19:26 pts/0    00:00:00 grep init

(6).读取inittab文件,执行rc,sysinit,rc等脚本

/etc/inittab #设置运行级别

/etc/rc.d/rc.sysinit  #对系统进行基本设置,如设置主机名,设备自动挂载

/etc/rc.d/rc3.d/ #运行级别为3,文本模式
[[email protected] ~]# chkconfig --list sshd
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off

(7).启动mingetty进程,进入系统登录界面

技术图片

2.简单图解表示(画图)

技术图片

以上是关于Linux启动过程的主要内容,如果未能解决你的问题,请参考以下文章

LINUX PID 1和SYSTEMD PID 0 是内核的一部分,主要用于内进换页,内核初始化的最后一步就是启动 init 进程。这个进程是系统的第一个进程,PID 为 1,又叫超级进程(代码片段

从现有片段启动其他片段时应用程序崩溃

20135239 益西拉姆 linux内核分析 跟踪分析Linux内核的启动过程

linux内核结构和启动过程

Linux系统启动过程的打印信息从何而来?

Linux移植之内核启动过程引导阶段分析