CentOS 5和6的启动流程

Linux: kernel+rootfs 

kernel: 进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能

rootfs:

glibc

库:函数集合, function, 调用接口

过程调用:procedure

函数调用:function

程序 

内核设计流派:

单内核设计:Linux

把所有功能集成于同一个程序;

微内核设计:Windows, Solaris

每种功能使用一个单独子系统实现; 

Linux内核特点:

支持模块化:.ko

支持模块的动态装载和卸载; 

组成部分:

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

例一:内核的核心文件

[root@localhost lib]# ls /boot/
vmlinuz-3.10.0-514.el7.x86_64

ramdisk

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

CentOS 6: /boot/initramfs-VERSION-release.img

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

例一:查看模块文件

[root@localhost lib]# ls /lib/modules/3.10.0-514.el7.x86_64/
build              modules.block        modules.devname      modules.softdep      vdso
extra              modules.builtin      modules.drm          modules.symbols      weak-updates
kernel             modules.builtin.bin  modules.modesetting  modules.symbols.bin
modules.alias      modules.dep          modules.networking   source
modules.alias.bin  modules.dep.bin      modules.order        updates 

CentOS 系统启动流程: 

POST:加电自检;

ROMCMOS

BIOSBasic Input and Output System

ROM+RAM

BOOT Sequence:

按次序查找各引导设备,第一个有引导程序的设备即为本次启动用到设备;

bootloader: 引导加载器,程序

windows: ntloader

Linux

LILOLInux LOader

GRUB: GRand Uniform Bootloader

GRUB 0.X: GRUB Legacy

GRUB 1.x: GRUB2 

功能:提供一个菜单,允许用户选择要启动系统或不同的内核版本;把用户选定的内核装载到内存中的特定空间中,解压、展开,并把系统控制权移交给内核; 

MBR:

446: bootloader

64: fat

2: 55AA 

GRUB:

bootloader: 1st stage

disk: 2nd stage 

kernel

自身初始化:

探测可识别到的所有硬件设备;

加载硬件驱动程序;(有可能会借助于ramdisk加载驱动)

以只读方式挂载根文件系统;

运行用户空间的第一个应用程序:/sbin/init 

init程序的类型:

SysV: init, CentOS 5

配置文件:/etc/inittab 

Upstart: init, CentOS 6

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

Systemdsystemd, CentOS 7

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

例一:centos7 init内核配置文件

[root@localhost ~]# ls /etc/systemd/system
basic.target.wants                                       display-manager.service
bluetooth.target.wants                                   getty.target.wants

例二:centos7 init内核配置文件

[root@localhost ~]# ls /usr/lib/systemd/system
abrt-ccpp.service                        paths.target
abrtd.service                            plymouth-halt.service 

ramdisk 

内核中的特性之一:使用缓冲和缓存来回事对磁盘上的文件访问; 

ramdisk –> ramfs 

CentOS 5: initrd,  工具程序:mkinitrd

CentOS 6: initramfs, 工具程序:mkinitrd, dracut 

系统初始化:

POST –> BootSequence (BIOS) –> Bootloader(MBR) –> kernel(ramdisk) –> rootfs(只读) –> init 

/sbin/init 

CentOS 5: 

运行级别:为了系统的运行或维护等应用目的而设定; 

0-67个级别

0:关机

1:单用户模式(root, 无须登录), single, 维护模式;

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

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

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

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

6:重启 

默认级别:

3, 5 

切换级别:

init #

查看级别:

runlevel

who -r 

配置文件:/etc/inittab

每一行定义一种action以及与之对应的process

id:runlevel:action:process

action:

wait: 切换至此级别运行一次;

respawn:此process终止,就重新启动之;

initdefault:设定默认运行级别;process省略;

sysinit:设定系统初始化方式,此处一般为指定/etc/rc.d/rc.sysinit

id:3:initdefault:

si::sysinit:/etc/rc.d/rc.sysinit 

l0:0:wait:/etc/rc.d/rc 0

l1:1:wait:/etc/rc.d/rc 1

l6:6:wait:/etc/rc.d/rc 6 

说明:rc 0 –> 意味着读取/etc/rc.d/rc0.d/

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

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

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

$srv stop

done 

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

$srv start

done 

chkconfig命令

查看服务在所有级别的启动或关闭设定情形:

chkconfig [–list] [name]

例一:查看所有服务 

[root@localhost ~]# chkconfig --list 

