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