一、系统引导流程

第一步:固件fireware(CMOS/BIOS)——POST加点自检(与操作系统无关)

这一步主要是检查硬盘等硬件是否能正常工作

CMOS:是固化在主板上,详细:http://school.cfan.com.cn/news/cfannews/2007-06-06/1181111816d66664.shtml

BIOS:BIOS是固件的操作界面

CMOS是用来保存硬件参数信息的,而BIOS是用来修改这些参数的程序,简单地说:BIOS就是用来设置CMOS参数的手段,CMOS里面保存了BIOS设定的参数和结果,即“我们通过BIOS设置程序对CMOS参数进行修改”,比如我们需要修改系统启动顺序,在调整时,我们是通过BIOS设置为“光驱→硬盘→软驱”依次启动的,那么这个启动顺序的数据就保存在CMOS中。

hwclock硬件时钟(固化在固件中的时钟)

可以看到我的系统时钟和硬件时钟不同,下面来修改系统时钟和硬件时钟。

如果hwclock是正确的

可以用hwclock –help 查看参数

第二步:自举程序BootLoader(GRUB)——载入内核

MBR(mast boot record):位于磁盘的第一个柱面的第一个扇区

关于MBR详细请看:http://blog.csdn.net/hbrqlpf/article/details/3007863

/etc/grub.conf配置文件中记录关于系统内核的详细信息,我们进去看一下

系统内核版本是2.6.18

2:表示主版本号

6:表示次版本号(奇数表示测试版)

18:末版本号

后面还记录了内核文件的路径root=LABEL=/rhgb quiet initrd /initrd-2.6.18-128.e15.img

第三步:载入内核后(Kernel)——驱动硬件

启动进程(init)

系统首先会启动init进程,该进程启动后读取inittab文件,执行缺省运行级别,从而继续引导过程。在Linux系统中,init是第一个可以存在的进程,它的PID恒为1,但它必须向一个更高级的功能负责:PID为0的内核调度器(Kernel scheduler),从而获得CPU时间。

孤儿进程:父进程死掉后子进程还存在,则子进程被称为孤儿进程(系统检测到孤儿进程后会让init做父进程)。

僵尸进程:子进程死掉后父进程不知道,则子进程被称为僵尸进程。

第四步:读取执行配置文件/etc/inittab

0:表示关机

1:表示单用户模式(只有root账号,类似于Windows的安全模式,没有图形界面)

2:字符界面多用户模式,没有NFS服务

3:字符界面多用户模式,有NFS服务

4:待使用(自定义级别)

5:图形化的多用户模式(系统缺省级别)

6:表示重启

查看当前系统的运行级别(runlevel)

切换运行级别 ( init 级别)

二、inittab文件剖析

1、在inittab中所有条目采取以下格式

id:run-levels:action:process

id:标识符,一般为两位数字字母

run-level:指定运行级别,可以指定多个

action:指定运行状态

process:指定要运行的脚本/命令

2、action常用取值

initdefault:指定系统缺省启动的运行级别(例如在里面可以修改运行级别2后系统启动后进入字符界面)

sysinit:系统启动执行process中指定的命令。

wait:执行process中的命令,并等其结束后再执行其他命令

once:执行process中的命令,不等待其结束

ctrlaltdel:按下ctrl+alt+del时执行process指定的命令

powerfail:当出现电源错误时执行process指定的命令,不等待其结束

powerokwait:当电源恢复时执行process指定命令

respan:一旦process命令终止,便重新运行该命令

3、各个级别服务程序脚本

/etc/rc.d/init.d目录下包含各个运行级别的服务程序脚本

/etc/rc.d/rc[0123456].d分别存放对应运行级别的服务程序脚本的符号链接,链接到init.d目录中的相应脚本

K代表杀死该进程

S代表启动该脚本进程

K和S后面的数字代表执行顺序

