介绍

Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段:
内核的引导。

  • 运行 init。
  • 系统初始化。
  • 建立终端 。
  • 用户登录系统。

1.系统启动

开启开机按钮,系统自动加载主板上的bios(基本输入输出系统)进行自检。

①检测系统硬件链接,显卡,内存,磁盘。"检测目的是将设备信息提供给操作系统"。

②寻找启动磁盘,(光盘启动)(硬盘启动)(软驱启动)采取优先级最高的启动向进行启动。

③找到启动磁盘后,会找第一个启动扇区“主引导记录”(MBR)。

“主引导记录” MBR,有512字节,由三个部分组成

①引导程序(446字节)加载bootloader(启动载入器,启动内核的小程序)bootloader有两种。
   ⑴lilo:被1024柱面限制,如果lilo改动后必须重启系统后成效。
   ⑵grub:修改后立即生效,已经取代了lilo。

②分区表(64字节)每16做一个分区表,所以主分区加扩展分区最多只能做4个

③校验码(2字节)

内核启动,它会接管查看bios电脑上的硬件信息,提供给linux使用。它会将包含在内核的驱动,将它启动。

内核启动成功后,系统会开始初始化,它会initt执行/etc/ab这个文件并执行n个初始化文件。

0关机,1单用户模式,2多用户模式不包括nfs,3完全多用户模式,4预留,5图形化,6重启。

/etc/rc.d/rc.sysinit                  #定义所有启动文件的初始化文件。

/etc/rc.d/*                               #下面会找到指定默认数字的所有文件。S开机自启动,K开机不启动,数字代表启动排名

/etc/init/control-alt-delete.conf        #设置了ctrl+a/t+delete重启文件 

/etc/rc.local                         #初始化最后加载的文件,自动执行下面命令。

初始化后,用户登陆,会执行4个文件

①/etc/bashrc                          #全局文件

②/etc/profile                         #全局文件

③/root/.bash_profile                  #环境变量文件

④/root/.bashrc                        #环境变量文件

2.bootloader程序位置:/boot/grub/stage1   #stager1通过连接工具stager1_5加载stage2 核心。

3.系统启动文件位置:/boot/grub/grub.conf

default=0                     #0代表第一个title
timeout=5                     #停留5秒钟启动
*******************          #背景画面
hiddenmenu                    #隐藏菜单
title **************          #title启动名字
root (hd0,0)                #指定boot分区在哪里,hd0代表第一块硬盘第一个分区。
kernel  **************        #告诉相对路径下的内核位置 
initrd **************         #系统静态驱动位置,内核有两部分(动态驱动,静态驱动

4.用户删除自身的环境变量后变为-bash:恢复命令cp -p(连同权限)/etc/skel/.bash* /home/aa。

5.执行/bin/login程序,进入登录状态