本文發(fā)表于Linux Format magazine雜志,作者從技術(shù)深度上解釋了Linux Kernel是如何工作的。相信對Linux開發(fā)者來說有不小的幫助。
牛津字典中對"kernel"一詞的定義是:"較軟的、通常是一個堅果可食用的部分。"當(dāng)然還有第二種定義:"某個東西核心或者最重要的部分。"對Linux來說,它的Kernel無疑屬于第二種解釋。讓我們來看看這個重要的東西是如何工作的,先從一點理論說起。
廣義地來說kernel就是一個軟件,它在硬件和運行在計算機(jī)上的應(yīng)用程序之間提供了一個層。嚴(yán)格點從計算機(jī)科學(xué)的角度來說,Linux中的Kernel指的是Linus Torvalds在90年代初期寫的那點代碼。
??? 所有的你在Linux各版本中看到的其他東西--Bash shell、KDE窗口管理器、web瀏覽器、X服務(wù)器、Tux Racer以及所有的其他,都不過是運行在Linux上的應(yīng)用而已,而不是操作系統(tǒng)自身的一部分。為了給大家一個更加直觀的感覺,我來舉個例子,比如RHEL5的安裝大概要占據(jù)2.5GB的硬盤空間(具體多大當(dāng)然視你的選擇安裝來定),在這其中,kernel以及它的各個模塊組件,只有47MB,所占比例約為2%。
在kernel內(nèi)部
那么kernel到底是如何工作的呢?如下面的圖表。Kernel通過許多的進(jìn)入端口也就是我們從技術(shù)角度所說的系統(tǒng)調(diào)用,來使得運行在它上面的應(yīng)用程序可用。Kernel使用的系統(tǒng)調(diào)用比如"讀"和"寫"來提供你硬件的抽象(abstraction)。
#FormatImgID_0#
從程序員的視角來看,這些看起來只是普通的功能調(diào)用,然而實際上系統(tǒng)調(diào)用在處理器的操作模式上,從用戶空間到Kernel空間有一個明顯的切換。同時,系統(tǒng)調(diào)用提供了一個"Linux虛擬機(jī)",可以被認(rèn)為是對硬件的抽象。
Kernel提供的更明顯的抽象之一是文件系統(tǒng)。舉例來說,這里有一段短的程序是用C寫的,它打開了一個文件并將內(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);
}
??? 在這里,你可以看到四個系統(tǒng)調(diào)用的例子:打開、讀、寫和關(guān)閉。不談這段程序語法的細(xì)節(jié),重點是:通過這些系統(tǒng)調(diào)用Linux Kernel提供了一個文件的"錯覺",而實際上它不過是一堆數(shù)據(jù)有了個名字,這樣一來你就不必去與硬件底層的堆棧、分區(qū)、頭和指針、分區(qū)等交涉了,而是直接以例子中的方式與硬件"交流",這也就是我們所說的抽象(abstraction),將底層的東西以更易懂的方式表達(dá)出來。
臺前幕后
系統(tǒng)文件是Kernel提供的較為明顯的一種抽象。還有一些特性不是這么的明顯,比如進(jìn)程調(diào)度。任何一個時間,都可能有好幾個進(jìn)程或者程序等待著運行。Kernel的時間調(diào)度給每個進(jìn)程分配CPU時間,所以就一段時間內(nèi)來說,我們會有種錯覺:電腦同一時間運行好幾個程序。這是另外一個C程序:
#include
main()
{
? if (fork()) {
??? write(1, "Parent\n", 7);
??? wait(0);
??? exit(0);
? }
? else {
??? write(1, "Child\n", 6);
??? exit(0);
? }
}
????
在這個程序中創(chuàng)建了一個新進(jìn)程,而原來的進(jìn)程(父進(jìn)程)和新進(jìn)程(子進(jìn)程)都編寫了標(biāo)準(zhǔn)輸出然后結(jié)束。注意系統(tǒng)調(diào)用fork(), exit() 以及 wait()執(zhí)行程序的創(chuàng)建、結(jié)束和各自同步。這是進(jìn)程管理和調(diào)度中最典型的簡單調(diào)用。
Kernel還有一個更加不易見到的功能,連程序員都不易察覺,那就是存儲管理。每個程序運行得都好像它有個自己的地址空間來調(diào)用一樣,實際上它跟其他進(jìn)程一樣共享計算機(jī)的物理存儲,如果系統(tǒng)運行的存儲過低,它的地址空間甚至?xí)淮疟P的交互區(qū)暫時寄用。存儲管理的另外一個方面是防止一個進(jìn)程訪問其他進(jìn)程的地址空間--對于多進(jìn)程操作系統(tǒng)來說這是很必要的一個防范措施。
Kernel同樣還配置網(wǎng)絡(luò)鏈接協(xié)議比如IP、TCP和UDP等,它們在網(wǎng)絡(luò)上提供機(jī)器對機(jī)器(machine-to-machine)和進(jìn)程對進(jìn)程(process-to-process)的通信。這里又會造成一種假象,即TCP在兩個進(jìn)程之間提供了一個固定連接--就好像連接兩個電話的銅線一樣,實際中卻并沒有固定的連接,特殊的引用協(xié)議比如FTP、DNS和HTTP是通過用戶級程序來實施的,而并非Kernel的一部分。
Linux(像之前的Unix)在安全方面口碑很好,這是因為Kernel跟蹤記錄了每個運行進(jìn)程的user ID和group ID,每次當(dāng)一個應(yīng)用企圖訪問資源(比如打開一個文件來寫入)的時候,Kernel就會核對文件上的訪問許可然后做出允許/禁止的命令。這種訪問控制模式最終對整個Linux系統(tǒng)的安全作用很大。
Kernel還提供了一大套模塊的集合,其功能包括如何處理與硬件設(shè)備交流的諸多細(xì)節(jié)、如何從磁盤讀取一個分區(qū)、如果從網(wǎng)絡(luò)接口卡獲取數(shù)據(jù)包等。有時我們稱這些為設(shè)備驅(qū)動。
解密:Linux內(nèi)核是如何工作的
本文導(dǎo)航
- 第 1 頁:解密:Linux內(nèi)核是如何工作的
- 第 2 頁:模塊化的Kernel
- 第 3 頁:性能調(diào)優(yōu)
- LINUX內(nèi)核(21376)
相關(guān)推薦
基于Linux內(nèi)核的透明代理配置方案
本內(nèi)容提供了基于Linux內(nèi)核的透明代理配置方案,先解釋為什么要配置透明代理,如何利用Linux內(nèi)核來實現(xiàn)
2011-11-03 16:47:52769
深入linux內(nèi)核架構(gòu) Linux內(nèi)核架構(gòu)分析解讀
,嵌入式Linux往往會進(jìn)行大量的裁剪,將不需要的應(yīng)用裁剪掉。 O/S 服務(wù)層: O/S服務(wù)通常被認(rèn)為是操作系統(tǒng)的一部分(窗口系統(tǒng),命令外殼等);此外,該子系統(tǒng)還包含內(nèi)核的編程接口(編譯器工具和庫d) Linux內(nèi)核層:這是本文關(guān)注的主要子系統(tǒng),內(nèi)核抽象
2020-05-09 11:52:213373
一文詳解Linux內(nèi)核源碼組織結(jié)構(gòu)
概要:本文內(nèi)容包含Linux源碼樹結(jié)構(gòu)分析、Linux Makefile分析、Kconfig文件分析、Linux內(nèi)核配置選項分析。這些知識是為了理解內(nèi)核文件的組織形式,為具體移植內(nèi)核做知識準(zhǔn)備。
2022-05-10 19:28:405277
Linux內(nèi)核中常用的C語言技巧有哪些呢?
Linux內(nèi)核采用的是GCC編譯器,GCC編譯器除了支持ANSI C,還支持GNU C。在Linux內(nèi)核中,許多地方都使用了GNU C語言的擴(kuò)展特性
2023-03-20 09:04:56738
如何編譯Linux內(nèi)核rpm包
進(jìn)入github官網(wǎng),搜索linux,使用git下載最新版本,或者其它版本的內(nèi)核代碼。
2023-06-07 16:24:25739
Linux內(nèi)核內(nèi)存泄漏怎么辦
在Linux內(nèi)核開發(fā)中,Kmemleak是一種用于檢測內(nèi)核中內(nèi)存泄漏的工具。
2023-07-04 11:04:03553
Linux內(nèi)核的作用
Linux操作系統(tǒng)是當(dāng)今世界上最為廣泛使用的開源操作系統(tǒng)之一,內(nèi)核則是一個操作系統(tǒng)的核心和靈魂所在。對于一名Linux驅(qū)動開發(fā)者來說,了解Linux內(nèi)核的運行機(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í)的重點。
2023-07-06 11:46:411046
Linux內(nèi)核地址映射模型與Linux內(nèi)核高端內(nèi)存詳解
Linux 操作系統(tǒng)和驅(qū)動程序運行在內(nèi)核空間,應(yīng)用程序運行在用戶空間,兩者不能簡單地使用指針傳遞數(shù)據(jù),因為Linux使用的虛擬內(nèi)存機(jī)制,用戶空間的數(shù)據(jù)可能被換出,當(dāng)內(nèi)核空間使用用戶空間指針時,對應(yīng)
2018-05-08 10:33:193299
Linux內(nèi)核架構(gòu)和工作原理詳解
簡介作用是將應(yīng)用層序的請求傳遞給硬件,并充當(dāng)?shù)讓域?qū)動程序,對系統(tǒng)中的各種設(shè)備和組件進(jìn)行尋址。目前支持模塊的動態(tài)裝卸(裁剪)。Linux內(nèi)核就是基于這個策略實現(xiàn)的。Linux進(jìn)程1.采用層次結(jié)構(gòu),每個
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)核自解壓過程
Linux內(nèi)核的啟動流程。有興趣的用戶可以參考其他書籍或資料進(jìn)行深入了解。 嵌入式linux內(nèi)核的啟動全過程主要分為三個階段。第一階段為內(nèi)核自解壓過程,第二階段主要工作是設(shè)置ARM處理器工作模式、使能MMU、設(shè)置一級頁表等,而第三階段則主要為C代碼,包括內(nèi)核初始化的全部工作。
2020-12-29 07:35:26
什么是Linux內(nèi)核
01前言本文主要講解什么是Linux內(nèi)核,以及通過多張圖片展示Linux內(nèi)核的作用與功能,以便于讀者能快速理解什...
2021-07-16 07:20:36
芯片解密不工作,為什么?
最近解密了一個芯片,解密出來的bin文件可以燒錄到MCU里面去,并把MCU 貼回母版中,母版不能工作。嘗試用燒錄器燒錄,需講bin文件轉(zhuǎn)換成S19 再到sap,在S19文件轉(zhuǎn)sap文件的時候,提示起始地址錯誤。哪位大師能幫忙解釋一下?
2020-11-02 16:25:59
Linux的內(nèi)核教程
本章學(xué)習(xí)目標(biāo)掌握LINUX內(nèi)核版本的含義理解并掌握進(jìn)程的概念掌握管道的概念及實現(xiàn)了解內(nèi)核的數(shù)據(jù)結(jié)構(gòu)了解LINUX內(nèi)核的算法掌握LINUX內(nèi)核升級的方法
2009-04-10 16:59:190
Linux內(nèi)核解讀入門
Linux內(nèi)核解讀入門關(guān)鍵詞:Linux, 內(nèi)核,源代碼一.核心源程序的文件組織: 1. Linux核心源程序通常都安裝在/usr/src/linux下,而且它有一個非常簡單的編號約定:任何偶數(shù)的核
2010-01-16 14:40:10103
Linux內(nèi)核源代碼
Linux內(nèi)核源代碼本章講述在L i n u x內(nèi)核源碼中,應(yīng)該從何處開始查找特定的內(nèi)核函數(shù)。本書并不要求讀者具有C語言編程能力,也不要求讀者有一份可參閱的L i n u x
2010-02-09 15:24:4936
Linux 內(nèi)核源代碼
Linux 內(nèi)核源代碼
實模式setup階段setup用于體系結(jié)構(gòu)相關(guān)的硬件初始化工作,在arch目錄中的各個系統(tǒng)結(jié)構(gòu)的平臺相關(guān)都有類似功能的代碼。在32位的x86平臺中,s
2010-02-10 13:45:5028
Linux發(fā)明者推穩(wěn)定升級版2.6.13 Linux內(nèi)核
Linux內(nèi)核的下一個穩(wěn)定的升級版本已經(jīng)發(fā)布了。Linux發(fā)明者李納斯·托沃茲(Linus Torvalds)用電子郵件向Linux內(nèi)核郵件列表發(fā)布了升級版本的Linux內(nèi)核。
2006-03-13 13:07:54824
采用Linux內(nèi)核的C64x系列(TI)
采用Linux內(nèi)核的C64x系列(TI)
德州儀器 (TI) 推出為其 C64x 系列數(shù)字信號處理器 (DSP) 與多內(nèi)核片上系統(tǒng) (SoC) 提供 Linux 內(nèi)核支持,以
2010-05-11 17:29:331260
LINUX內(nèi)核完全注釋
本書對LINUX早期操作系統(tǒng)內(nèi)核(V0.11)全部代碼文件進(jìn)行了詳細(xì)全面的注釋和說明,旨在使讀者能夠在盡量短的時間內(nèi)對LINUX的工作機(jī)理獲得全面而深刻的理解,為進(jìn)一步學(xué)習(xí)和研究LINUX系
2011-04-05 20:53:4184
#硬聲創(chuàng)作季 #Linux 學(xué)Linux-3.07.6 Uboot啟動Linux內(nèi)核測試-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)核中斷框架簡介-1
LinuxLINUX內(nèi)核
水管工發(fā)布于 2022-11-10 20:49:45
#硬聲創(chuàng)作季 #Linux 學(xué)Linux-4.13.1 Linux內(nèi)核中斷框架簡介-2
LinuxLINUX內(nèi)核
水管工發(fā)布于 2022-11-10 20:50:13
《深入Linux內(nèi)核架構(gòu)》 莫爾勒著
電子發(fā)燒友為您提供了免費下載,《深入Linux內(nèi)核架構(gòu)》一書討論了Linux內(nèi)核的概念、結(jié)構(gòu)和實現(xiàn)。內(nèi)核對一致和非一致內(nèi)存訪問系統(tǒng)使用相同的數(shù)據(jù)結(jié)構(gòu)。 Linux 操作系統(tǒng)的源代碼復(fù)雜
2011-07-10 11:24:170
Linux內(nèi)核0.11完全講解
本書對 Linux 早期操作系統(tǒng)內(nèi)核(v0.11)全部代碼文件進(jìn)行了詳細(xì)全面的注釋和說明,旨在使讀者能夠在盡量短的時間 內(nèi)對Linux 的工作機(jī)理獲得全面而深刻的理解,為進(jìn)一步學(xué)習(xí)和研究Lin
2011-12-01 15:48:07437
Linux內(nèi)核完全注釋_趙炯
本書對Linux早期操作系統(tǒng)內(nèi)核(v0.11)全部代碼文件進(jìn)行了詳細(xì)全面的注釋和說明,旨在使讀者能夠在盡量短的時間內(nèi)對Linux的工作機(jī)理獲得全面而深刻的理解,為進(jìn)一步學(xué)習(xí)和研究Linux系統(tǒng)
2011-12-12 15:06:020
基于Linux內(nèi)核輸入子系統(tǒng)的驅(qū)動研究
Linux因其完全開放的特性和穩(wěn)定優(yōu)良的性能深受歡迎,當(dāng)推出了內(nèi)核輸入子系統(tǒng)后,更方便了嵌入式領(lǐng)域的驅(qū)動開放。介紹了Linux的設(shè)備驅(qū)動基礎(chǔ),詳細(xì)闡述了基于Linux內(nèi)核輸入子系統(tǒng)下
2012-09-12 16:38:5223
基于Linux 2.6內(nèi)核Makefile分析
由于Linux的獨特優(yōu)勢,使越來越多的企業(yè)和科研機(jī)構(gòu)把目光轉(zhuǎn)向Linux的開發(fā)和研究上。目前Linux最新的穩(wěn)定內(nèi)核版本為2.6.17,但是當(dāng)今絕大部分對于Linux Makefile的介紹文章都是
2017-09-18 19:09:090
《Linux設(shè)備驅(qū)動開發(fā)詳解》第4章、Linux內(nèi)核模塊
《Linux設(shè)備驅(qū)動開發(fā)詳解》第4章、Linux內(nèi)核模塊
2017-10-27 14:15:510
Linux內(nèi)核配置系統(tǒng)詳解
隨著 Linux 操作系統(tǒng)的廣泛應(yīng)用,特別是 Linux 在嵌入式領(lǐng)域的發(fā)展,越來越多的人開始投身到 Linux 內(nèi)核級的開發(fā)中。面對日益龐大的 Linux 內(nèi)核源代碼,開發(fā)者在完成自己的內(nèi)核代碼
2017-11-01 15:45:543
REDIce-Linux--靈活的實時Linux內(nèi)核
REDSonic, Inc. REDSonic的RedIce-Linux是一個實時Linux內(nèi)核,設(shè)計來支持以任務(wù)和時間為臨界的應(yīng)用,為你的系統(tǒng)提供質(zhì)量服務(wù)。RedIce-Linux包括高精度的微秒
2017-11-08 10:24:0312
linux內(nèi)核啟動流程
Linux的啟動代碼真的挺大,從匯編到C,從Makefile到LDS文件,需要理解的東西很多。畢竟Linux內(nèi)核是由很多人,花費了巨大的時間和精力寫出來的。而且直到現(xiàn)在,這個世界上仍然有成千上萬的程序員在不斷完善Linux內(nèi)核的代碼。
2017-11-14 16:19:464159
Linux內(nèi)核提權(quán)攻擊研究
提權(quán)攻擊是針對Linux系統(tǒng)的一種重要攻擊手段。根據(jù)提權(quán)攻擊所利用的漏洞類型,一般可將其分為應(yīng)用層提權(quán)攻擊和內(nèi)核提權(quán)攻擊。現(xiàn)有的防御技術(shù)已經(jīng)能夠防御基本的應(yīng)用層提權(quán)攻擊,但是并不能完全防御內(nèi)核
2017-11-24 11:46:030
Linux內(nèi)核與Android的關(guān)系
Android雖然建立在Linux內(nèi)核之上,但是他對內(nèi)核進(jìn)行了一些擴(kuò)展,增加了一些驅(qū)動。比如Binder,loger等等驅(qū)動。可以拿Android內(nèi)核代碼和其Baseline版本進(jìn)行對比。可以看到Android對Linux內(nèi)核的所有擴(kuò)展。
2018-09-09 09:10:004369
需要了解linux內(nèi)核空間和用戶空間的基本原理
linux驅(qū)動程序一般工作在內(nèi)核空間,但也可以工作在用戶空間。下面我們將詳細(xì)解析,什么是內(nèi)核空間,什么是用戶空間,以及如何判斷他們
2019-05-06 16:13:00607
如何編譯Linux內(nèi)核
內(nèi)核,是一個操作系統(tǒng)的核心。它負(fù)責(zé)管理系統(tǒng)的進(jìn)程、內(nèi)存、設(shè)備驅(qū)動程序、文件和網(wǎng)絡(luò)系統(tǒng),決定著系統(tǒng)的性能和穩(wěn)定性。Linux作為一個自由軟件,在廣大愛好者的支持下,內(nèi)核版本
2019-04-02 14:46:50455
米爾科技深入理解LINUX內(nèi)核簡介
為了透徹理解Linux的工作機(jī)理,以及為何它在各種系統(tǒng)上能順暢運行,你需要深入到內(nèi)核的心臟。
2019-11-25 09:34:061520
谷歌Android設(shè)備內(nèi)核引入主線Linux內(nèi)核難嗎?
Android是基于Linux內(nèi)核的操作系統(tǒng),但是,運行在Android設(shè)備上的內(nèi)核其實與Google選擇的LTS版本Linux內(nèi)核有很大不同。
2019-11-22 10:41:422793
Linux內(nèi)核創(chuàng)建者回應(yīng)用戶,不會推薦使用ZFS On Linux
Linux內(nèi)核創(chuàng)建者Linus Torvalds最近回應(yīng) Linux內(nèi)核調(diào)度器存在問題的文章引發(fā)了大家的關(guān)注,在同一個帖子里,他還回復(fù)了一名用戶抱怨Linux內(nèi)核最近破壞了內(nèi)核源碼樹外ZFS模塊的評論。
2020-01-10 10:32:432363
linux內(nèi)核是什么_linux內(nèi)核學(xué)習(xí)路線
Linux內(nèi)核是一個操作系統(tǒng)(OS)內(nèi)核,本質(zhì)上定義為類Unix。它用于不同的操作系統(tǒng),主要是以不同的Linux發(fā)行版的形式。Linux內(nèi)核是第一個真正完整且突出的免費和開源軟件示例。Linux 內(nèi)核是第一個真正完整且突出的免費和開源軟件示例,促使其廣泛采用并得到了數(shù)千名開發(fā)人員的貢獻(xiàn)。
2020-09-16 15:49:502323
linux內(nèi)核參數(shù)設(shè)置_linux內(nèi)核的功能有哪些
本文主要闡述了linux內(nèi)核參數(shù)設(shè)置及linux內(nèi)核的功能。
2020-09-17 14:40:491190
最硬核的Linux內(nèi)核文章
來源 :頭條號@Linux學(xué)習(xí)教程,冰凌塊兒 01 前言 本文主要講解什么是Linux內(nèi)核,以及通過多張圖片展示Linux內(nèi)核的作用與功能,以便于讀者能快速理解什么是Linux內(nèi)核,能看懂Linux
2020-10-19 17:46:081860
快速理解什么是Linux內(nèi)核以及Linux內(nèi)核的內(nèi)容
01 前言 本文主要講解什么是Linux內(nèi)核,以及通過多張圖片展示Linux內(nèi)核的作用與功能,以便于讀者能快速理解什么是Linux內(nèi)核,能看懂Linux內(nèi)核。 擁有超過1300萬行的代碼,Linux
2020-10-21 12:02:533874
如何才能編譯Linux的內(nèi)核
內(nèi)核,是一個操作系統(tǒng)的核心。它負(fù)責(zé)管理系統(tǒng)的進(jìn)程、內(nèi)存、設(shè)備驅(qū)動程序、文件和網(wǎng)絡(luò)系統(tǒng),決定著系統(tǒng)的性能和穩(wěn)定性。Linux 作為一個自由軟件,在廣大愛好者的支持下,內(nèi)核版本不斷更新。新的內(nèi)核修訂
2020-11-04 18:04:108
嵌入式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:5821
Linux內(nèi)核反向映射基礎(chǔ)知識詳解
作者簡介 Cheetah,曾為U-boot社區(qū)和Linux內(nèi)核社區(qū)提交過若干補(bǔ)丁,主要從事Linux相關(guān)系統(tǒng)軟件開發(fā)工作,負(fù)責(zé)Soc芯片BringUp及系統(tǒng)軟件開發(fā),喜歡閱讀內(nèi)核源代碼,在不斷的學(xué)習(xí)
2020-11-26 14:42:191860
Linux內(nèi)核學(xué)習(xí)的環(huán)境搭建和內(nèi)核編譯
基礎(chǔ)知識及基本shell命令;現(xiàn)代操作系統(tǒng)的基本概念;C語言和gcc基本使用。 在開始我們的linux內(nèi)核學(xué)習(xí)之前。首先需要搭建我們的工作學(xué)習(xí)環(huán)境,即安裝linux系統(tǒng)。關(guān)于linux系統(tǒng)構(gòu)建本身的學(xué)問已經(jīng)復(fù)雜到可以成為一個獨立的學(xué)科了,畢竟這不是我們學(xué)習(xí)的內(nèi)容,所以我選擇最簡單的方法
2021-01-02 18:01:001868
Linux 5.10.5內(nèi)核正式發(fā)布
1月6日,Linux基金會宣布,Linux 5.10.5內(nèi)核正式發(fā)布,所有5.10內(nèi)核系列的用戶都必須升級。
2021-01-07 14:36:572342
淺論Linux 內(nèi)核函數(shù)調(diào)用關(guān)系的驗證方法
作為最流行的開源操作系統(tǒng),Linux在各行各業(yè)得到了廣泛的應(yīng)用。因此了解Linux 內(nèi)核的架構(gòu)及工作機(jī)制就顯得非常重要
2021-04-02 11:30:121851
嵌入式LINUX系統(tǒng)內(nèi)核和內(nèi)核模塊調(diào)試
嵌入式LINUX系統(tǒng)內(nèi)核和內(nèi)核模塊調(diào)試(嵌入式開發(fā)和硬件開發(fā))-嵌入式LINUX系統(tǒng)內(nèi)核和內(nèi)核模塊調(diào)試? ? ? ? ? ? ? ? ?
2021-07-30 13:55:219
Linux內(nèi)核文件Cache機(jī)制
Linux內(nèi)核文件Cache機(jī)制(開關(guān)電源技術(shù)與設(shè)計 第二版)-Linux內(nèi)核文件Cache機(jī)制? ? ? ? ? ? ? ??
2021-08-31 16:34:544
嵌入式Linux的內(nèi)核編譯
實驗環(huán)境VMware Workstation PlayerUbuntu16.04kernel-3.2.tar.bz2Linux內(nèi)核編譯在ubuntu上編譯嵌入式Linux內(nèi)核,需要大家提前安裝好交叉
2021-11-01 17:07:2016
Linux內(nèi)核模塊簡介
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:181
Linux內(nèi)核架構(gòu)和工作原理
作用是將應(yīng)用層序的請求傳遞給硬件,并充當(dāng)?shù)讓域?qū)動程序,對系統(tǒng)中的各種設(shè)備和組件進(jìn)行尋址。目前支持模塊的動態(tài)裝卸(裁剪)。Linux內(nèi)核就是基于這個策略實現(xiàn)的。Linux進(jìn)程1.采用層次結(jié)構(gòu),每個進(jìn)程
2022-05-07 14:05:06284
學(xué)習(xí)linux內(nèi)核的一些建議
學(xué)習(xí)linux內(nèi)核,這個可不像學(xué)一門語言,c或者java一個月或者3月你就能精通掌握。學(xué)習(xí)linux內(nèi)核是需要一步一步循序漸進(jìn),掌握正確的linux內(nèi)核學(xué)習(xí)路線對學(xué)習(xí)至關(guān)重要,本篇文章就來分享學(xué)習(xí)linux內(nèi)核的一些建議吧。
2022-05-07 15:20:27447
【Linux內(nèi)核】從小小的宏定義窺探Linux內(nèi)核的精妙設(shè)計
【Linux內(nèi)核】從小小的宏定義窺探Linux內(nèi)核的精妙設(shè)計
2022-08-31 13:30:061602
Linux內(nèi)核中整合對 Rust 的支持
Linux Plumbers Conference 2022 大會上舉行了一個 Rust 相關(guān)的小型會議,該會議討論的大方向大致為:正在進(jìn)行的使 Rust 成為一種合適的系統(tǒng)編程語言的工作,以及在主線 Linux 內(nèi)核中整合對 Rust 的支持。
2022-09-19 11:06:57948
Linux內(nèi)核定時器
在Linux內(nèi)核中,也可以通過定時器來完成定時功能。但和單片機(jī)不同的是,Linux內(nèi)核定時器是一種基于未來時間點的計時方式,它以當(dāng)前時刻為啟動的時間點,以未來的某一時刻為終止點,類似于我們的鬧鐘。
2022-09-22 08:56:001382
Linux 6.1發(fā)布,微軟貢獻(xiàn)Linux內(nèi)核代碼
此外,公告中并沒有提及 Linux 6.1 是否是 LTS 版本。按照 Linux 內(nèi)核維護(hù)者 Greg Kroah-Hartman 的說法,Linux 內(nèi)核的 LTS 通常會選取每年的最后一個內(nèi)核
2022-12-14 09:54:59829
Linux內(nèi)核移植教程
半導(dǎo)體廠商會從 Linux內(nèi)核官網(wǎng)下載某個版本,將其移植到自己的 CPU上,測試成功后就會將其開放給該半導(dǎo)體廠商的 CPU開發(fā)者。開發(fā)者下載其提供的 Linux內(nèi)核,然后將其移植到自己的產(chǎn)品上。
2023-04-19 11:20:32701
Linux內(nèi)核中常用的C語言技巧有哪些
Linux內(nèi)核采用的是GCC編譯器,GCC編譯器除了支持ANSI C,還支持GNU C。在Linux內(nèi)核中,許多地方都使用了GNU C語言的擴(kuò)展特性,如typeof、__attribute__、__aligned、__builtin_等,這些都是GNU C語言的特性。
2023-05-12 14:45:24380
什么是Linux內(nèi)核 Linux內(nèi)核體系結(jié)構(gòu)
如果Windows已經(jīng)安裝了所有可用的驅(qū)動程序,而您只需要打開所需的驅(qū)動程序怎么辦?這本質(zhì)上就是內(nèi)核模塊為Linux所做的。內(nèi)核模塊,也稱為可加載內(nèi)核模塊(LKM),對于保持內(nèi)核在不消耗所有可用內(nèi)存的情況下與所有硬件一起工作是必不可少的。
2023-06-01 09:59:48846
萬千設(shè)備,linux內(nèi)核如何知道?
linux內(nèi)核設(shè)備的注冊由device_register()函數(shù)完成,這個函數(shù)是linux設(shè)備驅(qū)動模型的核心函數(shù)
2023-07-12 08:52:15478
linux內(nèi)核源代碼詳解
在安裝好的Linux系統(tǒng)中,內(nèi)核的源代碼位于/ust/src/linux.如果是從GNU網(wǎng)站下載的Linux內(nèi)核的tar文件,則展開以后在一個叫linux的子目錄中。以后本書中談到源文件的路徑時,就總是從linux這個節(jié)點開始。
2023-09-06 17:01:232
Linux內(nèi)核如何使用結(jié)構(gòu)體和函數(shù)指針?
我將結(jié)合具體的Linux內(nèi)核驅(qū)動框架代碼來展示Linux內(nèi)核如何使用結(jié)構(gòu)體和函數(shù)指針。
2023-09-06 14:17:55516
如何優(yōu)化Linux內(nèi)核UDP收包效率低
很多人都在詬病Linux內(nèi)核協(xié)議棧收包效率低,不管他們是真的懂還是一點都不懂只是聽別人說的,反正就是在一味地懟Linux內(nèi)核協(xié)議棧,他們的武器貌似只有DPDK。 但是,Linux內(nèi)核協(xié)議棧收包效率
2023-11-10 10:51:55239
Linux內(nèi)核UDP收包為什么效率低
現(xiàn)在很多人都在詬病Linux內(nèi)核協(xié)議棧收包效率低,不管他們是真的懂還是一點都不懂只是聽別人說的,反正就是在一味地懟Linux內(nèi)核協(xié)議棧,他們的武器貌似只有DPDK。 但是,即便Linux內(nèi)核協(xié)議
2023-11-13 10:38:08216
獲取Linux內(nèi)核源碼的方法
(ELF1/ELF1S開發(fā)板及顯示屏)Linux內(nèi)核是操作系統(tǒng)中最核心的部分,它負(fù)責(zé)管理計算機(jī)硬件資源,并提供對應(yīng)用程序和其他系統(tǒng)組件的訪問接口,控制著計算機(jī)的內(nèi)存、處理器、設(shè)備驅(qū)動程序和文
2023-12-13 09:49:33270
C++在Linux內(nèi)核開發(fā)中從爭議到成熟
Linux 內(nèi)核郵件列表中一篇已有六年歷史的老帖近日再次引發(fā)激烈討論 —— 主題是建議將 Linux 內(nèi)核的開發(fā)語言從 C 轉(zhuǎn)換為更現(xiàn)代的 C++。
2024-01-31 14:11:35199
評論
查看更多