25 Linux系統啟動和核心管理

2021-09-29 07:27:12 字數 3664 閱讀 7439

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控制主機

bootloader: 引導載入器,引導程式

mbr:第乙個扇區

grub

kernel

支援核心模組的動態裝載和解除安裝

核心組成部分:

核心檔案:/boot/vmlinuz-version-release

模組檔案:/lib/modules/version-release

centos 6,7 initramfs.img

dracut命令

init程式的型別:

sysv: init, centos 5之前

upstart: init,centos 6

systemd:systemd, centos 7

/sbin/init centos6之前

執行級別:為系統執行或維護等目的而設定;0-6:7個級別

0:關機

1:單使用者模式(root自動登入), single, 維護模式

2:多使用者模式,啟動網路功能,但不會啟動nfs;維護模式

3:多使用者模式,正常模式;文字介面

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

5:多使用者模式,正常模式;圖形介面

6:重啟

預設級別:3, 5

切換級別:init #

檢視級別:runlevel ; who -r

process:定義了要執行的程序

示例:

/etc/init/control-alt-delete.conf

/etc/init/tty.conf

/etc/init/start-ttys.conf

/etc/init/rc.conf

/etc/init/prefdm.conf

for srv in /etc/rc.d/rcn.d/k*; do   

$srv stop

done

for srv in /etc/rc.d/rcn.d/s*; do

$srv start

done

刪除:

修改指定的鏈結型別

chkconfig [–level levels] name

瞬態(transient)服務被xinetd程序所管理

不便或不需寫為服務指令碼放置於/etc/rc.d/init.d/目錄,且又想開機時自動執行 的命令,可直接放置於/etc/rc.d/rc.local檔案中

/etc/rc.d/rc.local在指定執行級別指令碼後執行

可以根據情況,進行自定義修改

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

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

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

x:5:respawn:/etc/x11/prefdm -nodaemon

總結:/sbin/init --> (/etc/inittab) --> 設定預設執行級別 --> 執行系統初始 指令碼、完成系統初始化 --> (關閉對應下需要關閉的服務)啟動需要啟動服務 -> 設定登入終端

centos 6 init程式為: upstart, 其配置檔案:

/etc/inittab, /etc/init/*.conf,配置檔案的語法 遵循 upstart配置檔案語 法格式,和centos5不同

/mnt/sysroot/

udev通過此路徑下輸出的資訊動態為各裝置建立所需要裝置檔案,udev是 執行使用者空間程式

專用工具:udevadmin, hotplug

udev為裝置建立裝置檔案時,會讀取其事先定義好的規則檔案,一般在 /etc/udev/rules.d及/usr/lib/udev/rules.d目錄下

示例:lsmod |grep xfs

modinfo xfs

了解全部硬體裝置資訊

hal-device:centos 6

(1) 配置核心選項

支援「更新」模式進行配置:make help  

(a) make config:基於命令列以遍歷的方式配置核心中可配置的每個選項

(b) make menuconfig:基於curses的文字視窗介面

(c) make gconfig:基於gtk (gnome)環境視窗介面

(d) make xconfig:基於qt(kde)環境的視窗介面

支援「全新配置」模式進行配置

(a) make defconfig:基於核心為目標平台提供的「預設」配置進行配置

(b) make allyesconfig: 所有選項均回答為「yes「

(c) make allnoconfig: 所有選項均回答為「no「

(2) 編譯

全編譯:make [-j #]

編譯核心的一部分功能:

(a) 只編譯某子目錄中的相關**   

cd /usr/src/linux

make dir/

(b) 只編譯乙個特定的模組

cd /usr/src/linux

make dir/file.ko

示例:只為e1000編譯驅動:

make drivers/net/ethernet/intel/e1000/e1000.ko

刪除/lib/modules/目錄下不需要的核心庫檔案

刪除/usr/src/linux/目錄下不需要的核心原始碼

刪除/boot目錄下啟動的核心和核心映像檔案

更改grub的配置檔案,刪除不需要的核心啟動列表

systemd:系統啟動和伺服器守護程序管理器,負責在系統啟動或執行時,激 活系統資源,伺服器程序和其它程序

systemd新特性

系統引導時實現服務並行啟動

按需啟動守護程序

自動化的服務依賴關係管理

同時採用socket式與d-bus匯流排式啟用服務

系統狀態快照

核心概念:unit

unit表示不同型別的systemd物件,通過配置檔案進行標識和配置;檔案中主 要包含了系統服務、監聽socket、儲存的系統快照以及其它與init相關的資訊

配置檔案

/usr/lib/systemd/system:每個服務最主要的啟動指令碼設定,類似於之前的 /etc/init.d/

/run/systemd/system:系統執行過程中所產生的服務指令碼,比上面目錄優 先執行

/etc/systemd/system:管理員建立的執行指令碼,類似於/etc/rcn.d/sxx的功 能,比上面目錄優先執行

linux系統啟動

本文簡單介紹一下從我們按開機鍵到可以登入系統,這段時間系統和電腦硬體是怎麼一起工作的。既做為對自己知識的乙個總結整理,也可以給linux初級使用者做乙個入門介紹,高手請略過。一般來說linux的啟動可以分成三個階段 bios階段,系統引導階段,系統啟動階段。一 bios階段 bios 基本輸入輸出系...

linux系統啟動

本文簡單介紹一下從我們按開機鍵到可以登入系統,這段時間系統和電腦硬體是怎麼一起工作的。既做為對自己知識的乙個總結整理,也可以給linux初級使用者做乙個入門介紹,高手請略過。一般來說linux的啟動可以分成三個階段 bios階段,系統引導階段,系統啟動階段。一 bios階段 bios 基本輸入輸出系...

Linux系統啟動

1.系統啟動流程大概 1 啟動bios 2 mbr中的引導 bootcode 3 執行引導程式 linux中用的最多的是grub 引導程式的主要作用是用來載入核心 4 載入系統核心 5 執行init 6 runlevel init根據當前預設的執行級別來啟動相關的程式及裝置 2.bios basic...