Linux启动流程

发表于:2016-11-24 10:08

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:N24_yezi    来源:51Testing软件测试网采编

  内核级别:
  1、POST开机加电自检
  BIOS加载CMOS信息并进行开机自检,检测硬件设备是否正常并进行硬件设备初始化
  2、Boot Sequence(BIOS):定义设备启动顺序
  BIOS定义设备启动顺序,并读取启动设备数据加载硬盘上的第一个扇区MBR。
  3、Boot Loader(MBR):bootloader功能实现
  Boot Loader提供一个菜单,允许用户选择要启动的系统或不同的内核版本,把用户选定的内核装载到RAM中的特定的空间中,解压、展开而后把系统控制权移交给内核。
  4、Kernel(ramdisk):内核实现
  (1)Linux内核会以自己的功能重新检测一次硬件,不一定使用BIOS检测到的信息。
  (2)加载硬件驱动程序(启动过程中所需要的内核模块,借助ramdisk加载)
  (3)以只读方式挂载根目录文件系统。(挂载到ramdisk虚拟文件系统上,ramdisk中的/lib/modules下面有真正根的驱动程序。)
  (4)运行用户空间的第一个应用程序:/sbin/init
  用户级别(以Centos5为例)
  5、/sbin/init/程序运行(在/etc/inittab设置)
  init程序主要依赖于配置文件:/etc/inittab,类似shell script。流程如下:
  (1)先去的runlevel即默认执行等级的相关等级;(以5为例)
  (2)使用/etc/rc.d/rc.sysinit进行系统初始化;(以下Centos5中有的/etc/inittab有)
  (3)由于runlevel是5,因此只进行“5:5:wait:/etc/rc.d/rc5”,其他行则略过;
  (4)设置好【ctrl】+【alt】+【del】这组合的组合键功能;
  (5)设置不断电系统的pf,pr两种机制
  (6)启动终端机
  以下附上Centos6的图片:
  init处理系统初始化流程(/etc/rc.d/rc.sysinit)
  设置好系统环境 (1)设置主机名; (2)设置欢迎信息; (3)激活udev和selinux; (4)挂载/etc/fstab文件中定义的所有文件系统; (5)检测根文件系统,并以读写方式重新挂载根文件系统;(重新挂载是指根文件检测完之后) (6)设置系统时钟; (7)根据/etc/sysctl.conf文件来设置内核参数; (8)激活lvm即软raid设备; (9)激活swap设备; (10)加载额外设备的驱动程序;(内核加载驱动只加载根文件系统的) (11)清理操作; 注意:在init配置文件:/etc/inittab中,有一行内容是定义/etc/rc.d/rc.sysinit,此脚本文件是负责完成系统初始化的脚本文件。
  关闭/启动对应级别下的服务
  脚本文件/etc/rc.d/rc作用为当级别切换时启动或停止服务;此脚本接受传递的参数给脚本中$runlevel变量,然后,读取/etc/rc$runlevel.d/K 和/etc/rc$runlevel.d/S 所有文件,这些文件就是为什么开机启动后,有些服务会自动启动,有些服务没有启动的原因。 K:要停止的服务,K##,优先级,数字越小,越优先关闭,依赖的服务先关闭,然后再关闭被依赖的。 S :要启动的服务,S##*,优先级,数字越小,越是优先启动,被依赖的服务先启动,而依赖的服务后启动。 /etc/rc.d/init.d目录还有个链接目录为/etc/init.d目录,这两目录下文件相同。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号