作者介紹:在簡歷上沒有一個精通的運維工程師。請點擊上方的藍色《運維小路》關注我,以下思維導圖展示了預計更新的內容和當前進度(不定時更新)。
我們的linux進階部分,到目前為止,已經涵蓋了:硬件,日常運維,基礎軟件,日志,進階命令,防火墻,Shell編程,以及本章將要講解的內核相關內容,和最后一章Linux系統。
讓我們深入了解和熟悉基本的Linux內核相關的信息,Linux內核我們將從以下幾個方面進行講解:
Linux內核-什么是內核
Linux內核-內核模塊&參數(本章節)
Linux內核-proc文件系統
Linux內核-sys文件系統
Linux內核-tmpfs文件系統
在運維生涯中,內核升級并不常見。這種操作通常用于項目啟動階段,因為一旦業務上線,一般不會再進行如此大的變更。
內核模塊
內核模塊是一種可以在運行時動態加載到操作系統內核中的軟件組件。
一、作用
內核模塊主要有以下幾個重要作用:
擴展內核功能:操作系統內核在設計時通常無法包含所有可能的功能,內核模塊允許開發者在需要時添加特定的功能,比如新的設備驅動程序、文件系統支持等,從而增強了操作系統的靈活性和可擴展性。適應不同硬件環境:不同的計算機硬件可能需要不同的驅動程序或支持模塊。通過加載相應的內核模塊,可以使操作系統適應各種硬件配置,而無需重新編譯整個內核。提高系統性能:只在需要時加載特定的內核模塊,可以避免內核變得過于龐大和復雜,從而提高系統的性能和響應速度。二、常用命令
1.查看內核模塊
#查看當前系統加載的內核模塊 lsmod #這個目錄下就是Linux服務器有的內核模塊 /lib/modules/內核版本/kernel
2.添加新的內核模塊
[root@localhost ]# lsmod |grep kvm [root@localhost ]# [root@localhost ]# modprobe kvm [root@localhost ]# lsmod |grep kvm kvm 667648 0 irqbypass 16384 1 kvm
3.移除內核模塊
rmmod kvm
一般情況下,我們并不需要單獨加載或移除內核模塊。比如這個kvm模塊,如果我們作為普通服務器使用,使用不到這個模塊,也不需要加載這個模塊。但是如果我們這臺服務器是需要作為kvm宿主機,在安裝kvm相關軟件以后,這個模塊是會自動加載的。
這里把內核模塊列出來介紹,就是讓我們了解和認識內核模塊。
內核參數
我們剛剛介紹的內核模塊,主要是為了從系統層面支持某個功能,而內核參數,則可以理解為在實現某個具體功能的參數,只是這個參數是內核層面的。
查看內核參數
sysctl -a
修改內核參數
sysctl -w net.ipv4.ip_forward=1
echo 1 > /proc/sys/net/ipv4/ip_forward
持久化內核參數
vi /etc/sysctl.conf #添加格式如下 net.ipv4.ip_forward=1 #執行該命令,或者重啟也可以生效 sysctl -p
常見的內核參數分類介紹
sysctl -a |awk -F '.' '{print $1}' |uniq
abi:包含應用程序與內核之間的接口規范相關內容,確保不同軟件在特定系統上能正確交互。
crypto:存放內核加密相關功能模塊,用于實現數據加密、解密等安全操作。
debug:與內核調試有關,可幫助查找和解決內核運行中的問題。
dev:涵蓋各種硬件設備的驅動程序,負責讓操作系統與硬件設備通信。
fs:包含不同類型文件系統的實現代碼,管理文件的存儲和訪問。
kernel:內核的核心部分,有進程管理、內存管理等關鍵功能。
net:負責網絡功能,包括網絡協議和設備驅動,實現數據網絡傳輸。
user:涉及用戶空間與內核交互的部分,保障用戶程序安全與內核通信。
vm:專注于虛擬內存管理,合理分配和回收內存資源。
總結
其實我們在前面講Linux基礎軟件-swap和防火墻-nat表的時候就修改內核參數。內核參數是為了實現某個具體的細節功能或者優化某些功能的使用。