本文發(fā)表于Linux Format magazine雜志,作者從技術(shù)深度上解釋了Linux Kernel是如何工作的。相信對(duì)Linux開(kāi)發(fā)者來(lái)說(shuō)有不小的幫助。
牛津字典中對(duì)"kernel"一詞的定義是:"較軟的、通常是一個(gè)堅(jiān)果可食用的部分。"當(dāng)然還有第二種定義:"某個(gè)東西核心或者最重要的部分。"對(duì)Linux來(lái)說(shuō),它的Kernel無(wú)疑屬于第二種解釋。讓我們來(lái)看看這個(gè)重要的東西是如何工作的,先從一點(diǎn)理論說(shuō)起。
廣義地來(lái)說(shuō)kernel就是一個(gè)軟件,它在硬件和運(yùn)行在計(jì)算機(jī)上的應(yīng)用程序之間提供了一個(gè)層。嚴(yán)格點(diǎn)從計(jì)算機(jī)科學(xué)的角度來(lái)說(shuō),Linux中的Kernel指的是Linus Torvalds在90年代初期寫(xiě)的那點(diǎn)代碼。
??? 所有的你在Linux各版本中看到的其他東西--Bash shell、KDE窗口管理器、web瀏覽器、X服務(wù)器、Tux Racer以及所有的其他,都不過(guò)是運(yùn)行在Linux上的應(yīng)用而已,而不是操作系統(tǒng)自身的一部分。為了給大家一個(gè)更加直觀的感覺(jué),我來(lái)舉個(gè)例子,比如RHEL5的安裝大概要占據(jù)2.5GB的硬盤空間(具體多大當(dāng)然視你的選擇安裝來(lái)定),在這其中,kernel以及它的各個(gè)模塊組件,只有47MB,所占比例約為2%。
在kernel內(nèi)部
那么kernel到底是如何工作的呢?如下面的圖表。Kernel通過(guò)許多的進(jìn)入端口也就是我們從技術(shù)角度所說(shuō)的系統(tǒng)調(diào)用,來(lái)使得運(yùn)行在它上面的應(yīng)用程序可用。Kernel使用的系統(tǒng)調(diào)用比如"讀"和"寫(xiě)"來(lái)提供你硬件的抽象(abstraction)。
#FormatImgID_0#
從程序員的視角來(lái)看,這些看起來(lái)只是普通的功能調(diào)用,然而實(shí)際上系統(tǒng)調(diào)用在處理器的操作模式上,從用戶空間到Kernel空間有一個(gè)明顯的切換。同時(shí),系統(tǒng)調(diào)用提供了一個(gè)"Linux虛擬機(jī)",可以被認(rèn)為是對(duì)硬件的抽象。
Kernel提供的更明顯的抽象之一是文件系統(tǒng)。舉例來(lái)說(shuō),這里有一段短的程序是用C寫(xiě)的,它打開(kāi)了一個(gè)文件并將內(nèi)容拷貝到標(biāo)準(zhǔn)的輸出:
#include
int main()
{
??? int fd, count; char buf[1000];
??? fd=open("mydata", O_RDONLY);
??? count = read(fd, buf, 1000);
??? write(1, buf, count);
??? close(fd);
}
??? 在這里,你可以看到四個(gè)系統(tǒng)調(diào)用的例子:打開(kāi)、讀、寫(xiě)和關(guān)閉。不談這段程序語(yǔ)法的細(xì)節(jié),重點(diǎn)是:通過(guò)這些系統(tǒng)調(diào)用Linux Kernel提供了一個(gè)文件的"錯(cuò)覺(jué)",而實(shí)際上它不過(guò)是一堆數(shù)據(jù)有了個(gè)名字,這樣一來(lái)你就不必去與硬件底層的堆棧、分區(qū)、頭和指針、分區(qū)等交涉了,而是直接以例子中的方式與硬件"交流",這也就是我們所說(shuō)的抽象(abstraction),將底層的東西以更易懂的方式表達(dá)出來(lái)。
臺(tái)前幕后
系統(tǒng)文件是Kernel提供的較為明顯的一種抽象。還有一些特性不是這么的明顯,比如進(jìn)程調(diào)度。任何一個(gè)時(shí)間,都可能有好幾個(gè)進(jìn)程或者程序等待著運(yùn)行。Kernel的時(shí)間調(diào)度給每個(gè)進(jìn)程分配CPU時(shí)間,所以就一段時(shí)間內(nèi)來(lái)說(shuō),我們會(huì)有種錯(cuò)覺(jué):電腦同一時(shí)間運(yùn)行好幾個(gè)程序。這是另外一個(gè)C程序:
#include
main()
{
? if (fork()) {
??? write(1, "Parent\n", 7);
??? wait(0);
??? exit(0);
? }
? else {
??? write(1, "Child\n", 6);
??? exit(0);
? }
}
????
在這個(gè)程序中創(chuàng)建了一個(gè)新進(jìn)程,而原來(lái)的進(jìn)程(父進(jìn)程)和新進(jìn)程(子進(jìn)程)都編寫(xiě)了標(biāo)準(zhǔn)輸出然后結(jié)束。注意系統(tǒng)調(diào)用fork(), exit() 以及 wait()執(zhí)行程序的創(chuàng)建、結(jié)束和各自同步。這是進(jìn)程管理和調(diào)度中最典型的簡(jiǎn)單調(diào)用。
Kernel還有一個(gè)更加不易見(jiàn)到的功能,連程序員都不易察覺(jué),那就是存儲(chǔ)管理。每個(gè)程序運(yùn)行得都好像它有個(gè)自己的地址空間來(lái)調(diào)用一樣,實(shí)際上它跟其他進(jìn)程一樣共享計(jì)算機(jī)的物理存儲(chǔ),如果系統(tǒng)運(yùn)行的存儲(chǔ)過(guò)低,它的地址空間甚至?xí)淮疟P的交互區(qū)暫時(shí)寄用。存儲(chǔ)管理的另外一個(gè)方面是防止一個(gè)進(jìn)程訪問(wèn)其他進(jìn)程的地址空間--對(duì)于多進(jìn)程操作系統(tǒng)來(lái)說(shuō)這是很必要的一個(gè)防范措施。
Kernel同樣還配置網(wǎng)絡(luò)鏈接協(xié)議比如IP、TCP和UDP等,它們?cè)诰W(wǎng)絡(luò)上提供機(jī)器對(duì)機(jī)器(machine-to-machine)和進(jìn)程對(duì)進(jìn)程(process-to-process)的通信。這里又會(huì)造成一種假象,即TCP在兩個(gè)進(jìn)程之間提供了一個(gè)固定連接--就好像連接兩個(gè)電話的銅線一樣,實(shí)際中卻并沒(méi)有固定的連接,特殊的引用協(xié)議比如FTP、DNS和HTTP是通過(guò)用戶級(jí)程序來(lái)實(shí)施的,而并非Kernel的一部分。
Linux(像之前的Unix)在安全方面口碑很好,這是因?yàn)镵ernel跟蹤記錄了每個(gè)運(yùn)行進(jìn)程的user ID和group ID,每次當(dāng)一個(gè)應(yīng)用企圖訪問(wèn)資源(比如打開(kāi)一個(gè)文件來(lái)寫(xiě)入)的時(shí)候,Kernel就會(huì)核對(duì)文件上的訪問(wèn)許可然后做出允許/禁止的命令。這種訪問(wèn)控制模式最終對(duì)整個(gè)Linux系統(tǒng)的安全作用很大。
Kernel還提供了一大套模塊的集合,其功能包括如何處理與硬件設(shè)備交流的諸多細(xì)節(jié)、如何從磁盤讀取一個(gè)分區(qū)、如果從網(wǎng)絡(luò)接口卡獲取數(shù)據(jù)包等。有時(shí)我們稱這些為設(shè)備驅(qū)動(dòng)。
解密:Linux內(nèi)核是如何工作的
本文導(dǎo)航
- 第 1 頁(yè):解密:Linux內(nèi)核是如何工作的
- 第 2 頁(yè):模塊化的Kernel
- 第 3 頁(yè):性能調(diào)優(yōu)
- LINUX內(nèi)核(21376)
相關(guān)推薦
基于Linux內(nèi)核的透明代理配置方案
本內(nèi)容提供了基于Linux內(nèi)核的透明代理配置方案,先解釋為什么要配置透明代理,如何利用Linux內(nèi)核來(lái)實(shí)現(xiàn)
2011-11-03 16:47:52
769

