Linux启动流程

内核级别:

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的图片: Linux启动流程

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,此脚本文件是负责完成系统初始化的脚本文件。 Linux启动流程

关闭/启动对应级别下的服务

脚本文件/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目录,这两目录下文件相同。

Linux启动流程

原创文章,作者:N24_yezi,如若转载,请注明出处:http://www.178linux.com/60538

赞 (1)
N24_yeziN24_yezi
上一篇 2016-11-23 20:07
下一篇 2016-11-23 20:30

相关推荐

  • 计算机基础及Linux基础

    计算机基础与Linux入门 计算机组成及功能 Linux常见发行版 Linux重要哲学思想 Linux文件系统层级结构及文件命名规则 如何获取Linux命令的使用帮助 Linux常用命令及示例 1.1 计算机组成及功能 1.1.1 计算机的五大部件 计算机的主要组成部分有: 1、CPU:运算器 2、控制器、寄存器(内部存储)、缓存; 3、存储器:内存,RAM…

    Linux干货 2016-12-04
  • iptables 补充本

    浅谈iptables一 什么是iptablesiptables 是工作在内核之上的netfilter框架的前端工具(iptables是netfilter的管理工具这样说也不为过)Firewall:隔离工具,工作于主机或网络的边缘处,对经由的报文根据预先定义的规则(识别标准)进行检测,对于能够被规则匹配到的报文实行某种预定义的处理机制的一套组件; 硬…

    Linux干货 2017-05-15
  • Java中的CopyOnWrite容器

    Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和…

    Linux干货 2016-08-15
  • 文本处理工具及正则表达式

    一、*各种文本处理工具 1.1抽取文本的工具 1.1.1 cat、less查看文本内容    more、less和cat 【选项】 【文件】 cat  –n ,-d列行 ,-A:显示所有看不见的符号(控制符),     -E:显示结尾$ ;…

    Linux干货 2016-11-23
  • 开始学习总结的一些基本知识点

       第一VNC软件(面授班课堂用的),这款软件采用C/S架构(client/sever客户端和服务器端)还有VNC协议(virtual Network computing虚拟网络计算)协议。虽说这款软件对网络班没有实际用途,但自己了解下这款软件的构成也是不错的。    第二开始学习需要的虚拟机软件其中包括VMWARE…

    Linux干货 2016-10-29
  • 关于大型网站技术演进的思考(二):存储的瓶颈(2)

    原文出处: 夏天的森林   上篇里我讲到某些网站在高并发下会报出503错误,503错误的含义是指网站服务端暂时无法提供服务的含义,503还表达了网站服务端现在有问题但是以后可能会提供正常的服务,对http协议熟悉的人都知道,5开头的响应码表达了服务端出现了问题,在我们开发测试时候最为常见的是500错误,500代表的含义是服务端程…

    2015-03-11

评论列表(1条)

  • luoweiro
    luoweiro 2016-12-01 00:09

    熟练掌握启动流程和各个步骤在做什么,这是必备技能之一,加油。