日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux内核深度解析_十年磨一剑,第一本龙芯平台的Linux内核书来了

發(fā)布時(shí)間:2024/7/23 linux 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux内核深度解析_十年磨一剑,第一本龙芯平台的Linux内核书来了 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

《用“芯”探核:基于龍芯的Linux內(nèi)核探索解析》是一本基于龍芯平臺(tái),結(jié)合源代碼來探索和解析Linux-5.x內(nèi)核的書。

市面上解析Linux 內(nèi)核的經(jīng)典書籍已有不少,尤其是被稱為L(zhǎng)inux 內(nèi)核領(lǐng)域的“四庫(kù)全書”:《Linux 內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)》 《Linux設(shè)備驅(qū)動(dòng)程序》 《深入理解Linux 內(nèi)核》和《Linux內(nèi)核源代碼情景分析》。

但是,一方面,大多數(shù)已有書籍是基于X86 或者ARM 體系結(jié)構(gòu)的;另一方面,大多數(shù)已有書籍基于2.4 版本或者2.6 版本的Linux 內(nèi)核,雖然近年來有了許多不錯(cuò)的原創(chuàng)新書。

同時(shí),一直以來,從事龍芯內(nèi)核開發(fā)工作的“標(biāo)準(zhǔn)教程”是《龍芯處理器用戶手冊(cè)》、《MIPS 體系結(jié)構(gòu)透視》和《深入理解Linux 內(nèi)核》。然而,《龍芯處理器用戶手冊(cè)》不涉及Linux 內(nèi)核;《MIPS 體系結(jié)構(gòu)透視》講述的是傳統(tǒng)的MIPS 處理器,離真正的龍芯差距太大;而《深入理解Linux 內(nèi)核》所使用的內(nèi)核版本又過于陳舊。

因此,正如中科院計(jì)算所研究員張福新在推薦語中說的:“這本基于龍芯平臺(tái)的內(nèi)核開發(fā)書籍的出版,恰逢其時(shí)。”

本書作者:陳華才
博士,高級(jí)工程師。現(xiàn)任江蘇航天龍夢(mèng)信息技術(shù)有限公司副總工程師,負(fù)責(zé)龍芯3 號(hào)處理器的內(nèi)核開發(fā)。作為L(zhǎng)inux內(nèi)核中MIPS/ 龍芯3 號(hào)的Maintainer,向Linux 內(nèi)核官方提交了大量的代碼。

為什么寫這本書?

我是誰?我就是一個(gè)既愛Linux也愛龍芯的開發(fā)者。十六年前開始接觸Linux內(nèi)核,十二年前開始接觸龍芯電腦,十年前加入龍芯產(chǎn)業(yè)化基地,十年來伴隨著龍芯一起成長(zhǎng),如今已成為L(zhǎng)inux內(nèi)核中龍芯3號(hào)的Maintainer。

有人說,“干一行,愛一行”,但我覺得“愛一行,干一行”更加符合可持續(xù)發(fā)展。龍芯和Linux都是我所愛,研究起來動(dòng)力十足。一直以來,我在閱讀內(nèi)核源代碼時(shí)都有做筆記的習(xí)慣,因?yàn)槿四X畢竟容量有限,在知識(shí)體系不斷擴(kuò)張的過程中,筆記是必不可少的。我做筆記的方法以“代碼摘抄+適度精簡(jiǎn)+注釋解析”為主,但是隨著時(shí)間的發(fā)展和內(nèi)核版本的升級(jí),筆記總量越來越大,不同版本中的同名函數(shù)也已經(jīng)變得面目全非。于是,我經(jīng)常不得不在筆記中記錄源代碼的多個(gè)版本,并且在代碼片段的開始處加上版本標(biāo)識(shí)。雖然說筆記主要是給自己看的,但正如熱力學(xué)第二定律所昭示的一樣,筆記的可讀性已經(jīng)不可避免地越來越差了(熵值太大)。

于是乎,便萌生了整理筆記并編寫成書的想法。最初的想法成型于2013~2014年,但真正開始動(dòng)筆的時(shí)候是2015年。在寫書的過程中,解析方法盡量保留了筆記中精簡(jiǎn)代碼的特點(diǎn),但在內(nèi)核版本的選擇上全部采用了最新的LTS版本(長(zhǎng)期維護(hù)穩(wěn)定版本),即5.4.x版本。

用“芯”探核 基于龍芯的Linux內(nèi)核探索解析

這本書選擇了哪些內(nèi)容?

全書以龍芯平臺(tái)為重點(diǎn),主要解析Linux 內(nèi)核源代碼。首先對(duì)龍芯處理器和Linux 內(nèi)核進(jìn)行概括性的介紹,并引入一種快速而有效的代碼閱讀方法,即“先觀其大略,再咬文嚼字”。