深入linux內(nèi)核架構(gòu) Linux內(nèi)核架構(gòu)分析解讀
,嵌入式Linux往往會(huì)進(jìn)行大量的裁剪,將不需要的應(yīng)用裁剪掉。 O/S 服務(wù)層: O/S服務(wù)通常被認(rèn)為是操作系統(tǒng)的一部分(窗口系統(tǒng),命令外殼等);此外,該子系統(tǒng)還包含內(nèi)核的編程接口(編譯器工具和庫(kù)d) Linux內(nèi)核層:這是本文關(guān)注的主要子系統(tǒng),內(nèi)核抽象
2020-05-09 11:52:21
3373


一文詳解Linux內(nèi)核源碼組織結(jié)構(gòu)
概要:本文內(nèi)容包含Linux源碼樹(shù)結(jié)構(gòu)分析、Linux Makefile分析、Kconfig文件分析、Linux內(nèi)核配置選項(xiàng)分析。這些知識(shí)是為了理解內(nèi)核文件的組織形式,為具體移植內(nèi)核做知識(shí)準(zhǔn)備。
2022-05-10 19:28:40
5277

Linux內(nèi)核中常用的C語(yǔ)言技巧有哪些呢?
Linux內(nèi)核采用的是GCC編譯器,GCC編譯器除了支持ANSI C,還支持GNU C。在Linux內(nèi)核中,許多地方都使用了GNU C語(yǔ)言的擴(kuò)展特性
2023-03-20 09:04:56
738

如何編譯Linux內(nèi)核rpm包
進(jìn)入github官網(wǎng),搜索linux,使用git下載最新版本,或者其它版本的內(nèi)核代碼。
2023-06-07 16:24:25
739


