性夜影院午夜看片,无码精品久久一区二区三区,婷婷成人丁香五月综合激情,校园春色 qvod,性调教室高h学校

CentOS 5和6的啟動流程

CentOS 5和6的啟動流程:

Linux:kernel + rootfs

kernel:進(jìn)程管理,內(nèi)存管理,網(wǎng)絡(luò)管理,驅(qū)動程序,文件系統(tǒng),安全功能

 

rootfs:glibc(gun c 標(biāo)準(zhǔn)庫)

 

庫:

函數(shù)集合,function,調(diào)用接口(功能名)

過程調(diào)用:procedure,無返回值

函數(shù)調(diào)用:function,有返回值

 

程序:

內(nèi)核設(shè)計(jì)流派:

單內(nèi)核設(shè)計(jì):Linux,把所有功能集成同一個程序

 

微內(nèi)核設(shè)計(jì):Windows,Solaris,每種功能使用一個單獨(dú)子系統(tǒng)實(shí)現(xiàn)

 

liunx內(nèi)核特點(diǎn):

支持模塊化:.ko(被內(nèi)核調(diào)用) .so(用戶空間庫名)

支持模塊的動態(tài)裝載和卸載

 

組成部分:

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

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

 

ramdisk:基于內(nèi)存的磁盤,輔助內(nèi)核驅(qū)動磁盤

CentOS 5:/boot/initrd_VERSION-release.img (模擬成硬盤)

 

CentOS 6:/boot/initramfs-VERSION-release.img (模擬成文件系統(tǒng))

 

CentOS系統(tǒng)啟動流程:

POST:加電自檢:

ROM:CMOS

BIOS:Basic Input and Output System

 

ROM + RAM

 

BOOT Sequence:

按次序查找各引導(dǎo)設(shè)備,第一個有引導(dǎo)程序的設(shè)備即為本次啟動用到的設(shè)備

 

bootloader:引導(dǎo)加載器,程序

windows:ntloader

 

Linux:

LILO:LInux LOader

 

GRUB:GRand Uniform Bootloader

GRUB 0.x:GRUB legacy (CentOS 5,6)

GRUB 1.x:GRUB2 (CentOS 7)

 

引導(dǎo)加載器:找到操作系統(tǒng)所在的磁盤分區(qū),把內(nèi)核加載至內(nèi)存中,并將控制權(quán)正常轉(zhuǎn)交給內(nèi)核的程序,以硬盤為例,引導(dǎo)加載器放在其MBR中

(提供一個菜單,允許用戶選擇要啟動的系統(tǒng)或不同的內(nèi)核版本,把用戶選定的內(nèi)核裝載到內(nèi)存中的特定空間中,解壓展開并把系統(tǒng)控制權(quán)移交給內(nèi)核)

 

MBR:

446:bootloader

64:fat 文件分配表

2:55AA

 

GRUB:

bootloader:1st stage (找到硬盤中的第二階段)

disk:2nd stage

 

kernel:

自身初始化:

探測可識別到的所有硬件設(shè)備

加載硬件驅(qū)動程序:(有可能會借助于ramdisk加載驅(qū)動)

以只讀方式掛載根文件系統(tǒng)

運(yùn)行用戶空間的第一個應(yīng)用程序:/sbin/init

 

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

 

ramdisk:

內(nèi)核中的特性之一:使用緩沖和緩存來加速對磁盤上文件的訪問:

 

啟動時內(nèi)核加載根文件系統(tǒng),但根文件系統(tǒng)所在設(shè)備,

內(nèi)核可能無法驅(qū)動,因?yàn)轵?qū)動程序在根文件系統(tǒng)上,

所以借助于ramdisk協(xié)助完成對于所需要和依賴的驅(qū)動程序的加載,

加載完成后,切換到真正的根

 

ramdisk -> ramfs

由于ramdisk模擬成硬盤,所以有可能被緩沖兩次,內(nèi)核認(rèn)為任何磁盤都比較慢,

所以會把ramdisk緩存到內(nèi)存中,但ramdisk本身就在內(nèi)存中,

等于存了兩次,所以CentOS 6采用ramfs

 

ramdisk在CentOS 5:initrd,利用mkinitrd生成

ramfs在CentOS 6:initramfs 工具程序:mkinitrd(不怎么用),dracut(一般使用此工具)

 

系統(tǒng)初始化:

POST--Bootsequence(BIOS)--Bootloader(MBR)--kernel(ramdisk)--rootfs(以只讀方式加載根文件系統(tǒng))--init

 

/sbin/init

