內核是操作系統的主要部分,它可以同時(shí)運行多個(gè)進(jìn)程,并且不會(huì )因資源不足而導致系統崩潰。Linux 是能夠處理復雜應用程序的穩定操作系統之一,適用于創(chuàng )建復雜架構。Linux 有一個(gè)內核,它被稱(chēng)為 Linux 操作系統的核心,它可以完全控制 Linux 系統中的所有內容。內核被認為是在引導加載程序加載之前將在 Linux 系統上加載的首批程序之一。如果您是 Linux 新手并且不了解引導加載程序,那么它是一種將加載和啟動(dòng) Linux 操作系統的加載時(shí)間進(jìn)程的程序。每當您啟動(dòng)系統或啟動(dòng)系統時(shí),它都有助于在計算機內存中加載操作系統。
如果您有基本的計算機背景,那么您必須熟悉“啟動(dòng)”系統這一術(shù)語(yǔ)。這是引導加載程序將轉換指令以處理 CPU 數據的步驟。引導加載程序能夠處理內存和其他外圍設備,如鍵盤(pán)、顯示器等。
內核的工作
內核充當系統上運行的應用程序、CPU、內存和連接到系統的設備之間的屏障。它被稱(chēng)為計算機硬件與正在運行的進(jìn)程或應用程序之間的接口。Linux 內核是免費和開(kāi)源的,以及類(lèi) Unix 操作系統內核。
- 創(chuàng )建 Linux 系統基礎的硬件或物理機器由內存 (RAM)、處理器或中央處理單元 (CPU) 以及輸入/輸出 (I/O) 設備(如 存儲、 網(wǎng)絡(luò )和圖形)組成. CPU 將執行所需的計算,讀取數據并將數據寫(xiě)入內存。
- Linux內核也被稱(chēng)為L(cháng)inux OS的核心程序。主軟件駐留在系統內存中,并指導 CPU 執行什么任務(wù)。
- 用戶(hù)進(jìn)程是由系統內核管理的正在運行的程序。用戶(hù)進(jìn)程創(chuàng )建主用戶(hù)空間。內核讓這些進(jìn)程相互建立連接。
系統將在內核模式或用戶(hù)模式下在 CPU 上運行各種任務(wù)。在內核模式下運行的代碼僅限于使用硬件,而在用戶(hù)模式下運行的代碼僅限于使用 CPU 和內存。這種類(lèi)型的區別也適用于記憶。
Linux內核的子系統
我們在下面提到了 Linux 內核的主要核心子系統。它們是進(jìn)程調度器、虛擬文件系統、內存管理單元、網(wǎng)絡(luò )單元和進(jìn)程間通信單元。在本文中,我們將僅詳細關(guān)注 Linux 內核的三個(gè)主要子系統。讓我們看看這三個(gè)核心子系統的詳細功能。
進(jìn)程調度器:這是內核的主要子系統,因為它負責在通道中的所有進(jìn)程或應用程序之間分配 CPU 時(shí)間和資源。任何正在運行的進(jìn)程都不會(huì )缺少 CPU 資源,并允許多個(gè)應用程序同時(shí)運行,而不會(huì )因另一個(gè)應用程序而影響一個(gè)應用程序的性能。PS:查看2022 年最佳服務(wù)器 CPU 處理器的建議。
內存管理單元:該內核子系統負責管理內存并確保內存在系統上運行的所有資源、進(jìn)程和應用程序之間的正確分配,因此它們不會(huì )因為內存不足或在內核模式下拋出“內存不足”等錯誤而崩潰”。
虛擬文件系統:這是內核子系統,負責為計算機上所有可用的文件系統提供平等的接口,并允許它們訪(fǎng)問(wèn)這些文件系統上存在的存儲數據。
Linux內核的優(yōu)點(diǎn)
以下是使用 Linux 內核的一些優(yōu)點(diǎn)。
- 由于軟件的參與較少,因此它被認為工作得更快。
- 內核是一個(gè)小軟件;因此,就源代碼和編譯形式而言,它更小。
- 由于其體積和代碼小,它往往具有較少的錯誤,因此出現任何與安全相關(guān)的問(wèn)題的可能性較小。
- 它是一個(gè)完全在單一地址空間內運行的單一進(jìn)程。
- 它有助于在 Linux 系統上運行的所有進(jìn)程中管理系統的所有資源。
內核的缺點(diǎn)
以下是內核的一些陷阱;其中一些在下面提到。
- 由于內核子系統之間存在依賴(lài)關(guān)系,如果設備驅動(dòng)程序出現錯誤,可能會(huì )導致整個(gè)系統崩潰。
- 如果內核的大小很大,管理它就變得很困難。
- 為了向 Linux 系統添加任何新服務(wù),您需要對操作系統進(jìn)行整體修改。
單片內核
在單體內核中完成的大部分工作都是通過(guò)系統調用完成的。正在運行的程序通過(guò)系統調用與操作系統交互。每當程序想要與操作系統內核交互時(shí),它都需要發(fā)出系統調用請求。系統調用將使用應用程序接口 (API) 向請求的應用程序提供操作系統的服務(wù)。
單片內核與微內核有何不同
兩者的顯著(zhù)區別在于系統調用和內核空間。我們已經(jīng)提到了單體內核和微內核之間的一些顯著(zhù)差異。主要區別在于微內核在不同的空間中實(shí)現用戶(hù)和內核服務(wù)。相比之下,單片內核在單個(gè)地址空間中使用這兩種服務(wù)。
- 微內核的大小很小,因為與內核相關(guān)的服務(wù)和任務(wù)將只運行內核服務(wù)。相比之下,單片內核的大小與微內核相比要大,因為單片內核和用戶(hù)服務(wù)都在相同的地址空間中運行。
- 單片內核的處理速度很快,因為系統調用用于建立應用程序和底層硬件之間的通信。雖然與單片內核相比,微內核處理速度較慢,但??通信是使用正在運行的應用程序和底層硬件之間傳遞的消息完成的。
- 如果您想添加任何新服務(wù),您可以輕松擴展微內核,因為該服務(wù)將被添加到與內核空間完全隔離的用戶(hù)地址空間。因此無(wú)需修改內核。另一方面,擴展單片內核很困難,因為添加任何新服務(wù)都需要您更改整個(gè)內核空間。
- 從安全的角度來(lái)看,微內核更安全,就像任何正在運行的服務(wù)發(fā)生故障一樣,不會(huì )對操作系統造成影響。而另一方面,單體的安全性較低,因為如果出現任何服務(wù)故障,整個(gè)單體系統都會(huì )受到影響。
- 在設計內核時(shí),單片內核很容易設計,因為它需要的代碼更少,而另一方面,微內核的設計很復雜,因為它需要冗長(cháng)的代碼,可能會(huì )導致更多的錯誤。
什么是內核空間?
Linux系統可以將內存空間劃分為兩個(gè)區域——內核空間和用戶(hù)空間。內核空間是內核執行各種任務(wù)并向系統提供服務(wù)的獨立空間。
結論
內核是操作系統的主要部分,它使得同時(shí)運行多個(gè)進(jìn)程成為可能,并且不會(huì )因運行資源不足而導致系統崩潰。它有助于管理每個(gè)進(jìn)程的工作并幫助它們與底層硬件進(jìn)行交互。內核有兩種類(lèi)型——單片內核和微內核。如今,各種公司都在利用這兩種內核的綜合優(yōu)勢來(lái)實(shí)現系統的最佳性能和生產(chǎn)力。