Linux內(nèi)核內(nèi)存泄漏怎么辦
在Linux內(nèi)核開(kāi)發(fā)中,Kmemleak是一種用于檢測(cè)內(nèi)核中內(nèi)存泄漏的工具。
2023-07-04 11:04:03
553

Linux內(nèi)核的作用
Linux操作系統(tǒng)是當(dāng)今世界上最為廣泛使用的開(kāi)源操作系統(tǒng)之一,內(nèi)核則是一個(gè)操作系統(tǒng)的核心和靈魂所在。對(duì)于一名Linux驅(qū)動(dòng)開(kāi)發(fā)者來(lái)說(shuō),了解Linux內(nèi)核的運(yùn)行機(jī)制和Linux內(nèi)核提供的一些關(guān)鍵功能(如虛擬內(nèi)存管理、進(jìn)程管理、文件系統(tǒng)、網(wǎng)絡(luò)協(xié)議棧等)都是我們?nèi)粘?b class="flag-6" style="color: red">工作和學(xué)習(xí)的重點(diǎn)。
2023-07-06 11:46:41
1046


Linux內(nèi)核地址映射模型與Linux內(nèi)核高端內(nèi)存詳解
Linux 操作系統(tǒng)和驅(qū)動(dòng)程序運(yùn)行在內(nèi)核空間,應(yīng)用程序運(yùn)行在用戶空間,兩者不能簡(jiǎn)單地使用指針傳遞數(shù)據(jù),因?yàn)?b class="flag-6" style="color: red">Linux使用的虛擬內(nèi)存機(jī)制,用戶空間的數(shù)據(jù)可能被換出,當(dāng)內(nèi)核空間使用用戶空間指針時(shí),對(duì)應(yīng)
2018-05-08 10:33:19
3299


Linux內(nèi)核架構(gòu)和工作原理詳解
簡(jiǎn)介作用是將應(yīng)用層序的請(qǐng)求傳遞給硬件,并充當(dāng)?shù)讓域?qū)動(dòng)程序,對(duì)系統(tǒng)中的各種設(shè)備和組件進(jìn)行尋址。目前支持模塊的動(dòng)態(tài)裝卸(裁剪)。Linux內(nèi)核就是基于這個(gè)策略實(shí)現(xiàn)的。Linux進(jìn)程1.采用層次結(jié)構(gòu),每個(gè)
2021-07-22 08:47:35
Linux內(nèi)核源碼目錄結(jié)構(gòu)
Linux體系結(jié)構(gòu)Linux內(nèi)核結(jié)構(gòu)Linux內(nèi)核源碼目錄結(jié)構(gòu)
2020-12-30 07:22:13
Linux內(nèi)核自解壓過(guò)程
Linux內(nèi)核的啟動(dòng)流程。有興趣的用戶可以參考其他書(shū)籍或資料進(jìn)行深入了解。 嵌入式linux內(nèi)核的啟動(dòng)全過(guò)程主要分為三個(gè)階段。第一階段為內(nèi)核自解壓過(guò)程,第二階段主要工作是設(shè)置ARM處理器工作模式、使能MMU、設(shè)置一級(jí)頁(yè)表等,而第三階段則主要為C代碼,包括內(nèi)核初始化的全部工作。
2020-12-29 07:35:26
什么是Linux內(nèi)核
01前言本文主要講解什么是Linux內(nèi)核,以及通過(guò)多張圖片展示Linux內(nèi)核的作用與功能,以便于讀者能快速理解什...
2021-07-16 07:20:36
芯片解密不工作,為什么?
最近解密了一個(gè)芯片,解密出來(lái)的bin文件可以燒錄到MCU里面去,并把MCU 貼回母版中,母版不能工作。嘗試用燒錄器燒錄,需講bin文件轉(zhuǎn)換成S19 再到sap,在S19文件轉(zhuǎn)sap文件的時(shí)候,提示起始地址錯(cuò)誤。哪位大師能幫忙解釋一下?
2020-11-02 16:25:59
Linux的內(nèi)核教程
本章學(xué)習(xí)目標(biāo)掌握LINUX內(nèi)核版本的含義理解并掌握進(jìn)程的概念掌握管道的概念及實(shí)現(xiàn)了解內(nèi)核的數(shù)據(jù)結(jié)構(gòu)了解LINUX內(nèi)核的算法掌握LINUX內(nèi)核升級(jí)的方法
2009-04-10 16:59:19
0

Linux內(nèi)核解讀入門
Linux內(nèi)核解讀入門關(guān)鍵詞:Linux, 內(nèi)核,源代碼一.核心源程序的文件組織: 1. Linux核心源程序通常都安裝在/usr/src/linux下,而且它有一個(gè)非常簡(jiǎn)單的編號(hào)約定:任何偶數(shù)的核
2010-01-16 14:40:10
103

Linux內(nèi)核源代碼
Linux內(nèi)核源代碼本章講述在L i n u x內(nèi)核源碼中,應(yīng)該從何處開(kāi)始查找特定的內(nèi)核函數(shù)。本書(shū)并不要求讀者具有C語(yǔ)言編程能力,也不要求讀者有一份可參閱的L i n u x
2010-02-09 15:24:49
36

