您的位置: 首頁 >互聯(lián)網(wǎng) >

說一說Linux內(nèi)核是什么及Linux內(nèi)核有什么用

2022-08-31 12:40:40 編輯:胡彥國 來源:
導(dǎo)讀 今天來說一下關(guān)于Linux內(nèi)核是什么及Linux內(nèi)核有什么用這方面的一些訊息,不少朋友對于Linux內(nèi)核是什么及Linux內(nèi)核有什么用這方面的信息頗感...

今天來說一下關(guān)于Linux內(nèi)核是什么及Linux內(nèi)核有什么用這方面的一些訊息,不少朋友對于Linux內(nèi)核是什么及Linux內(nèi)核有什么用這方面的信息頗感興趣的。小編今天就為此整理一些相關(guān)的訊息,希望對有需要的朋友有所幫助。

Linux 是一種開源電腦操作系統(tǒng)內(nèi)核。它是一個用 C 語言寫成,符合 POSIX 標(biāo)準(zhǔn)的類 Unix 操作系統(tǒng)。

Linux Kernel

Linux 最早是由芬蘭 Linus Torvalds 為嘗試在英特爾 x86 架構(gòu)上提供自由的類 Unix 操作系統(tǒng)而開發(fā)的。該計劃開始于 1991 年,在計劃的早期有一些 Minix 黑客提供了協(xié)助,而今天全球無數(shù)程序員正在為該計劃無償提供幫助。

內(nèi)核結(jié)構(gòu)

操作系統(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)核使用三種不同的版本編號方式?! 〉谝环N方式用于 1.0 版本之前(包括 1.0)。第一個版本是 0.01,緊接著是 0.02、0.03、0.10、0.11、0.12、0.95、0.96、0.97、0.98、0.99 和之后的 1.0。

第二種方式用于 1.0 之后到 2.6,數(shù)字由三部分“A.B.C”,A 代表主版本號,B 代表次主版本號,C 代表較小的末版本號。只有在內(nèi)核發(fā)生很大變化時(歷史上只發(fā)生過兩次,1994 年的 1.0,1996 年的 2.0),A 才變化。可以通過數(shù)字 B 來判斷 Linux 是否穩(wěn)定,偶數(shù)的 B 代表穩(wěn)定版,奇數(shù)的 B 代表開發(fā)版。C 代表一些 bug 修復(fù),安全更新,新特性和驅(qū)動的次數(shù)。以版本 2.4.0 為例,2 代表主版本號,4 代表次版本號,0 代表改動較小的末版本號。在版本號中,序號的第二位為偶數(shù)的版本表明這是一個可以使用的穩(wěn)定版本,如 2.2.5,而序號的第二位為奇數(shù)的版本一般有一些新的東西加入,是個不一定很穩(wěn)定的測試版本,如 2.3.1。這樣穩(wěn)定版本來源于上一個測試版升級版本號,而一個穩(wěn)定版本發(fā)展到完全成熟后就不再發(fā)展。

第三種方式從 2004 年 2.6.0 版本開始,使用一種“time-based”的方式。3.0 版本之前,是一種“A.B.C.D”的格式。七年里,前兩個數(shù)字 A.B 即“2.6”保持不變,C 隨著新版本的發(fā)布而增加,D 代表一些 bug 修復(fù),安全更新,添加新特性和驅(qū)動的次數(shù)。3.0 版本之后是“A.B.C”格式,B 隨著新版本的發(fā)布而增加,C 代表一些 bug 修復(fù),安全更新,新特性和驅(qū)動的次數(shù)。第三種方式中不再使用偶數(shù)代表穩(wěn)定版,奇數(shù)代表開發(fā)版這樣的命名方式。舉個例子:3.7.0 代表的不是開發(fā)版,而是穩(wěn)定版!

主要子系統(tǒng)

系統(tǒng)調(diào)用接口

