linux啟動和內核管理:
1. 加載BIOS 的硬件信息,獲取第一個啟動設備
2. 讀取第一個啟動設備MBR 的引導加載程序(grub) 的啟動信息
3. 加載核心操作系統的核心信息,核心開始解壓縮,并嘗試驅
動所有的硬件設備
4. 核心執行init 程序,并獲取默認的運行信息
5.init 程序執行/etc/rc.d/rc.sysinit 文件
6. 啟動核心的外掛模塊
7.init 執行運行的各個批處理文件(scripts)
8.init 執行/etc/rc.d/rc.local
9. 執行/bin/login 程序,等待用戶登錄
10. 登錄之后開始以Shell
ROM:主板上有一部分只讀的內容,BIOS;等
保存著有關計算機系統 最重要的基本輸入輸出程序,系統信息設置、 開機加電 自檢程序和
系統啟動自舉程序等
RAM:CMOS 互補金屬氧化物半導體,保存各項參數的設定按次序查找引導設備
第一個有引導程序的設備為本次啟動設備
grup :引導程序加載器
primary boot loader : 1st stage ,1.5 stage secondary boot loader :2nd stage
系統相關的文件都在 /boot/下面,里面還有grup文件
1.5階段引導;
MBR :446: bootloader, 64: 分區表, 2: 55AA
kernel: 內核開機運行的程序:
自身初始化:
探測可識別到的所有硬件設備
加載硬件驅動程序(可能借助于ramdisk 加載驅動)
以只讀方式掛載根文件系統
運行用戶空間的第一個應用程序:/sbin/init (內核定義的 開機自動去此目錄尋找init)
ramdisk:
內核中的特性之一:使用緩沖和緩存來加速對磁盤上的文件訪問
ramdisk –> ramfs 提高速度
ramdisk 文件的制作:(initramfs 文件)
mkinitrd 命令
為當前正在使用的內核重新制作ramdisk文件
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
系統啟動流程:
Upstart: init,CentOS 6
配置文件:/etc/inittab, /etc/init/*.conf
Systemd :systemd, CentOS 7
配置文件:/usr/lib/systemd/system
/etc/systemd/system
運行級別:為系統運行或維護等目的而設定;0-6 :7 個級別
0 :關機
1 :單用戶模式(root 自動登錄), single, 維護模式
2: 多用戶模式,啟動網絡功能,但不會啟動NFS ;維護模式
3 :多用戶模式,正常模式;文本界面
4 :預留級別;可同3 級別
5 :多用戶模式,正常模式;圖形界面
6 :重啟
?: 默認級別: 3, 5
? 切換級別:init #
? 查看級別:runlevel ; who -r
開機后按a 進入modify模式。在quite后面空格后加數字,表示臨時啟動哪個模式
chkconfig –level :更改啟動模式,
/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) 清理操作
chkconfig 命令
? 查看服務在所有級別的啟動或關閉設定情形:
chkconfig [–list] [name]
瞬態(Transient )服務被xinetd 進程所管理
進入的請求首先被xinetd 代理
配置文件:/etc/xinetd.conf 、/etc/xinetd.d/<service>
與libwrap.so 文件鏈接
用chkconfig 控制的服務:
chkconfig tftp on
原創文章,作者:shewei,如若轉載,請注明出處:http://www.www58058.com/72052