CentOS啟動大致流程:
POST –> BootSequence –> Bootloader –> kernel –> rootfs –> switchroot –> /sbin/init –> (/etc/inittab;/etc/init/*.conf) –> 設定默認運行級別 –> 系統初始化腳本 –> 關閉或啟動對應級別下的服務 –> 啟動終端
-
POST:Power-On-Self-Test,加電自檢,是BIOS功能的一個主要部分。負責完成對CPU、主板、內存、硬盤子系統、顯示子系統、串并行接口、鍵盤、CD-ROM光驅等硬件情況的檢測 。
- ROM(服務器沒有):BIOS ,Basic Input and Output System ,保存著有關計算機系統最重要的基本輸入輸出程序,系統信息設置、開機加電自檢程序和系統啟動自舉程序等。
- RAM :CMOS 互補金屬 氧化物半導體,保存各項參數的設定按次序查找引導設備,第一個有引導程序的設備為本次啟動設備
-
BootLoader: 引導加載器,引導程序
- windows: ntloader ,僅是啟動OS
-
Linux :功能豐富,提供菜單,允許用戶選擇要啟動系統或不同的內核版本;把用戶選定的內核裝載到內存中的特定空間中,解壓、展開,并把系統控制權移交給內核
- LILO :LInux LOader
-
GRUB: GRand Unified Bootloader
版本:GRUB 0.X: GRUB Legacy,GRUB2
-
MBR:整個硬盤的第一個扇區
446: bootloader, 64: 分區表, 2: 55AA -
GRUB:
primary bootloader : 1st stage ,1.5 stage
secondary bootloader :2nd stage ,配置文件:/boot/grub/grub.config <– /etc/grub.conf
-
kernel:
自身初始化:- 探測可識別到的所有硬件設備
- 加載硬件驅動程序(借助于ramdisk 加載驅動)分3個地方存放所有的驅動。
-
以只讀方式掛載根文件系統
/boot/initramfs-… 安裝操作系統的時候生成,存放掛載根需要的文件系統 - 運行用戶空間的第一個應用程序:/sbin/init
-
rootfs:
庫(glibc)- 函數集合,function,接口調用
- 過程調用:procedure
- 函數調用:function
涉及內容
init程序類型:
-
SysV:init,CentOS 5
配置文件:/etc/inittab -
Upstart:init,CentOS 6
配置文件:/etc/inittab;/etc/init /xxx.conf -
systemd(仿照IOS):systemd,CentOS 7
配置文件:/usr/lib/systemd/system;/etc/systemd/system
ramdisk:
內核中的特性之一:使用緩沖和緩存來加速對磁盤上的文件訪問,并加載相應的硬件驅動
- ramdisk –> ramfs 提高速度
-
CentOS 5: /boot/initrd-VERSION-release.img
工具程序:mkinitrd -
CentOS 6 ,7: /boot/initramfs-VERSION-release.img
工具程序:mkinitrd, dracut
內核設計
-
單內核設計:所有功能集成于一個程序,效率高,安全性低。
例如:Linux -
微內核設計:每種功能使用一個單獨子系統實現,效率低,安全性高。
例如:Windows,Solaris
Linux系統運行級別(CentOS 5 為例)
0:關機
1:單用戶模式(root,無需登錄),single,維護模式
2:多用戶模式,啟動網絡功能,不啟動NFS(維護模式)
3:多用戶模式,正常模式。
4:同3,暫無用。
5:多用戶模式;圖形界面
6:重啟
切換級別:init 0-6 查看級別:runlevel ; who -r
-
配置文件:/etc/inittab (每一行定義一種action)
-
格式:id:runlevel:action:process
-
attion:
wait:切換至次級別運行一次
respawn:此process終止,重新啟動之
initdefault:設定默認運行級別;process省略
sysinit:設定系統初始化方,此處一般指定/etc/rc.d/rc.sysinit
-
attion:
-
例:
l0:0:wait:/etc/rc.d/rc 0
l1:2:wait:/etc/rc.d/rc 1
…
-
格式:id:runlevel:action:process
相關服務
-
查看服務在所有級別的啟動或關閉設定情形(chkconfig命令)
chkconfig –list
chkconfig — level 3 NetworkManager off
SysV的服務腳本放置于/etc/rc.d/init.d(/etc/init.d) -
添加: chkconfig — add name
刪除:chkconfig –del name
修改:chkconfig –level LLLL name on -
正常級別下,最后啟動的服務 S99local 沒有連接至/etc/rc.d/init.d一個服務腳本,而是指向了/etc/rc.d/rc.local腳本;因此不便或不需要寫為服務腳本放置于/etc/rc.d/init.d/目錄,且又想開機時自動運行的命令,可直接放置于/etc/rc.d/rc.local文件中。
-
查看:
ll /etc/rc.d/rc3.d/S99local
cat /etc/rc.d/rc.local
-
查看:
原創文章,作者:kstg5663294,如若轉載,請注明出處:http://www.www58058.com/80139