Linux 內(nèi)核源代碼
Linux 內(nèi)核源代碼
實(shí)模式setup階段setup用于體系結(jié)構(gòu)相關(guān)的硬件初始化工作,在arch目錄中的各個(gè)系統(tǒng)結(jié)構(gòu)的平臺(tái)相關(guān)都有類似功能的代碼。在32位的x86平臺(tái)中,s
2010-02-10 13:45:50
28

Linux發(fā)明者推穩(wěn)定升級(jí)版2.6.13 Linux內(nèi)核
Linux內(nèi)核的下一個(gè)穩(wěn)定的升級(jí)版本已經(jīng)發(fā)布了。Linux發(fā)明者李納斯·托沃茲(Linus Torvalds)用電子郵件向Linux內(nèi)核郵件列表發(fā)布了升級(jí)版本的Linux內(nèi)核。
2006-03-13 13:07:54
824

采用Linux內(nèi)核的C64x系列(TI)
采用Linux內(nèi)核的C64x系列(TI)
德州儀器 (TI) 推出為其 C64x 系列數(shù)字信號(hào)處理器 (DSP) 與多內(nèi)核片上系統(tǒng) (SoC) 提供 Linux 內(nèi)核支持,以
2010-05-11 17:29:33
1260

LINUX內(nèi)核完全注釋
本書(shū)對(duì)LINUX早期操作系統(tǒng)內(nèi)核(V0.11)全部代碼文件進(jìn)行了詳細(xì)全面的注釋和說(shuō)明,旨在使讀者能夠在盡量短的時(shí)間內(nèi)對(duì)LINUX的工作機(jī)理獲得全面而深刻的理解,為進(jìn)一步學(xué)習(xí)和研究LINUX系
2011-04-05 20:53:41
84

#硬聲創(chuàng)作季 #Linux 學(xué)Linux-3.07.6 Uboot啟動(dòng)Linux內(nèi)核測(cè)試-2
LinuxLINUX內(nèi)核
水管工發(fā)布于 2022-11-10 19:27:29



#硬聲創(chuàng)作季 #Linux 學(xué)Linux-3.10 Linux內(nèi)核源碼目錄分析-1
LinuxLINUX內(nèi)核
水管工發(fā)布于 2022-11-10 19:34:28



#硬聲創(chuàng)作季 #Linux 學(xué)Linux-3.17 Linux內(nèi)核移植(NAND版本)-1
LinuxLINUX內(nèi)核
水管工發(fā)布于 2022-11-10 19:54:28



#硬聲創(chuàng)作季 #Linux 學(xué)Linux-4.13.1 Linux內(nèi)核中斷框架簡(jiǎn)介-1
LinuxLINUX內(nèi)核
水管工發(fā)布于 2022-11-10 20:49:45



#硬聲創(chuàng)作季 #Linux 學(xué)Linux-4.13.1 Linux內(nèi)核中斷框架簡(jiǎn)介-2
LinuxLINUX內(nèi)核
水管工發(fā)布于 2022-11-10 20:50:13



《深入Linux內(nèi)核架構(gòu)》 莫爾勒著
電子發(fā)燒友為您提供了免費(fèi)下載,《深入Linux內(nèi)核架構(gòu)》一書(shū)討論了Linux內(nèi)核的概念、結(jié)構(gòu)和實(shí)現(xiàn)。內(nèi)核對(duì)一致和非一致內(nèi)存訪問(wèn)系統(tǒng)使用相同的數(shù)據(jù)結(jié)構(gòu)。 Linux 操作系統(tǒng)的源代碼復(fù)雜
2011-07-10 11:24:17
0

Linux內(nèi)核0.11完全講解
本書(shū)對(duì) Linux 早期操作系統(tǒng)內(nèi)核(v0.11)全部代碼文件進(jìn)行了詳細(xì)全面的注釋和說(shuō)明,旨在使讀者能夠在盡量短的時(shí)間 內(nèi)對(duì)Linux 的工作機(jī)理獲得全面而深刻的理解,為進(jìn)一步學(xué)習(xí)和研究Lin
2011-12-01 15:48:07
437

Linux內(nèi)核完全注釋_趙炯
本書(shū)對(duì)Linux早期操作系統(tǒng)內(nèi)核(v0.11)全部代碼文件進(jìn)行了詳細(xì)全面的注釋和說(shuō)明,旨在使讀者能夠在盡量短的時(shí)間內(nèi)對(duì)Linux的工作機(jī)理獲得全面而深刻的理解,為進(jìn)一步學(xué)習(xí)和研究Linux系統(tǒng)
2011-12-12 15:06:02
0

基于Linux內(nèi)核輸入子系統(tǒng)的驅(qū)動(dòng)研究
Linux因其完全開(kāi)放的特性和穩(wěn)定優(yōu)良的性能深受歡迎,當(dāng)推出了內(nèi)核輸入子系統(tǒng)后,更方便了嵌入式領(lǐng)域的驅(qū)動(dòng)開(kāi)放。介紹了Linux的設(shè)備驅(qū)動(dòng)基礎(chǔ),詳細(xì)闡述了基于Linux內(nèi)核輸入子系統(tǒng)下
2012-09-12 16:38:52
23

