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

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

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

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

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

Linux Kernel

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

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

操作系統(tǒng)是一個(gè)用來(lái)和硬件打交道并為用戶程序提供一個(gè)有限服務(wù)集的低級(jí)支撐軟件。一個(gè)計(jì)算機(jī)系統(tǒng)是一個(gè)硬件和軟件的共生體,它們互相依賴,不可分割。計(jì)算機(jī)的硬件,含有外圍設(shè)備、處理器、內(nèi)存、硬盤和其他的電子設(shè)備組成計(jì)算機(jī)的發(fā)動(dòng)機(jī)。但是沒(méi)有軟件來(lái)操作和控制它,自身是不能工作的。完成這個(gè)控制工作的軟件就稱為操作系統(tǒng),在 Linux 的術(shù)語(yǔ)中被稱為“內(nèi)核”,也可以稱為“核心”。Linux 內(nèi)核的主要模塊(或組件)分以下幾個(gè)部分:存儲(chǔ)管理、CPU 和進(jìn)程管理、文件系統(tǒng)、設(shè)備管理和驅(qū)動(dòng)、網(wǎng)絡(luò)通信,以及系統(tǒng)的初始化(引導(dǎo))、系統(tǒng)調(diào)用等。

版本號(hào)

Linux 內(nèi)核使用三種不同的版本編號(hào)方式。  第一種方式用于 1.0 版本之前(包括 1.0)。第一個(gè)版本是 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 代表主版本號(hào),B 代表次主版本號(hào),C 代表較小的末版本號(hào)。只有在內(nèi)核發(fā)生很大變化時(shí)(歷史上只發(fā)生過(guò)兩次,1994 年的 1.0,1996 年的 2.0),A 才變化??梢酝ㄟ^(guò)數(shù)字 B 來(lái)判斷 Linux 是否穩(wěn)定,偶數(shù)的 B 代表穩(wěn)定版,奇數(shù)的 B 代表開(kāi)發(fā)版。C 代表一些 bug 修復(fù),安全更新,新特性和驅(qū)動(dòng)的次數(shù)。以版本 2.4.0 為例,2 代表主版本號(hào),4 代表次版本號(hào),0 代表改動(dòng)較小的末版本號(hào)。在版本號(hào)中,序號(hào)的第二位為偶數(shù)的版本表明這是一個(gè)可以使用的穩(wěn)定版本,如 2.2.5,而序號(hào)的第二位為奇數(shù)的版本一般有一些新的東西加入,是個(gè)不一定很穩(wěn)定的測(cè)試版本,如 2.3.1。這樣穩(wěn)定版本來(lái)源于上一個(gè)測(cè)試版升級(jí)版本號(hào),而一個(gè)穩(wěn)定版本發(fā)展到完全成熟后就不再發(fā)展。

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

主要子系統(tǒng)

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

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

進(jìn)程管理

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

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

特性

可移植性

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

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

Acorn:Archimedes,A5000 和 RiscPC 系列

康柏:Alpha

惠普:PA-RISC

IA64:英特爾 Itanium 個(gè)人電腦

IBM 的 S/390 和 AS/400

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

Mips

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

PowerPC:所有較新的蘋果電腦

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

Hitachi SuperH: SEGA Dreamcast

索尼公司:PlayStation 2

微軟公司: Xbox

ARM 系列

組成

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

定時(shí)器(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ū)動(dòng)程序(device driver)、 8

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

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

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

發(fā)行版

Linux 內(nèi)核的發(fā)展過(guò)程中,我們還不得不提一下各種 Linux 發(fā)行版的作用,因?yàn)檎撬鼈兺苿?dòng)

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

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

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

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

常量定義

初始定義

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

phys = virt – PAGE_OFFSET PHYS_OFFSET

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


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

最新文章

精彩推薦

圖文推薦

點(diǎn)擊排行

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

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