操作系統(tǒng)是整個(gè)計(jì)算機(jī)的管理者,其本質(zhì)上是一個(gè)大型軟件平臺(tái),順著程序的執(zhí)行流程一起前進(jìn)是自然而然的事情。因此,從Linux內(nèi)核在龍芯計(jì)算機(jī)上的啟動(dòng)過程開始研究Linux 內(nèi)核是一個(gè)比較好的切入點(diǎn),以此獲得一個(gè)對(duì)龍芯處理器和Linux 內(nèi)核的宏觀印象。

內(nèi)核是操作系統(tǒng)中最基礎(chǔ)、最重要的部分,其三大基本功能分別是中斷/異常處理、內(nèi)存管理、進(jìn)程管理。這3章內(nèi)容盡量遵循“從基礎(chǔ)到上層”和“廣度優(yōu)先深度其次”的寫作原則,更方便讀者根據(jù)自己的需求安排閱讀順序。Linux內(nèi)核支持X86、ARM、MIPS、PowerPC等多種體系結(jié)構(gòu),但對(duì)上層應(yīng)用提供了基本一致的操作接口。因此,內(nèi)核的三大基本功能中一部分是體系結(jié)構(gòu)相關(guān)的特定內(nèi)容,一部分是體系結(jié)構(gòu)無關(guān)的通用框架。

由于Linux 是一體化內(nèi)核操作系統(tǒng),因此設(shè)備驅(qū)動(dòng)也放在內(nèi)核層實(shí)現(xiàn)。設(shè)備驅(qū)動(dòng)所涵蓋的范圍非常廣泛,本書不可能面面俱到,只選取了兩種常用的典型設(shè)備驅(qū)動(dòng)——Radeon 顯卡與E1000E 網(wǎng)卡,來做舉例性的原理說明。

Linux內(nèi)核博大精深,本書雖然洋洋灑灑幾百頁,然而在兩千多萬行源代碼實(shí)不過是滄海一粟。雖然我試圖讓內(nèi)容覆蓋更加全面,但也只是涉及了內(nèi)核啟動(dòng)、異常中斷、內(nèi)存管理、進(jìn)程管理、設(shè)備驅(qū)動(dòng)和電源管理等幾個(gè)常見話題,而對(duì)于文件系統(tǒng)、網(wǎng)絡(luò)協(xié)議等方面的內(nèi)容幾乎只字未提。

怎樣閱讀上千萬行的源代碼?

閱讀軟件源代碼是每個(gè)開發(fā)者的必由之路,尤其是內(nèi)核開發(fā)者。因?yàn)?strong>內(nèi)核開發(fā)在很大程度上并不是重新發(fā)明輪子,而是深入理解并盡量復(fù)用現(xiàn)有的內(nèi)核設(shè)計(jì)框架,然后參照相似的功能模塊去添加或改寫某項(xiàng)需要的功能。在對(duì)內(nèi)核整體框架以及某些子系統(tǒng)融會(huì)貫通以后,才有可能站在巨人的肩膀上去改進(jìn)框架本身,實(shí)現(xiàn)自主創(chuàng)新。

閱讀代碼有“廣度優(yōu)先”“深度優(yōu)先”兩種方式。代碼好比一棵樹,“廣度優(yōu)先”就是說我們要先找到主干,然后搞清楚主干上有幾根樹枝,再去某條感興趣的樹枝上尋找有意義的葉子;而“深度優(yōu)先”指的是是碰到第一根樹枝,就趕緊深入進(jìn)去把所有的葉子給找出來。本書建議以廣度優(yōu)先為主,但在適當(dāng)?shù)臅r(shí)候也需要兼顧深度。因此,本書使用“樹形視圖”“鏈?zhǔn)揭晥D”來解析內(nèi)核源代碼,而這也是我以及我的同事在日常工作中常使用的方法。樹形視圖具有廣度,能夠快速理解大型函數(shù)的主干;鏈?zhǔn)揭晥D具有深度,能夠直觀理解重點(diǎn)函數(shù)的調(diào)用。

(樹形視圖)

(鏈?zhǔn)揭晥D)

在很多現(xiàn)有的書籍中,都會(huì)使用流程圖來描述代碼邏輯。然而,流程圖雖然直觀,但是其描述能力有限(尤其是缺乏樹形視圖的層次化表達(dá)能力),往往很難精確描述一個(gè)函數(shù)的執(zhí)行過程。而一個(gè)費(fèi)盡心機(jī)畫出來的精確的流程圖,往往又會(huì)因?yàn)槠鋸?fù)雜性而失去了直觀的功能。并且,單靠流程圖并不能完全理解源代碼,而是需要將源代碼與流程圖兩相對(duì)照。