学习鸟哥的Linux私房菜笔记(17)——Linux引导流程的更多相关文章

  1. 鸟哥的Linux私房菜笔记第四章

    前言 对着<鸟哥的Linux私房菜-基础版>做了简化笔记.不想让自己知其然而不知其所然.所以写个博客让自己好好巩固一下,当然不可能把书中的内容全部写下来.在这里就简化一点把命令写下来. 让 ...

  2. Linux系统服务(daemon)(鸟哥Linux私房菜笔记)

    Linux系统服务(daemon) 一.SystemV的init管理机制(脚本式启动)1.服务启动分类stand alone 独立启动模式super daemon 总管程序 2.服务的启动.关闭与观察 ...

  3. 鸟哥的Linux私房菜笔记第六章(二)

    文件内容查询 直接查询文件内容 查阅一个文件的内容可以使用指令cat/tac/nl. # [cat|tac|nl] 文件 区别: 1.cat是直接把文件内容输出到屏幕上,并且从第一行开始输出到末行 2 ...

  4. 学习鸟哥的Linux私房菜笔记(1)——Linux系统入门

    今天在阿里云申请了一个centos系统的云服务器,以前对linux了解的只是皮毛,记了几个命令还给忘了,整了半天都弄不好,作为一个做过javaweb开发的coder实在是惭愧啊,决定从今天开始学习Li ...

  5. [置顶] 学习鸟哥的Linux私房菜笔记(6)——过滤器、输入输出及管道

    一.过滤器 Linux中的应用工具分为三种: 交互工具 过滤器 编辑器 能够接受数据,过滤再输出的工具,称之为过滤器 对过滤器和进程,存在着输入源与输出对象 二.输入.输出.重定向 输入:过滤器的数据 ...

  6. 学习鸟哥的Linux私房菜笔记(16)——Ubuntu中建立ftp服务

    1.安装vsftpd,如下图所示:sudo apt-get install vsftpd 2.查看本机是否可以连接ftp 如上图所示,发现login failed了,怎么办呢?我们来看看vsftpd的 ...

  7. 学习鸟哥的Linux私房菜笔记(15)——文件系统

    一.文件结构 为了能在设备上存储与读取文件,我们需要在分区上创立文件系统 文件系统记录目录与文件我们称之为文件结构 每一个文件系统在Linux里都被解释成由一个根目录为起点的目录结构 Linux将各个 ...

  8. 学习鸟哥的Linux私房菜笔记(14)——硬件配置与管理

    一.设备文件 Linux沿袭了Unix的风格,将所有设备看成一个文件 设备文件分为两种: 块设备文件(b):比如硬盘.光驱 字符设备文件(c):比如串口.键盘 设备文件一般存放在/dev目录下 二.常 ...

  9. 学习鸟哥的Linux私房菜笔记(13)——用户管理

    一.检查用户身份 用户可以使用下列指令了解用户身份 who :查询当前在线的用户 groups :查询用户所属组 id :显示当前用户信息 finger :查询用户信息 二.添加用户 用指令添加命令 ...

随机推荐

  1. Codeforces_GYM_100741 A

    http://codeforces.com/gym/100741/problem/A A. Queries time limit per test 0.25 seconds memory limit ...

  2. 微信支付v2开发(5) 订单查询

    本文介绍微信支付中订单查询功能的实现. 作者:方倍工作室 地址:http://www.cnblogs.com/txw1958/p/wxpay-order-query.html 一.订单查询 因为某一方 ...

  3. SpringMVC学习记录(五)--表单标签

    在使用SpringMVC的时候我们能够使用Spring封装的一系列表单标签,这些标签都能够訪问到ModelMap中的内容. 以下将对这些标签一一介绍. 1.引入标签头文件 在正式介绍SpringMVC ...

  4. spark源码解析之scala基本语法

    1. scala初识 spark由scala编写,要解析scala,首先要对scala有基本的了解. 1.1 class vs object A class is a blueprint for ob ...

  5. POJ 1952 BUY LOW, BUY LOWER DP记录数据

    最长递减子序列.加记录有多少个最长递减子序列.然后须要去重. 最麻烦的就是去重了. 主要的思路就是:全面出现反复的值,然后还是同样长度的子序列.这里的DP记录的子序列是以当前值为结尾的时候,而且一定选 ...

  6. C/C++ 程序的跟踪和分析工具 uftrace

    uftrace 用于跟踪和分析 C/C++ 编写的程序的执行情况,它受到 Linux 内核的 ftrace 框架的启发(特别是 function graph tracer),支持 userspace ...

  7. 23、uevent/hotplug热拔插机制

    (class_device_create的目的是为了让mdev根据它注册的信息来创建设备节点) class_device_create class_device_register class_devi ...

  8. PatentTips - Modified buddy system memory allocation

    BACKGROUND Memory allocation systems assign blocks of memory on request. A memory allocation system ...

  9. Multivariate Linear Regression

    Multiple Features Linear regression with multiple variables is also known as "multivariate line ...

  10. windows下perl使用

    windows下perl使用 windows下perl开发工具 Perl 的官方网址提供下载的windows perl开发环境 ActiveState Perl Strawberry Perl DWI ...