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

CentOS 5和6的啟動(dòng)流程

CentOS 5和6的啟動(dòng)流程:

Linux:kernel + rootfs

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

 

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

 

庫(kù):

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

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

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

 

程序:

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

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

 

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

 

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

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

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

 

組成部分:

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

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

 

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

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

 

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

 

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

POST:加電自檢:

ROM:CMOS

BIOS:Basic Input and Output System

 

ROM + RAM

 

BOOT Sequence:

按次序查找各引導(dǎo)設(shè)備,第一個(gè)有引導(dǎo)程序的設(shè)備即為本次啟動(dòng)用到的設(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)所在的磁盤(pán)分區(qū),把內(nèi)核加載至內(nèi)存中,并將控制權(quán)正常轉(zhuǎn)交給內(nèi)核的程序,以硬盤(pán)為例,引導(dǎo)加載器放在其MBR中

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

 

MBR:

446:bootloader

64:fat 文件分配表

2:55AA

 

GRUB:

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

disk:2nd stage

 

kernel:

自身初始化:

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

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

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

運(yùn)行用戶空間的第一個(gè)應(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)核中的特性之一:使用緩沖和緩存來(lái)加速對(duì)磁盤(pán)上文件的訪問(wèn):

 

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

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

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

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

 

ramdisk -> ramfs

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

所以會(huì)把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)行級(jí)別:為了系統(tǒng)的運(yùn)行或維護(hù)等應(yīng)用目的而設(shè)定

0-6:7個(gè)級(jí)別

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

1:?jiǎn)斡脩裟J?,single,維護(hù)模式,root,無(wú)須登陸

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

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

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

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

6:重啟

 

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

 

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

 

查看級(jí)別:runlevel;who -r

 

配置文件:/etc/inittab

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

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

例:id:3:initdefault:

 

action:

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

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

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

 

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

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

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

.

.

.

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

 

說(shuō)明:rc 0 -- 意味著讀取/etc/rc.d/rc0.d

 

K*:K##* K開(kāi)頭意味著此級(jí)別關(guān)閉 K后數(shù)字越小,越先運(yùn)行,數(shù)字越小的服務(wù),為越依賴別的服務(wù)的服務(wù)

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

 

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

 

chkconfig命令:

查看服務(wù)在所有級(jí)別下的啟動(dòng)或關(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 寫(xiě)那個(gè)數(shù)那個(gè)級(jí)別為S,如果為"-"表示所有級(jí)別都不為S

mm:為S后數(shù)字

nn:為K后數(shù)字

 

刪除:

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

 

修改指定的鏈接類型:

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

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

 

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

可以寫(xiě)在/etc/rc.local或/etc/rc.d/rc.local

 

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

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

且又想開(kāi)機(jī)自動(dòng)運(yùn)行的命令,可以寫(xiě)入/etc/rc.d/rc.local文件中

 

啟動(dòng)虛擬終端:

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

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

.

.

.

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

 

mingetty會(huì)調(diào)用login程序

 

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

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

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

(3)激活udev和seLinux

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

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

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

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

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

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

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

(11)清理操作

 

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

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

 

CentOS 6:

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

upstart

配置文件:

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

注意:

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

 

 

 

相關(guān)新聞

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