linux系统启动流程

  • linux系统启动流程

CentOS(5、6)系统启动流程

具体流程:

  1. 加载BIOS的硬件信息与进行自我测试,并依据设置取得第一个可启动的设备;

  2. 读取并执行第一个启动设备内MBR的boot Loader

  3. 依据boot Loader的设置加载Kernel,Kernel会开始检测硬件与加载驱动程序

  4. 硬件驱动成功后,Kernel会主动调用init进程,而init会取得run-level信息;

  5. init执行/etc/rc.d/rc.sysinit文件来准备软件执行的操作环境。

  6. init执行run-level的每个服务启动;

  7. init执行/etc/rc.d/rc.local文件;

  8. init执行终端模拟程序启动login程序,等待用户登录

blob.png

  • Linux内核特点:

    • 支持模块化:.ko(内核对象)

      • 如:文件系统,硬件驱动,网络协议等

    • 支持内核模块的动态装载和卸载

  • 组成部分:

    • 核心文件:/boot/vmlinuz-VERSION-release

      • ramdisk:辅助的伪根系统

      • CentOS 5: /boot/initrd-VERSION-release.img

      • CentOS6,7: /boot/initramfs-VERSION-release.img

    • 模块文件:/lib/modules/VERSION-release

  • POST:Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内存、硬盘子系统、显示子系统、串并行接口、键盘、CD-ROM光驱等硬件情况的检测。

    • ROM:BIOS,Basic Input and Output System,保存着有关计算机系统最重要的基本输入输出程序,系统信息设置、开机加电自检程序和 系统启动自举程序等。

    • RAM:CMOS互补金属氧化物半导体,保存各项参数的设定 按次序查找引导设备,第一个有引导程序的设备为本次启动设备

  • bootloader: 引导加载器,引导程序

    • 功能:

      • 提供菜单:用户可以选择不同的启动选项。

      • 加载内核文件:直接向可启动的程序区段来开始操作系统。

      • 转交其他loader:将引导装载功能转交给其他loder负责。

  • 加载内核检测硬件与initrd功能

    • 内核会以自己的功能重新检测硬件。

blob.png

config-2.6.32-642.el6.x86_64←内核被编译时选择的功能与模块配置文件

grub←引导装载程序grub相关数据目录

initrd-2.6.32-642.el6.x86_64kdump.img←虚拟文件系统文件

System.map-2.6.32-642.el6.x86_64←内核功能放置到内存地址的对应表