SCI 層提供了某些機(jī)制執(zhí)行從用戶空間到內(nèi)核的函數(shù)調(diào)用。正如前面討論的一樣,這個接口依賴于體系結(jié)構(gòu),甚至在相同的處理器家族內(nèi)也是如此。SCI 實際上是一個非常有用的函數(shù)調(diào)用多路復(fù)用和多路分解服務(wù)。在 ./linux/kernel 中您可以找到 SCI 的實現(xiàn),并在 ./linux/arch 中找到依賴于體系結(jié)構(gòu)的部分。

進(jìn)程管理

進(jìn)程管理的重點是進(jìn)程的執(zhí)行。在內(nèi)核中,這些進(jìn)程稱為線程,代表了單獨的處理器虛擬化(線程代碼、數(shù)據(jù)、堆棧和 CPU 寄存器)。在用戶空間,通常使用進(jìn)程 這個術(shù)語,不過 Linux 實現(xiàn)并沒有區(qū)分這兩個概念(進(jìn)程和線程)。內(nèi)核通過 SCI 提供了一個應(yīng)用程序編程接口(API)來創(chuàng)建一個新進(jìn)程(fork、exec 或 Portable Operating System Interface [POSⅨ] 函數(shù)),停止進(jìn)程(kill、exit),并在它們之間進(jìn)行通信和同步(signal 或者 POSⅨ 機(jī)制)。

進(jìn)程管理還包括處理活動進(jìn)程之間共享 CPU 的需求。內(nèi)核實現(xiàn)了一種新型的調(diào)度算法,不管有多少個線程在競爭 CPU,這種算法都可以在固定時間內(nèi)進(jìn)行操作。這種算法就稱為 O⑴ 調(diào)度程序,這個名字就表示它調(diào)度多個線程所使用的時間和調(diào)度一個線程所使用的時間是相同的。O⑴ 調(diào)度程序也可以支持多處理器(稱為對稱多處理器或 SMP)。您可以在 ./linux/kernel 中找到進(jìn)程管理的源代碼,在 ./linux/arch 中可以找到依賴于體系結(jié)構(gòu)的源代碼。

特性

可移植性

盡管 Linus Torvalds 的初衷不是使 Linux 成為一個可移植的操作系統(tǒng),今天的 Linux 卻是全球被最廣泛移植的操作系統(tǒng)內(nèi)核。從掌上電腦 iPad 到巨型電腦 IBM S/390,甚至于微軟出品的游戲機(jī) XBOX 都可以看到 Linux 內(nèi)核的蹤跡。Linux 也是 IBM 超級計算機(jī) Blue Gene 的操作系統(tǒng)。

Linux 可以在以下結(jié)構(gòu)上運行:

Acorn:Archimedes,A5000 和 RiscPC 系列

康柏:Alpha

惠普:PA-RISC

IA64:英特爾 Itanium 個人電腦

IBM 的 S/390 和 AS/400

英特爾 80386 及之后的兼容產(chǎn)品:80386,80486 和整個奔騰系列;AMD Athlon,Duron,Thunderbird; Cyrix 系列。對英特爾 8086,8088,80186,80188 和 80280 芯片的支持正在開發(fā)中。

Mips

摩托羅拉 68020 及以上: 新的 Amigas,一些蘋果電腦

PowerPC:所有較新的蘋果電腦

SPARC 和 UltraSPARC:太陽微系統(tǒng)的工作站

Hitachi SuperH: SEGA Dreamcast

索尼公司:PlayStation 2

微軟公司: Xbox

ARM 系列

組成

進(jìn)程管理(process management)、 1

定時器(timer)、 2

中斷管理(interrupt management)、 3

內(nèi)存管理(memory management)、 4

模塊管理(module management)、 5

虛擬文件系統(tǒng)接口(VFS layer)、 6

文件系統(tǒng)(file system)、 7

設(shè)備驅(qū)動程序(device driver)、 8

進(jìn)程間通信(inter-process communication)、9

網(wǎng)絡(luò)管理(network management)、 10