linux內(nèi)核啟動(dòng)內(nèi)核解壓過(guò)程分析
linux啟動(dòng)時(shí)內(nèi)核解壓過(guò)程分析,一份不錯(cuò)的文檔,深入了解內(nèi)核必備
2016-03-09 13:39:39
1

基于Linux 2.6內(nèi)核Makefile分析
由于Linux的獨(dú)特優(yōu)勢(shì),使越來(lái)越多的企業(yè)和科研機(jī)構(gòu)把目光轉(zhuǎn)向Linux的開(kāi)發(fā)和研究上。目前Linux最新的穩(wěn)定內(nèi)核版本為2.6.17,但是當(dāng)今絕大部分對(duì)于Linux Makefile的介紹文章都是
2017-09-18 19:09:09
0

《Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解》第4章、Linux內(nèi)核模塊
《Linux設(shè)備驅(qū)動(dòng)開(kāi)發(fā)詳解》第4章、Linux內(nèi)核模塊
2017-10-27 14:15:51
0

Linux內(nèi)核配置系統(tǒng)詳解
隨著 Linux 操作系統(tǒng)的廣泛應(yīng)用,特別是 Linux 在嵌入式領(lǐng)域的發(fā)展,越來(lái)越多的人開(kāi)始投身到 Linux 內(nèi)核級(jí)的開(kāi)發(fā)中。面對(duì)日益龐大的 Linux 內(nèi)核源代碼,開(kāi)發(fā)者在完成自己的內(nèi)核代碼
2017-11-01 15:45:54
3

REDIce-Linux--靈活的實(shí)時(shí)Linux內(nèi)核
REDSonic, Inc. REDSonic的RedIce-Linux是一個(gè)實(shí)時(shí)Linux內(nèi)核,設(shè)計(jì)來(lái)支持以任務(wù)和時(shí)間為臨界的應(yīng)用,為你的系統(tǒng)提供質(zhì)量服務(wù)。RedIce-Linux包括高精度的微秒
2017-11-08 10:24:03
12

linux內(nèi)核啟動(dòng)流程
Linux的啟動(dòng)代碼真的挺大,從匯編到C,從Makefile到LDS文件,需要理解的東西很多。畢竟Linux內(nèi)核是由很多人,花費(fèi)了巨大的時(shí)間和精力寫(xiě)出來(lái)的。而且直到現(xiàn)在,這個(gè)世界上仍然有成千上萬(wàn)的程序員在不斷完善Linux內(nèi)核的代碼。
2017-11-14 16:19:46
4159


Linux內(nèi)核提權(quán)攻擊研究
提權(quán)攻擊是針對(duì)Linux系統(tǒng)的一種重要攻擊手段。根據(jù)提權(quán)攻擊所利用的漏洞類型,一般可將其分為應(yīng)用層提權(quán)攻擊和內(nèi)核提權(quán)攻擊?,F(xiàn)有的防御技術(shù)已經(jīng)能夠防御基本的應(yīng)用層提權(quán)攻擊,但是并不能完全防御內(nèi)核
2017-11-24 11:46:03
0

Linux內(nèi)核與Android的關(guān)系
Android雖然建立在Linux內(nèi)核之上,但是他對(duì)內(nèi)核進(jìn)行了一些擴(kuò)展,增加了一些驅(qū)動(dòng)。比如Binder,loger等等驅(qū)動(dòng)??梢阅肁ndroid內(nèi)核代碼和其Baseline版本進(jìn)行對(duì)比??梢钥吹紸ndroid對(duì)Linux內(nèi)核的所有擴(kuò)展。
2018-09-09 09:10:00
4369

需要了解linux內(nèi)核空間和用戶空間的基本原理
linux驅(qū)動(dòng)程序一般工作在內(nèi)核空間,但也可以工作在用戶空間。下面我們將詳細(xì)解析,什么是內(nèi)核空間,什么是用戶空間,以及如何判斷他們
2019-05-06 16:13:00
607

如何編譯Linux內(nèi)核
內(nèi)核,是一個(gè)操作系統(tǒng)的核心。它負(fù)責(zé)管理系統(tǒng)的進(jìn)程、內(nèi)存、設(shè)備驅(qū)動(dòng)程序、文件和網(wǎng)絡(luò)系統(tǒng),決定著系統(tǒng)的性能和穩(wěn)定性。Linux作為一個(gè)自由軟件,在廣大愛(ài)好者的支持下,內(nèi)核版本
2019-04-02 14:46:50
455

米爾科技深入理解LINUX內(nèi)核簡(jiǎn)介
為了透徹理解Linux的工作機(jī)理,以及為何它在各種系統(tǒng)上能順暢運(yùn)行,你需要深入到內(nèi)核的心臟。
2019-11-25 09:34:06
1520


谷歌Android設(shè)備內(nèi)核引入主線Linux內(nèi)核難嗎?
Android是基于Linux內(nèi)核的操作系統(tǒng),但是,運(yùn)行在Android設(shè)備上的內(nèi)核其實(shí)與Google選擇的LTS版本Linux內(nèi)核有很大不同。
2019-11-22 10:41:42
2793