因此,本書盡量用精簡(jiǎn)版的源代碼(即樹形視圖和鏈?zhǔn)揭晥D)來代替流程圖,一方面可以快速理解多級(jí)函數(shù)的復(fù)雜調(diào)用關(guān)系,另一方面可以不需要在源代碼和流程圖之間反復(fù)切換。

本書除了引入樹形視圖和鏈?zhǔn)揭晥D,在開篇第1章首先介紹了“先觀其大略,再咬文嚼字”的代碼閱讀方法。具體來說分為四個(gè)步驟,即“找準(zhǔn)入口點(diǎn)”“理清主脈絡(luò)”“顧名思義看功能”“理解補(bǔ)丁文件”

從2015年開始動(dòng)筆,到如今《用“芯”探核:基于龍芯的Linux內(nèi)核探索解析》一書成型,其中的曲折艱辛實(shí)在是不足為外人道矣。在寫書過程中,當(dāng)我試圖將一個(gè)基本原理向眾人闡述明白的時(shí)候,才發(fā)現(xiàn),其實(shí)之前自己只是似懂非懂。甚至可以說,寫書最大的受益者是自己,因?yàn)檎麄€(gè)知識(shí)體系真正得到了全面的升華。

謹(jǐn)以此書,獻(xiàn)給一起為信息產(chǎn)業(yè)自主化而奮斗的同仁們。也希望此書,能給讀者帶來實(shí)質(zhì)性的收獲。

總結(jié)

以上是生活随笔為你收集整理的linux内核深度解析_十年磨一剑,第一本龙芯平台的Linux内核书来了的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 海角社区在线 | 狼性av懂色av禁果av | 粉嫩av一区二区夜夜嗨 | 操操操网| 免费高清av | 亚洲一区二区三区无码久久 | 在线观看免费视频 | 人人人人爽 | 欧美三区 | 韩国美女毛片 | 亚洲理论在线 | 国产高清视频在线 | 天堂影视在线观看 | 一区二区视频免费在线观看 | 亚洲欧美国产一区二区 | 极品少妇av | 欧美精品videos极品 | 操操操综合网 | 女同互舔视频 | 婷婷国产一区 | 国产二区在线播放 | 99精品人妻国产毛片 | 亚洲福利视频导航 | 精品一区二区三区无码视频 | 18禁男女爽爽爽午夜网站免费 | 国产精品1000| 成人欧美一区二区三区 | 国产色婷婷一区二区三区竹菊影视 | 黄色另类小说 | www.成人国产 | 久久亚洲激情 | 日韩欧美成人免费视频 | 午夜婷婷 | 亚洲国产成人精品无码区99 | 在线免费不卡视频 | 狠狠久久久| 中文字幕h| 91免费看大片 | yy111122少妇光屁股影院 | 九色porny原创自拍 | 内射国产内射夫妻免费频道 | 日韩在线观看精品 | 真实的国产乱xxxx在线 | 夜夜操天天 | 亚洲色图2| 天天看片天天干 | 狠狠操操 | 人人妻人人爽一区二区三区 | 黄色污污视频软件 | 欧美九九| 伊人久久在线 | 国产专区av | 国产精品热久久 | 日韩影院一区二区 | 精品免费一区二区三区 | 一级特黄aaa大片 | 国产精品2018 | 免费成人美女在线观看. | 亚洲第一成人网站 | 欧美日韩色片 | 欧美精品福利视频 | 一区二区三区免费 | 国产久草视频 | 国产免费a视频 | 欧美高清一区二区三区四区 | 午夜小视频在线播放 | www.com毛片| 狠狠精品干练久久久无码中文字幕 | 黄色视屏网站 | 亚洲 欧美 激情 另类 校园 | 九九热视频在线播放 | 欧美精品成人一区二区在线观看 | 青青草婷婷 | 亚洲tv在线观看 | 午夜三级在线 | 亚洲va久久久噜噜噜无码久久 | 亚洲一区二区电影 | 污黄网站在线观看 | 射久久| 九九精品在线观看视频 | 精品成人av一区二区在线播放 | 朴麦妮原版视频高清资源 | 欧美综合国产 | 91精品国产乱码 | 欧美午夜一区二区三区 | 久爱视频在线 | 久久婷婷国产 | 成人自拍视频在线 | 欧洲精品一区二区三区久久 | 精品久| 91香蕉国产在线观看 | 亚洲天堂不卡 | 性中国古装videossex | 五月婷婷在线观看 | 操到喷水 | 日韩av成人网 | 无码人妻精品一区二区蜜桃视频 | 美女屁股无遮挡 | 放荡闺蜜高h苏桃情事h |