vmlinuz-2.6.32-642.el6.x86_64←内核文件

  • init程序的类型:

    • SysV: init, CentOS 5之前

      • 配置文件:/etc/inittab

    • Upstart: init,CentOS 6

      • 配置文件:/etc/inittab, /etc/init/*.conf

    • Systemd:systemd, CentOS 7

      • 配置文件:/usr/lib/systemd/system /etc/systemd/system

  • 第一个进程与配置文件/etc/inittab

    • /sbin/init CentOS 5

    • 运行级别:为系统运行或维护等目的而设定;0-6:7个级别

    • 默认级别: 3, 5

    • 切换级别:init #

    • 查看级别:runlevel ; who -r

  • init启动后所做的事情:

  1. 读取/etc/inittab来读取默认级别 

  2. 执行初始化系统脚本 /etc/rc.d/rc.sysinit 来初始化脚本

  3. 然后执行 /etc/rc.d/rc 脚本

  • /etc/inittab的内容与用法

    • 0:关机

    • 1:单用户模式(root自动登录), single, 维护模式

    • 2: 多用户模式,启动网络功能,但不会启动NFS;维护模式

    • 3:多用户模式,正常模式;文本界面

    • 4:预留级别;可同3级别

    • 5:多用户模式,正常模式;图形界面

    • 6:重启

    • 格式如id:5:initdefault: 

blob.png

  • 执行初始化系统脚本 /etc/rc.d/rc.sysinit 来初始化脚本

  • /etc/rc.d/rc.sysinit: 系统初始化脚本

  1. 设置主机名

  2. 设置欢迎信息

  3. 激活udev和selinux

  4. 挂载/etc/fstab文件中定义的文件系统

  5. 检测根文件系统,并以读写方式重新挂载根文件系统

  6. 设置系统时钟

  7. 激活swap设备

  8. 根据/etc/sysctl.conf文件设置内核参数

  9. 激活lvm及software raid设备

  10. 加载额外设备的驱动程序

  11. 清理操作

blob.png

  • 说明:rc N –> 意味着读取/etc/rc.d/rcN.d/

    • K*: K##*:##运行次序;数字越小,越先运行;数字 越小的服务,通常为依赖到别的服务

    • S*: S##*:##运行次序;数字越小,越先运行;数字 越小的服务,通常为被依赖到的服务

    • for srv in /etc/rc.d/rcN.d/K*; do

$srv stop

done

for srv in /etc/rc.d/rcN.d/S*; do

$srv start

done

  • 执行/etc/rc.d/rc.local脚本,此脚本是启动过程中最后启动的一个脚本。最后会执行 /bin/login 登录用户。至此系统启动过程完成。

  • 总结:/sbin/init –> (/etc/inittab) –> 设置默认运行级 别 –> 运行系统初始脚本、完成系统初始化 –> (关闭对应 下需要关闭的服务)启动需要启动服务 –> 设置登录终端

  • CentOS 6 init程序为: upstart, 其配置文件: /etc/inittab, /etc/init/*.conf,配置文件的语法遵循upstart配置文件语法格式,和CentOS5不同。

  • 根据系统启动原理破解密码

  • CentOS6

1重启

2敲任意键

blob.png

3按a键,修改内核参数

blob.png

4输入1 | S | s | single 进入单用户模式

5进入系统后修改密码

  • 计划任务练习

1 、每周2, 4, 7备份/var/log/messages文件至/logs目录中,文件名形如“messages-yyyymmdd”

10 0 * * 0,2,4 root /bin/cp /log/message /logs/messages-`date %F`

2 、每两小时取出当前系统/proc/meminfo文件中以S或M开头的信息追加至/tmp/meminfo.txt文件中

0 2 * * * root /bin/cat /proc/meminfo | /bin/grep '^[S|M].*' >> /tmp/meminfo.txt

blob.png

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

(0)
502795641502795641
上一篇 2016-09-11
下一篇 2016-09-11

相关推荐

  • N26-第一周作业

    1、描述计算机的组成及其功能;  计算机组成部分分为硬件及软件。  硬件:  计算机硬件主要有五大部分组成:运算器、控制器、存储器、输入设备、输出设备;  1)运算器、控制器,统称为处理器,也就是CPU:    主要功能是对各种数据进行运算,包括加、减、乘、除的算术运算,还包括进行逻辑判断的能力,如…

    Linux干货 2016-12-31
  • linux 文本处理工具 grep cut sort等

    linux day 7 间歇性回忆 自动属于这个组 是  SGID 的功能 chmod g+s /data/testdir setfacl —m g:g2:rwx /data/testdir setfacl -m b:g:g2:rwx /data/testdir setfacl -m d:g:g3:r testdir chmod o= testdi…

    Linux干货 2016-08-08
  • 马哥教育网络班21期+第一周课程练习

    一、计算机的组成及其功能 自上个世纪40年代开始截止到目前,我们所有的计算机包括手持的智能终端设备,它们整个组织体系设备都是遵循冯诺依曼体系结构。 现代计算机设备的组成部分: 运算器、控制器、存储器、输入设备、输出设备 控制器:控制器是整个计算机的枢纽,一般是控制计算机整个部件之间协调的,比如运算器要想运算的话,首先得从存储器中取出数值。或者输入设备输入数。…

    Linux干货 2016-07-07
  • Linux网络属性配置,计算机基础

    Linux网络属性配置,计算机基础 Linux网络属性配置(1): 计算机网络通信:TCP/IP 通过流式化数据相互通信,通过双方一致的时钟频率来完成信号传输; 有两种方式传输:同步传输,异步传输; 借助于介质传输:同轴电缆、网线、无线等; 要想相互通信,也要必须遵循一种(复杂)组织机制,就产生了协议; 通过把协议分层,来分别解决传输过程中各种复杂的操作; …

    Linux干货 2016-09-05
  • FHS文件系统介绍及各目录功能说明

    作者:M21-陆东贵 FHS文件系统介绍及各目录功能说明 FHS简介 Filesystem Hierarchy Standard(文件系统目录标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件。FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾…

    Linux干货 2016-10-18
  • bash工作特性之命令执行状态返回值与命令行展开概述

    bash工作特性之命令执行状态返回值与命令行展开概述 bash是什么? shell是一种用户接口程序,提供了用户与内核进行交互的接口。shell可以分为两类:一类为GUI,即用户图形界面;另一类为CLI,即命令行接口,将用户的命令送入到内核去执行,大多数发行版中最常用的就是bash。 bash特性 命令执行状态返回值 bash通过状态返回值来输出结果: 命令…

    Linux干货 2017-07-09