例二:更改服务权限

[root@localhost ~]# chkconfig --level 3 network off

添加:

SysV的服务脚本放置于/etc/rc.d/init.d (/etc/init.d) 

chkconfig –add name 

#!/bin/bash

#

# chkconfig: LLLL nn nn 

删除:

chkconfig –del name 

修改指定的链接类型

chkconfig [–level levels] name <on|off|reset>

–level LLLL: 指定要设置的级别;省略时表示2345 

注意:正常级别下,最后启动一个服务S99local没有链接至/etc/rc.d/init.d一个服务脚本,而是指向了/etc/rc.d/rc.local脚本;因此,不便或不需写为服务脚本放置于/etc/rc.d/init.d/目录,且又想开机时自动运行的命令,可直接放置于/etc/rc.d/rc.local文件中; 

tty1:2345:respawn:/usr/sbin/mingetty tty1

tty2:2345:respawn:/usr/sbin/mingetty tty2

tty6:2345:respawn:/usr/sbin/mingetty tty6

 mingetty会调用login程序 

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

(1) 设置主机名;

(2) 设置欢迎信息;

(3) 激活udevselinux;

(4) 挂载/etc/fstab文件中定义的文件系统;

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

(6) 设置系统时钟;

(7) 激活swap设备;

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

(9) 激活lvmsoftware raid设备;

(10) 加载额外设备的驱动程序;

(11) 清理操作;

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

CentOS 6: 

init程序为: upstart, 其配置文件:

/etc/inittab, /etc/init/*.conf 

注意:/etc/init/*.conf文件语法 遵循 upstart配置文件语法格式;

回顾:

CentOS 6启动流程:

POST –> Boot Sequence(BIOS) –> Boot Loader (MBR) –> Kernel(ramdisk) –> rootfs –> switchroot –> /sbin/init –>(/etc/inittab, /etc/init/*.conf) –> 设定默认运行级别 –> 系统初始化脚本 –> 关闭或启动对应级别下的服务 –> 启动终端

 

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

(0)
kangkang
上一篇 2016-08-23
下一篇 2016-08-23

相关推荐

  • DHCP使用帮助

    bootp 想要通过tcp/ip模型进行网络通信需要有一个ip地址,IP地址是属于操作系统的,所以没有操作系统就没有ip 为了解决这种问题,有一种网卡可以不需要操作系统就能获取到ip bootp:只有第一次是动态获得,以后ip地址就是和mac地址绑定的,不能分配给其他主机 DHCP:DHCP是bootp的改进版,主要引入了租约的定义 DHCP也可以根据mac…

    Linux干货 2016-11-11
  • 网络管理

    网络管理 本章内容 网络概念 OSI模型 网络设备 TCP/IP IP地址 配置网络 实现网络组 测试网络 网络工具 为linux网卡配置ip地址,不是给网卡配置地址,是给内核的网络功能配置,地址是属于内核。为内核配置即时生效,修改配置文件,是永久生效。ifconfig 配置信息,会立即生效,但是重启网络服务或主机,都失效。网络服务/etc/init.d/n…

    Linux干货 2016-09-05
  • grep,find用法-2

    1、显示当前系统上root、fedora或user1用户的默认shell; grep -E “^(root|fedora|user1)>” /etc/passwd | cut -d: -f1,7 [root@bogon Desktop]# grep -E “^(root|fedora|user1)\>” /etc/pass…

    Linux干货 2017-08-04
  • 马哥教育网络21期+第八周练习博客

    马哥教育网络21期+第八周练习博客 # 1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 集线器:工作于ISO模型的物理层,防止由于距离远,信号衰减; 网桥:用来连接不同网段,隔离冲突域; 二层交换机:二层交换机一般做为了三层交换机以下,利用设备mac地址进行通信,可以划分vlan,隔离广播域; 三层交换机:用于核心数据转发,不…

    Linux干货 2016-09-05
  • varnish动静分离

    http://blog.51cto.com/sonlich/2060785

    2018-01-14
  • 硬链接与软链接

    引言: 链接,一种在共享文件和访问它的用户的若干目录项之间建立联系的一种方法。 Linux中包括两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接又称为符号链接(Symbolic link)。 Inode译成中文就是索引节点,它用来存放档案及目录的基本信息,包含时间、档名、使用者及群组等。 Block:存放档案内容数据的地方。 &n…

    Linux干货 2016-10-20