Linux內核是Linux系統(tǒng)的核心,對于Linux內核,可能計算機專業(yè)的朋友更為熟悉。如果你不玩Linux系統(tǒng),了解Linux內核的必要性也就沒那么大了。為了增進大家對Linux內核的認識,本文將對Linux內核進行詳細闡述。如果你對Linux內核具有興趣,不妨繼續(xù)往下閱讀哦。
Linux是一種開源電腦操作系統(tǒng)內核。它是一個用C語言寫成,符合POSIX標準的類Unix操作系統(tǒng)。
Linux最早是由芬蘭 Linus Torvalds為嘗試在英特爾x86架構上提供自由的類Unix操作系統(tǒng)而開發(fā)的。該計劃開始于1991年,在計劃的早期有一些 Minix 黑客提供了協(xié)助,而如今全球無數(shù)程序員正在為該計劃無償提供幫助。
操作系統(tǒng)是一個用來和硬件打交道并為用戶程序提供一個有限服務集的低級支撐軟件。一個計算機系統(tǒng)是一個硬件和軟件的共生體,它們互相依賴,不可分割。計算機的硬件,含有外圍設備、處理器、內存、硬盤和其他的電子設備組成計算機的發(fā)動機。但是沒有軟件來操作和控制它,自身是不能工作的。完成這個控制工作的軟件就稱為操作系統(tǒng),在Linux的術語中被稱為“內核”,也可以稱為“核心”。Linux內核的主要模塊(或組件)分以下幾個部分:存儲管理、CPU和進程管理、文件系統(tǒng)、設備管理和驅動、網(wǎng)絡通信,以及系統(tǒng)的初始化(引導)、系統(tǒng)調用等。
Linux 內核實現(xiàn)了很多重要的體系結構屬性。在或高或低的層次上,內核被劃分為多個子系統(tǒng)。Linux 也可以看作是一個整體,因為它會將所有這些基本服務都集成到內核中。這與微內核的體系結構不同,后者會提供一些基本的服務,例如通信、I/O、內存和進程管理,更具體的服務都是插入到微內核層中的。
隨著時間的流逝,Linux 內核在內存和 CPU 使用方面具有較高的效率,并且非常穩(wěn)定。但是對于 Linux 來說,最為有趣的是在這種大小和復雜性的前提下,依然具有良好的可移植性。Linux 編譯后可在大量處理器和具有不同體系結構約束和需求的平臺上運行。一個例子是 Linux 可以在一個具有內存管理單元(MMU)的處理器上運行,也可以在那些不提供MMU的處理器上運行。Linux 內核的uClinux移植提供了對非 MMU 的支持。
因為Linux內核是單片的,所以它比其他類型的內核占用空間最大,復雜度也最高。這是一個設計特性,在Linux早期引起了相當多的爭論,并且仍然帶有一些與單內核固有的相同的設計缺陷。
為了解決這些缺陷,Linux內核開發(fā)人員所做的一件事就是使內核模塊可以在運行時加載和卸載,這意味著您可以動態(tài)地添加或刪除內核的特性。這不僅可以向內核添加硬件功能,還可以包括運行服務器進程的模塊,比如低級別虛擬化,但也可以替換整個內核,而不需要在某些情況下重啟計算機。
想象一下,如果您可以升級到Windows服務包,而不需要重新啟動……
如果Windows已經(jīng)安裝了所有可用的驅動程序,而您只需要打開所需的驅動程序怎么辦?這本質上就是內核模塊為Linux所做的。內核模塊,也稱為可加載內核模塊(LKM),對于保持內核在不消耗所有可用內存的情況下與所有硬件一起工作是必不可少的。
模塊通常向基本內核添加設備、文件系統(tǒng)和系統(tǒng)調用等功能。lkm的文件擴展名是.ko,通常存儲在/lib/modules目錄中。由于模塊的特性,您可以通過在啟動時使用menuconfig命令將模塊設置為load或not load,或者通過編輯/boot/config文件,或者使用modprobe命令動態(tài)地加載和卸載模塊,輕松定制內核。
第三方和封閉源碼模塊在一些發(fā)行版中是可用的,比如Ubuntu,默認情況下可能無法安裝,因為這些模塊的源代碼是不可用的。該軟件的開發(fā)人員(即nVidia、ATI等)不提供源代碼,而是構建自己的模塊并編譯所需的.ko文件以便分發(fā)。雖然這些模塊像beer一樣是免費的,但它們不像speech那樣是免費的,因此不包括在一些發(fā)行版中,因為維護人員認為它通過提供非免費軟件“污染”了內核。
內核并不神奇,但對于任何正常運行的計算機來說,它都是必不可少的。Linux內核不同于OS X和Windows,因為它包含內核級別的驅動程序,并使許多東西“開箱即用”。希望您能對軟件和硬件如何協(xié)同工作以及啟動計算機所需的文件有更多的了解。
以上便是此次小編帶來的Linux內核相關內容,通過本文,希望大家對Linux內核具備一定的認知。如果你喜歡本文,不妨持續(xù)關注我們網(wǎng)站哦,小編將于后期帶來更多精彩內容。最后,十分感謝大家的閱讀,have a nice day!