Linux內(nèi)核創(chuàng)建者回應(yīng)用戶,不會(huì)推薦使用ZFS On Linux
Linux內(nèi)核創(chuàng)建者Linus Torvalds最近回應(yīng) Linux內(nèi)核調(diào)度器存在問(wèn)題的文章引發(fā)了大家的關(guān)注,在同一個(gè)帖子里,他還回復(fù)了一名用戶抱怨Linux內(nèi)核最近破壞了內(nèi)核源碼樹(shù)外ZFS模塊的評(píng)論。
2020-01-10 10:32:43
2363

linux內(nèi)核是什么_linux內(nèi)核學(xué)習(xí)路線
Linux內(nèi)核是一個(gè)操作系統(tǒng)(OS)內(nèi)核,本質(zhì)上定義為類Unix。它用于不同的操作系統(tǒng),主要是以不同的Linux發(fā)行版的形式。Linux內(nèi)核是第一個(gè)真正完整且突出的免費(fèi)和開(kāi)源軟件示例。Linux 內(nèi)核是第一個(gè)真正完整且突出的免費(fèi)和開(kāi)源軟件示例,促使其廣泛采用并得到了數(shù)千名開(kāi)發(fā)人員的貢獻(xiàn)。
2020-09-16 15:49:50
2323

linux內(nèi)核參數(shù)設(shè)置_linux內(nèi)核的功能有哪些
本文主要闡述了linux內(nèi)核參數(shù)設(shè)置及linux內(nèi)核的功能。
2020-09-17 14:40:49
1190


最硬核的Linux內(nèi)核文章
來(lái)源 :頭條號(hào)@Linux學(xué)習(xí)教程,冰凌塊兒 01 前言 本文主要講解什么是Linux內(nèi)核,以及通過(guò)多張圖片展示Linux內(nèi)核的作用與功能,以便于讀者能快速理解什么是Linux內(nèi)核,能看懂Linux
2020-10-19 17:46:08
1860


快速理解什么是Linux內(nèi)核以及Linux內(nèi)核的內(nèi)容
01 前言 本文主要講解什么是Linux內(nèi)核,以及通過(guò)多張圖片展示Linux內(nèi)核的作用與功能,以便于讀者能快速理解什么是Linux內(nèi)核,能看懂Linux內(nèi)核。 擁有超過(guò)1300萬(wàn)行的代碼,Linux
2020-10-21 12:02:53
3874


如何才能編譯Linux的內(nèi)核
內(nèi)核,是一個(gè)操作系統(tǒng)的核心。它負(fù)責(zé)管理系統(tǒng)的進(jìn)程、內(nèi)存、設(shè)備驅(qū)動(dòng)程序、文件和網(wǎng)絡(luò)系統(tǒng),決定著系統(tǒng)的性能和穩(wěn)定性。Linux 作為一個(gè)自由軟件,在廣大愛(ài)好者的支持下,內(nèi)核版本不斷更新。新的內(nèi)核修訂
2020-11-04 18:04:10
8

嵌入式LINUX系統(tǒng)內(nèi)核和內(nèi)核模塊調(diào)試教程
本文檔的主要內(nèi)容詳細(xì)介紹的是嵌入式LINUX系統(tǒng)內(nèi)核和內(nèi)核模塊調(diào)試教程。
2020-11-06 17:32:58
21

Linux內(nèi)核反向映射基礎(chǔ)知識(shí)詳解
作者簡(jiǎn)介 Cheetah,曾為U-boot社區(qū)和Linux內(nèi)核社區(qū)提交過(guò)若干補(bǔ)丁,主要從事Linux相關(guān)系統(tǒng)軟件開(kāi)發(fā)工作,負(fù)責(zé)Soc芯片BringUp及系統(tǒng)軟件開(kāi)發(fā),喜歡閱讀內(nèi)核源代碼,在不斷的學(xué)習(xí)
2020-11-26 14:42:19
1860

Linux內(nèi)核學(xué)習(xí)的環(huán)境搭建和內(nèi)核編譯
基礎(chǔ)知識(shí)及基本shell命令;現(xiàn)代操作系統(tǒng)的基本概念;C語(yǔ)言和gcc基本使用。 在開(kāi)始我們的linux內(nèi)核學(xué)習(xí)之前。首先需要搭建我們的工作學(xué)習(xí)環(huán)境,即安裝linux系統(tǒng)。關(guān)于linux系統(tǒng)構(gòu)建本身的學(xué)問(wèn)已經(jīng)復(fù)雜到可以成為一個(gè)獨(dú)立的學(xué)科了,畢竟這不是我們學(xué)習(xí)的內(nèi)容,所以我選擇最簡(jiǎn)單的方法
2021-01-02 18:01:00
1868

Linux 5.10.5內(nèi)核正式發(fā)布
1月6日,Linux基金會(huì)宣布,Linux 5.10.5內(nèi)核正式發(fā)布,所有5.10內(nèi)核系列的用戶都必須升級(jí)。
2021-01-07 14:36:57
2342