系統(tǒng)啟動(system init)等操作系統(tǒng)功能的實現(xiàn)。11

發(fā)行版

Linux 內(nèi)核的發(fā)展過程中,我們還不得不提一下各種 Linux 發(fā)行版的作用,因為正是它們推動

了 Linux 的應(yīng)用,從而也讓更多的人開始關(guān)注 Linux。一些組織或廠家,將 Linux 系統(tǒng)的內(nèi)核與外圍實用程序(Utilities)軟件和文檔包裝起來,并提供一些系統(tǒng)安裝界面和系統(tǒng)配置、設(shè)定與管理工具,就構(gòu)成了一種發(fā)行版本(distribution),Linux 的發(fā)行版本其實就是 Linux 核心再加上外圍的實用程序組成的一個大軟件包而已。相對于 Linux 操作系統(tǒng)內(nèi)核版本,發(fā)行版本的版本號隨發(fā)布者的不同而不同,與 Linux 系統(tǒng)內(nèi)核的版本號是相對獨立的。因此把 SUSE、RedHat、Ubuntu、Slackware 等直接說成是 Linux 是不確切的,它們是 Linux 的發(fā)行版本,更確切地說,應(yīng)該叫做“以 Linux 為核心的操作系統(tǒng)軟件包”。根據(jù) GPL 準(zhǔn)則,這些發(fā)行版本雖然都源自一個內(nèi)核,并且都有自己各自的貢獻(xiàn),但都沒有自己的版權(quán)。Linux 的各個發(fā)行版本(distribution),都是使用 Linus 主導(dǎo)開發(fā)并發(fā)布的同一個 Linux 內(nèi)核,因此在內(nèi)核層不存在什么兼容性問題。每個版本都不一樣的感覺,只是在發(fā)行版本的最外層才有所體現(xiàn),而絕不是 Linux 本身特別是內(nèi)核不統(tǒng)一或是不兼容。

90 年代初期 Linux 開始出現(xiàn)的時候,僅僅是以源代碼形式出現(xiàn),用戶需要在其他操作系統(tǒng)下進(jìn)行編譯才能使用。后來出現(xiàn)了一些正式版本。最流行的幾個正式版本有:SUSE、RedHat、Fedora、Debian、Ubuntu、CentOS、Gentoo,等等。用戶可根據(jù)自己的經(jīng)驗和喜好選用合適的 Linux 發(fā)行版。

原先 Linus Torvalds 將 Linux 置于一個禁止任何商業(yè)行為的條例之下,但之后改用 GNU 通用公共許可證第二版。該協(xié)議允許任何人對軟件進(jìn)行修改或發(fā)行,包括商業(yè)行為,只要其遵守該協(xié)議,所有基于 Linux 的軟件也必須以該協(xié)議的形式發(fā)表,并提供源代碼。

Linus Torvalds 曾經(jīng)公開聲稱將 Linux 置于 GNU 通用公共許可證之下是他一生中所做的“最好的決定”。

常量定義

初始定義

宏 phys 定義了你的機(jī)器上的地址轉(zhuǎn)換 __virt_to_phys()。這個宏用于把虛擬地址轉(zhuǎn)換為一個物理地址。通常情況下:

phys = virt – PAGE_OFFSET PHYS_OFFSET

以上就是關(guān)于Linux內(nèi)核是什么及Linux內(nèi)核有什么用這方面的一些信息了 小編整理的這些訊息希望對童鞋們有所幫助


免責(zé)聲明:本文由用戶上傳,如有侵權(quán)請聯(lián)系刪除!

最新文章

精彩推薦

圖文推薦

點擊排行

2016-2022 All Rights Reserved.平安財經(jīng)網(wǎng).復(fù)制必究 聯(lián)系QQ280 715 8082   備案號:閩ICP備19027007號-6

本站除標(biāo)明“本站原創(chuàng)”外所有信息均轉(zhuǎn)載自互聯(lián)網(wǎng) 版權(quán)歸原作者所有。