CentOS 5:

運(yùn)行級別:為了系統(tǒng)的運(yùn)行或維護(hù)等應(yīng)用目的而設(shè)定

0-6:7個級別

0:關(guān)機(jī)

1:單用戶模式,single,維護(hù)模式,root,無須登陸

2:多用戶模式,會啟動網(wǎng)路功能,但不會啟動NFS,維護(hù)模式

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

4:預(yù)留級別,可同3級別

5:多用戶模式,正常模式,圖形界面

6:重啟

 

默認(rèn)級別:3,5

 

切換級別:init #(級別數(shù)字)

 

查看級別:runlevel;who -r

 

配置文件:/etc/inittab

每一行定義一種action以及與之對應(yīng)的process

id:runlevel:action:process (id可以使用任意名稱,保證每行不一樣就成)

例:id:3:initdefault:

 

action:

wait:切換至此級別運(yùn)行一次

respawn:此process終止,就重新啟動之
initdefault:設(shè)定默認(rèn)運(yùn)行級別:process省略

sysinit:設(shè)定系統(tǒng)初始化方式,此處一般為指定/etc/rc.d/rc.sysinit

 

# si::sysinit:/etc/rc.d/rc.sysinit 運(yùn)行級別為空,表示所有級別

# 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##* K開頭意味著此級別關(guān)閉 K后數(shù)字越小,越先運(yùn)行,數(shù)字越小的服務(wù),為越依賴別的服務(wù)的服務(wù)

S*:S##* S開頭意味著此級別開啟 S后數(shù)字越小,越先運(yùn)行,數(shù)字越小的服務(wù),為越被依賴的服務(wù)

 

在/etc/rc.d/init.d中有對應(yīng)的腳本,在每個級別的rc.d文件中都有選擇開啟和關(guān)閉的腳本

 

chkconfig命令:

查看服務(wù)在所有級別下的啟動或關(guān)閉設(shè)定情形:

chkconfig [--list] [name]

 

添加:

sysV的服務(wù)腳本放置于/etc/rc.d/init.d(/etc/init.d)

 

chkconfig --add name

 

#!/bin/bash

#

# chkconfig: L mm nn

L:0-6 寫那個數(shù)那個級別為S,如果為"-"表示所有級別都不為S

mm:為S后數(shù)字

nn:為K后數(shù)字

 

刪除:

chkconfig --del name ?腳本還在只是在各運(yùn)行級別中刪除

 

修改指定的鏈接類型:

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

--level L:指定要設(shè)置的級別,默認(rèn)為2345

 

注意:想在開機(jī)時運(yùn)行但不方便寫成腳本放在/etc/rc.d/init.d中的使用chkconfig控制,但又想開機(jī)運(yùn)行的命令,

可以寫在/etc/rc.local或/etc/rc.d/rc.local

 

注意:正常級別下,最后啟動的一個服務(wù)S99local沒有鏈接至/etc/rc.d/init.d中的一個服務(wù)腳本,

而是指向了/etc/rc.d/rc.local腳本;因此,不便或不需寫為服務(wù)腳本放置于/etc/rc.d/init.d目錄中,

且又想開機(jī)自動運(yùn)行的命令,可以寫入/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會調(diào)用login程序

 

/etc/rc.d/rc.sysinit:系統(tǒng)初始化腳本

(1)設(shè)置主機(jī)名

(2)設(shè)置歡迎信息

(3)激活udev和seLinux

(4)掛載/etc/fstab文件中定義的文件系統(tǒng)

(5)檢測根文件系統(tǒng),并以讀寫方式重新掛載根文件系統(tǒng)

(6)設(shè)置系統(tǒng)時鐘

(7)激活swap設(shè)備

(8)根據(jù)/etc/sysctl.conf文件設(shè)置內(nèi)核參數(shù)

(9)激活lvm及software raid設(shè)置

(10)加載額外設(shè)備的驅(qū)動程序

(11)清理操作

 

總結(jié):/sbin/init -- (/etc/inittab)-- 設(shè)置默認(rèn)運(yùn)行級別 -- 運(yùn)行系統(tǒng)初始腳本,完成系統(tǒng)初始化 -- 關(guān)閉對應(yīng)級別下需要關(guān)閉

的服務(wù),啟動需要啟動的服務(wù) -- 設(shè)置登陸終端

 

CentOS 6:

init程序?yàn)椋?/p>

upstart

配置文件:

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

注意:

/etc/init/*.conf 文件語法遵循upstart配置文件語法格式

 

 

 

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機(jī)構(gòu)!