Linux內(nèi)核的編譯與運(yùn)行
本文檔的主要內(nèi)容詳細(xì)介紹的是Linux內(nèi)核的編譯與運(yùn)行免費(fèi)下載。
2021-03-25 13:48:34
10

淺論Linux 內(nèi)核函數(shù)調(diào)用關(guān)系的驗(yàn)證方法
作為最流行的開(kāi)源操作系統(tǒng),Linux在各行各業(yè)得到了廣泛的應(yīng)用。因此了解Linux 內(nèi)核的架構(gòu)及工作機(jī)制就顯得非常重要
2021-04-02 11:30:12
1851


嵌入式LINUX系統(tǒng)內(nèi)核和內(nèi)核模塊調(diào)試
嵌入式LINUX系統(tǒng)內(nèi)核和內(nèi)核模塊調(diào)試(嵌入式開(kāi)發(fā)和硬件開(kāi)發(fā))-嵌入式LINUX系統(tǒng)內(nèi)核和內(nèi)核模塊調(diào)試? ? ? ? ? ? ? ? ?
2021-07-30 13:55:21
9

Linux內(nèi)核文件Cache機(jī)制
Linux內(nèi)核文件Cache機(jī)制(開(kāi)關(guān)電源技術(shù)與設(shè)計(jì) 第二版)-Linux內(nèi)核文件Cache機(jī)制? ? ? ? ? ? ? ??
2021-08-31 16:34:54
4

嵌入式Linux的內(nèi)核編譯
實(shí)驗(yàn)環(huán)境VMware Workstation PlayerUbuntu16.04kernel-3.2.tar.bz2Linux內(nèi)核編譯在ubuntu上編譯嵌入式Linux內(nèi)核,需要大家提前安裝好交叉
2021-11-01 17:07:20
16

Linux內(nèi)核模塊簡(jiǎn)介
Linux系統(tǒng)內(nèi)核按體積和功能的不同,可以分為兩種:微內(nèi)核與單內(nèi)核。 微內(nèi)核,體積小,包含的功能也少,只負(fù)責(zé)進(jìn)行進(jìn)程調(diào)度、進(jìn)程通信、底層中斷等工作,而把傳統(tǒng)操作系統(tǒng)內(nèi)核的其他功能 模塊,如設(shè)備
2022-01-17 09:57:18
1

Linux內(nèi)核架構(gòu)和工作原理
作用是將應(yīng)用層序的請(qǐng)求傳遞給硬件,并充當(dāng)?shù)讓域?qū)動(dòng)程序,對(duì)系統(tǒng)中的各種設(shè)備和組件進(jìn)行尋址。目前支持模塊的動(dòng)態(tài)裝卸(裁剪)。Linux內(nèi)核就是基于這個(gè)策略實(shí)現(xiàn)的。Linux進(jìn)程1.采用層次結(jié)構(gòu),每個(gè)進(jìn)程
2022-05-07 14:05:06
284


學(xué)習(xí)linux內(nèi)核的一些建議
學(xué)習(xí)linux內(nèi)核,這個(gè)可不像學(xué)一門語(yǔ)言,c或者java一個(gè)月或者3月你就能精通掌握。學(xué)習(xí)linux內(nèi)核是需要一步一步循序漸進(jìn),掌握正確的linux內(nèi)核學(xué)習(xí)路線對(duì)學(xué)習(xí)至關(guān)重要,本篇文章就來(lái)分享學(xué)習(xí)linux內(nèi)核的一些建議吧。
2022-05-07 15:20:27
447


【Linux內(nèi)核】從小小的宏定義窺探Linux內(nèi)核的精妙設(shè)計(jì)
【Linux內(nèi)核】從小小的宏定義窺探Linux內(nèi)核的精妙設(shè)計(jì)
2022-08-31 13:30:06
1602

Linux內(nèi)核中整合對(duì) Rust 的支持
Linux Plumbers Conference 2022 大會(huì)上舉行了一個(gè) Rust 相關(guān)的小型會(huì)議,該會(huì)議討論的大方向大致為:正在進(jìn)行的使 Rust 成為一種合適的系統(tǒng)編程語(yǔ)言的工作,以及在主線 Linux 內(nèi)核中整合對(duì) Rust 的支持。
2022-09-19 11:06:57
948

Linux內(nèi)核定時(shí)器
在Linux內(nèi)核中,也可以通過(guò)定時(shí)器來(lái)完成定時(shí)功能。但和單片機(jī)不同的是,Linux內(nèi)核定時(shí)器是一種基于未來(lái)時(shí)間點(diǎn)的計(jì)時(shí)方式,它以當(dāng)前時(shí)刻為啟動(dòng)的時(shí)間點(diǎn),以未來(lái)的某一時(shí)刻為終止點(diǎn),類似于我們的鬧鐘。
2022-09-22 08:56:00
1382


Linux內(nèi)核漏洞精準(zhǔn)檢測(cè)
Linux內(nèi)核由七個(gè)部分構(gòu)成,每個(gè)不同的部分又有多個(gè)內(nèi)核模塊組成。
2022-10-13 15:44:45
625

