久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

CentOS 5和6的啟動流程

CentOS 5和6的啟動流程:

Linux:kernel + rootfs

kernel:進程管理,內存管理,網絡管理,驅動程序,文件系統,安全功能

 

rootfs:glibc(gun c 標準庫)

 

庫:

函數集合,function,調用接口(功能名)

過程調用:procedure,無返回值

函數調用:function,有返回值

 

程序:

內核設計流派:

單內核設計:Linux,把所有功能集成同一個程序

 

微內核設計:Windows,Solaris,每種功能使用一個單獨子系統實現

 

liunx內核特點:

支持模塊化:.ko(被內核調用) .so(用戶空間庫名)

支持模塊的動態裝載和卸載

 

組成部分:

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

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

 

ramdisk:基于內存的磁盤,輔助內核驅動磁盤

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

 

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

 

CentOS系統啟動流程:

POST:加電自檢:

ROM:CMOS

BIOS:Basic Input and Output System

 

ROM + RAM

 

BOOT Sequence:

按次序查找各引導設備,第一個有引導程序的設備即為本次啟動用到的設備

 

bootloader:引導加載器,程序

windows:ntloader

 

Linux:

LILO:LInux LOader

 

GRUB:GRand Uniform Bootloader

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

GRUB 1.x:GRUB2 (CentOS 7)

 

引導加載器:找到操作系統所在的磁盤分區,把內核加載至內存中,并將控制權正常轉交給內核的程序,以硬盤為例,引導加載器放在其MBR中

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

 

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

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

 

ramdisk:

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

 

啟動時內核加載根文件系統,但根文件系統所在設備,

內核可能無法驅動,因為驅動程序在根文件系統上,

所以借助于ramdisk協助完成對于所需要和依賴的驅動程序的加載,

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

 

ramdisk -> ramfs

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

所以會把ramdisk緩存到內存中,但ramdisk本身就在內存中,

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

 

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

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

 

系統初始化:

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

 

/sbin/init

CentOS 5:

運行級別:為了系統的運行或維護等應用目的而設定

0-6:7個級別

0:關機

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

2:多用戶模式,會啟動網路功能,但不會啟動NFS,維護模式

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

4:預留級別,可同3級別

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

6:重啟

 

默認級別:3,5

 

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

 

查看級別:runlevel;who -r

 

配置文件:/etc/inittab

每一行定義一種action以及與之對應的process

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

例:id:3:initdefault:

 

action:

wait:切換至此級別運行一次

respawn:此process終止,就重新啟動之
initdefault:設定默認運行級別:process省略

sysinit:設定系統初始化方式,此處一般為指定/etc/rc.d/rc.sysinit

 

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

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

 

在/etc/rc.d/init.d中有對應的腳本,在每個級別的rc.d文件中都有選擇開啟和關閉的腳本

 

chkconfig命令:

查看服務在所有級別下的啟動或關閉設定情形:

chkconfig [--list] [name]

 

添加:

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

 

chkconfig --add name

 

#!/bin/bash

#

# chkconfig: L mm nn

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

mm:為S后數字

nn:為K后數字

 

刪除:

chkconfig --del name ?腳本還在只是在各運行級別中刪除

 

修改指定的鏈接類型:

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

--level L:指定要設置的級別,默認為2345

 

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

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

 

注意:正常級別下,最后啟動的一個服務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)激活udev和seLinux

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

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

(6)設置系統時鐘

(7)激活swap設備

(8)根據/etc/sysctl.conf文件設置內核參數

(9)激活lvm及software raid設置

(10)加載額外設備的驅動程序

(11)清理操作

 

總結:/sbin/init -- (/etc/inittab)-- 設置默認運行級別 -- 運行系統初始腳本,完成系統初始化 -- 關閉對應級別下需要關閉

的服務,啟動需要啟動的服務 -- 設置登陸終端

 

CentOS 6:

init程序為:

upstart

配置文件:

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

注意:

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

 

 

 

相關新聞

歷經多年發展,已成為國內好評如潮的Linux云計算運維、SRE、Devops、網絡安全、云原生、Go、Python開發專業人才培訓機構!

    1. 主站蜘蛛池模板: 米泉市| 长武县| 淳化县| 昂仁县| 土默特左旗| 遂川县| 崇阳县| 广汉市| 永定县| 启东市| 凤翔县| 吉林市| 富锦市| 石台县| 两当县| 都江堰市| 合川市| 儋州市| 丹江口市| 焦作市| 大厂| 广安市| 黄山市| 涿鹿县| 改则县| 万全县| 庆安县| 上饶市| 滕州市| 阳信县| 南岸区| 贵溪市| 济源市| 诸暨市| 安康市| 沾益县| 青河县| 清流县| 于田县| 五大连池市| 嵩明县|