ITPub博客

首页 > Linux操作系统 > Linux操作系统 > LINUX 启动过程

LINUX 启动过程

原创 Linux操作系统 作者:abstract93 时间:2010-09-12 21:52:58 0 删除 编辑
    Power On --->POST--->boot loader--->Load Kernel----->rc.sysinit--->
rc--->rc.local--->启动shell或桌面建立使用环境。
1、POST 
     power on self test ,这个步骤不属于操作系统的启动。开机后,CPU将   存储在 ROM中的BIOS“程序”读入内存,然后执行BIOS程序中各种设备的检测代码检测各种 I/O设备是否工作正常。如果核心设备没有问题,就开始根据BIOS设置中指定的引导      设备,载入引导设备中的MBR 主引导记录。

2、boot loader 
      由于历史原因,MBR通常比较小,只有446字节。无法容下一个操作系   统,因此牛人们想出了一个办法,就是在MBR中写入一个小程序,用来加载在其它扇       区的操作系统。这个小程序就是boot loader 各种发行版通常使用GRUB做boot loader

3、启动内核
     boot loader 根据参数找到位于其它扇区的操作系统后,解压缩vmlinuz到内存中。
    内核启动后首先会向BIOS查询硬件信息,然后驱动硬件设备,此时linux尚未挂载任何 文件系统,因此无法载入模块形式的驱动程序并启动init服务。 因此需要挂载文件系统,但在这个阶段,内核还 不是很稳定,如果用读写方式挂载文件,万一内核crash可能会破坏根文件系统上的数 据, 而且根文件系统可以存储在包括IDE、SCSI、USB在内的多种介质上,如果将这些设备的驱动都编译进内核,可以想象内核会多么庞大、臃肿。
因此引入了 initrd   boot loader initialized RAM disk 用来挂载实际的根文件系统,加载驱动并然后再将这个 initrd RAM 磁盘卸载,并释放内存。
linux 发行版必须适应各种不同的硬件架构,将所有的驱动编译进内核是不现实的,initrd 技术是解决该问题的关键技术。Linux 发行版在内核中只编译了基本的硬件驱动,在安装过程中通过检测系统硬件,生成包含安装系统硬件驱动的 initrd,无非是一种即可行又灵活的解决方案。
4、启动init服务
     最后一步就是从根文件系统上找出并执行init服务。内核会按下列顺序寻找init服务。
     1、/sbin/init 2、/etc/init 3、/bin/init 4、如果都找不到,最后就执行/bin/sh。只要某一个步骤找到init,然后内核就去执行该目录的init。如果都找不到,内核会显示kernel panic -not syncing:Attempted to kill init,找到init,就让init服务负责后续初始化系统使用环境的工作。
    4.1初始化系统环境
        启动init服务时,init服务会读取/etc/inittab文件,根据/etc/inittab中的设置进行初始化系统环境的工作。/etc/inittab中定义了系统在启动过程吕必须依次执行以下几个script。
        /etc/rc.d/rc.sysinit:
              启动udev和SELinux,
              执行sysctl-p 设置内核参数
              设置系统时间,加载键盘映射表
              启动swap
              设置主机名
              检查并挂载所有的文件系统
               初始化硬件设置包括/etc/modprobe.conf中的模块,ISA PNP                       硬件设备、USB设备
               启用软RAID与LVM
               卸载initrd
              初始化串行端口设备如Modem,UPS,Serial Console
              清除过期的锁定文件 与IPC文件
              重新设备磁盘参数
        /etc/rc.d/rc 建立RunLevel环境。
        /etc/rc.d/rc.local 启动自定义的服务常用checkconfig配置
    执行完三个脚本后,建立用户接口,根据RunLevel启动终端或启动X图形界面。
参考 资料 RHEL系统管理宝典,

Linux2.6 内核的 Initrd 机制解析

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9683969/viewspace-673603/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-10-22

  • 博文量
    53
  • 访问量
    93176