Linux 6.1發(fā)布,微軟貢獻(xiàn)Linux內(nèi)核代碼
此外,公告中并沒(méi)有提及 Linux 6.1 是否是 LTS 版本。按照 Linux 內(nèi)核維護(hù)者 Greg Kroah-Hartman 的說(shuō)法,Linux 內(nèi)核的 LTS 通常會(huì)選取每年的最后一個(gè)內(nèi)核
2022-12-14 09:54:59
829

Linux內(nèi)核結(jié)構(gòu)介紹
通常情況下,Linux內(nèi)核的結(jié)構(gòu)被認(rèn)為包含以下11個(gè)主要層次。
2023-04-14 11:59:23
754

Linux內(nèi)核移植教程
半導(dǎo)體廠商會(huì)從 Linux內(nèi)核官網(wǎng)下載某個(gè)版本,將其移植到自己的 CPU上,測(cè)試成功后就會(huì)將其開(kāi)放給該半導(dǎo)體廠商的 CPU開(kāi)發(fā)者。開(kāi)發(fā)者下載其提供的 Linux內(nèi)核,然后將其移植到自己的產(chǎn)品上。
2023-04-19 11:20:32
701


Linux內(nèi)核中常用的C語(yǔ)言技巧有哪些
Linux內(nèi)核采用的是GCC編譯器,GCC編譯器除了支持ANSI C,還支持GNU C。在Linux內(nèi)核中,許多地方都使用了GNU C語(yǔ)言的擴(kuò)展特性,如typeof、__attribute__、__aligned、__builtin_等,這些都是GNU C語(yǔ)言的特性。
2023-05-12 14:45:24
380

什么是Linux內(nèi)核 Linux內(nèi)核體系結(jié)構(gòu)
如果Windows已經(jīng)安裝了所有可用的驅(qū)動(dòng)程序,而您只需要打開(kāi)所需的驅(qū)動(dòng)程序怎么辦?這本質(zhì)上就是內(nèi)核模塊為Linux所做的。內(nèi)核模塊,也稱為可加載內(nèi)核模塊(LKM),對(duì)于保持內(nèi)核在不消耗所有可用內(nèi)存的情況下與所有硬件一起工作是必不可少的。
2023-06-01 09:59:48
846


萬(wàn)千設(shè)備,linux內(nèi)核如何知道?
linux內(nèi)核設(shè)備的注冊(cè)由device_register()函數(shù)完成,這個(gè)函數(shù)是linux設(shè)備驅(qū)動(dòng)模型的核心函數(shù)
2023-07-12 08:52:15
478


linux內(nèi)核源代碼詳解
在安裝好的Linux系統(tǒng)中,內(nèi)核的源代碼位于/ust/src/linux.如果是從GNU網(wǎng)站下載的Linux內(nèi)核的tar文件,則展開(kāi)以后在一個(gè)叫linux的子目錄中。以后本書(shū)中談到源文件的路徑時(shí),就總是從linux這個(gè)節(jié)點(diǎn)開(kāi)始。
2023-09-06 17:01:23
2

Linux內(nèi)核如何使用結(jié)構(gòu)體和函數(shù)指針?
我將結(jié)合具體的Linux內(nèi)核驅(qū)動(dòng)框架代碼來(lái)展示Linux內(nèi)核如何使用結(jié)構(gòu)體和函數(shù)指針。
2023-09-06 14:17:55
516


如何優(yōu)化Linux內(nèi)核UDP收包效率低
很多人都在詬病Linux內(nèi)核協(xié)議棧收包效率低,不管他們是真的懂還是一點(diǎn)都不懂只是聽(tīng)別人說(shuō)的,反正就是在一味地懟Linux內(nèi)核協(xié)議棧,他們的武器貌似只有DPDK。 但是,Linux內(nèi)核協(xié)議棧收包效率
2023-11-10 10:51:55
239


Linux內(nèi)核UDP收包為什么效率低
現(xiàn)在很多人都在詬病Linux內(nèi)核協(xié)議棧收包效率低,不管他們是真的懂還是一點(diǎn)都不懂只是聽(tīng)別人說(shuō)的,反正就是在一味地懟Linux內(nèi)核協(xié)議棧,他們的武器貌似只有DPDK。 但是,即便Linux內(nèi)核協(xié)議
2023-11-13 10:38:08
216


獲取Linux內(nèi)核源碼的方法
(ELF1/ELF1S開(kāi)發(fā)板及顯示屏)Linux內(nèi)核是操作系統(tǒng)中最核心的部分,它負(fù)責(zé)管理計(jì)算機(jī)硬件資源,并提供對(duì)應(yīng)用程序和其他系統(tǒng)組件的訪問(wèn)接口,控制著計(jì)算機(jī)的內(nèi)存、處理器、設(shè)備驅(qū)動(dòng)程序和文
2023-12-13 09:49:33
270


C++在Linux內(nèi)核開(kāi)發(fā)中從爭(zhēng)議到成熟
Linux 內(nèi)核郵件列表中一篇已有六年歷史的老帖近日再次引發(fā)激烈討論 —— 主題是建議將 Linux 內(nèi)核的開(kāi)發(fā)語(yǔ)言從 C 轉(zhuǎn)換為更現(xiàn)代的 C++。
2024-01-31 14:11:35
199


評(píng)論