Linux內(nèi)核完全剖析

《Linux內(nèi)核完全剖析》是機(jī)械工業(yè)出版社出版的圖書,作者是趙炯。

Linux內(nèi)核完全剖析基本信息

書名 Linux內(nèi)核完全剖析 又名 Linux kernel completely analysis
作者 趙炯 頁數(shù) 882頁
出版社 機(jī)械工業(yè)出版社 開本 16開

Linux內(nèi)核完全剖析造價(jià)信息

市場(chǎng)價(jià) 信息價(jià) 詢價(jià)
材料名稱 規(guī)格/型號(hào) 市場(chǎng)價(jià)
(除稅)
工程建議價(jià)
(除稅)
行情 品牌 單位 稅率 供應(yīng)商 報(bào)價(jià)日期
PH分 型號(hào):TPH21AC+TPH-S0C10 查看價(jià)格 查看價(jià)格

天健創(chuàng)新

13% 天健創(chuàng)新(北京)監(jiān)測(cè)儀表股份有限公司
總磷分 型號(hào):TEM-TP9000 查看價(jià)格 查看價(jià)格

天健創(chuàng)新

13% 天健創(chuàng)新(北京)監(jiān)測(cè)儀表股份有限公司
SS分 型號(hào):TSS10AC+TSS-S0C10 查看價(jià)格 查看價(jià)格

天健創(chuàng)新

13% 天健創(chuàng)新(北京)監(jiān)測(cè)儀表股份有限公司
COD分 型號(hào):TEM-COD9000 查看價(jià)格 查看價(jià)格

天健創(chuàng)新

13% 天健創(chuàng)新(北京)監(jiān)測(cè)儀表股份有限公司
氨氮分 型號(hào):TEM-NH3N9000 查看價(jià)格 查看價(jià)格

天健創(chuàng)新

13% 天健創(chuàng)新(北京)監(jiān)測(cè)儀表股份有限公司
網(wǎng)絡(luò)線(完全達(dá)標(biāo)) 單屏蔽超五類網(wǎng)絡(luò)線 查看價(jià)格 查看價(jià)格

富豪

13% 佛山市南海區(qū)松崗富豪網(wǎng)絡(luò)線材有限公司
完全上進(jìn)風(fēng)玻璃嵌入式灶(完全上進(jìn)風(fēng)) B3-L16Z 查看價(jià)格 查看價(jià)格

萬和

臺(tái) 13% 北京羽隆萬和貿(mào)易有限公司
完全剛化石系列 Z001,Z202,600*600/新版剛玉石 查看價(jià)格 查看價(jià)格

OCEANO

13% 惠泉美居建材有限公司
材料名稱 規(guī)格/型號(hào) 除稅
信息價(jià)
含稅
信息價(jià)
行情 品牌 單位 稅率 地區(qū)/時(shí)間
暫無數(shù)據(jù)
材料名稱 規(guī)格/需求量 報(bào)價(jià)數(shù) 最新報(bào)價(jià)
(元)
供應(yīng)商 報(bào)價(jià)地區(qū) 最新報(bào)價(jià)時(shí)間
操作系統(tǒng)(Linux) Linux Enterprise 12.0(2cpu)一年服務(wù),盒包|2套 1 查看價(jià)格 上海傾菲電子科技有限公司 全國(guó)   2018-05-17
Linux系統(tǒng) Linux Enterprise 12.0(2cpu)一年服務(wù),盒包|15套 1 查看價(jià)格 上海傾菲電子科技有限公司 全國(guó)   2018-05-17
操作系統(tǒng)(Linux) Linux Enterprise 12.0(2cpu)一年服務(wù),盒包|4套 1 查看價(jià)格 上海傾菲電子科技有限公司 全國(guó)   2018-05-17
通信內(nèi)核軟件系統(tǒng) 1、電話功能:對(duì)所有調(diào)度終端(電話)進(jìn)行單呼、選呼、群呼、組呼(一鍵呼),電話巡檢;對(duì)下級(jí)調(diào)度終端(電話)進(jìn)行強(qiáng)插、強(qiáng)拆、監(jiān)聽.2、通訊錄管理:支持用戶管理、組管理,黑名單等功能.3、錄音管理功能|1套 1 查看價(jià)格 廣州熹尚科技有限公司 廣東   2022-10-24
Linux企業(yè)版64位7.6及以上版本 相當(dāng)于Linux企業(yè)版64位7.6及以上版本|4個(gè) 1 查看價(jià)格 廣州市熹尚科技設(shè)備有限公司 全國(guó)   2021-09-09
Linux通用計(jì)算板卡 1) 支持安裝業(yè)務(wù)應(yīng)用軟件,含2個(gè)獨(dú)立Linux操作系統(tǒng);2) 單張板卡自帶不少于2顆E3 CPU模塊;3) 內(nèi)存不小于32GB,且支持?jǐn)U展至64GB;4) 自帶不小于2塊1TB硬盤;5) 自帶|1塊 1 查看價(jià)格 廣州科締歐電子科技有限公司 全國(guó)   2022-06-30
執(zhí)法記錄儀(linux) 詳見附件|1項(xiàng) 1 查看價(jià)格 杭州??低暪煞萦邢薰窘谊栟k事處 全國(guó)   2020-09-23
組態(tài)軟件(完全版) KingSCADA3.1,1000點(diǎn)完全版|1套 1 查看價(jià)格 北京亞控公司成都辦事處? 全國(guó)   2018-02-26

Linux內(nèi)核完全剖析常見問題

Linux內(nèi)核完全剖析文獻(xiàn)

嵌入式實(shí)驗(yàn)四(Linux內(nèi)核移植及LED驅(qū)動(dòng)測(cè)試) 嵌入式實(shí)驗(yàn)四(Linux內(nèi)核移植及LED驅(qū)動(dòng)測(cè)試)

格式:pdf

大?。?span id="smb9qhx" class="single-tag-height">598KB

頁數(shù): 7頁

評(píng)分: 4.4

實(shí)驗(yàn)四 Linux 內(nèi)核移植及 LED 驅(qū)動(dòng)測(cè)試 一、實(shí)驗(yàn)?zāi)康模?1. 熟悉 Linux 內(nèi)核基本目錄結(jié)構(gòu),為后續(xù) Linux 底層開發(fā)做準(zhǔn) 備, 熟悉 Linux 內(nèi)核的配置及編譯過程。 2. 了解嵌入式 Linux 驅(qū)動(dòng)開發(fā)基本方法, 熟悉嵌入式 Linux 字 符設(shè)備驅(qū)動(dòng)的開發(fā)框架。 二、實(shí)驗(yàn)內(nèi)容: 1. 下載或拷貝 Linux-3.14 源碼。 2. 針對(duì)實(shí)驗(yàn)箱配置內(nèi)核。 3. 編譯內(nèi)核并測(cè)試。 4. 利用 Exynos4412 的 GPX2_7、GPX1_0、GPX2_4、GPX3_0 這 4 個(gè) I/O 引腳控制 4 個(gè) LED 發(fā)光二極管,使其閃爍。 三、實(shí)驗(yàn)原理: 1. Linux 內(nèi)核是 Linux 操作系統(tǒng)的核心,也是整個(gè) Linux 功能 體現(xiàn)。它是用 C語言編寫,符合 POSIX標(biāo)準(zhǔn)。 Linux 最早是由芬蘭 黑客 Linus Torval

立即下載
Linux內(nèi)核Netfilter包過濾防火墻的設(shè)計(jì)與實(shí)現(xiàn) Linux內(nèi)核Netfilter包過濾防火墻的設(shè)計(jì)與實(shí)現(xiàn)

格式:pdf

大小:598KB

頁數(shù): 5頁

評(píng)分: 4.5

討論并分析了Netfilter的功能框架、工作原理及數(shù)據(jù)包過濾的實(shí)現(xiàn)機(jī)制,研究了在Netfilter框架中如何擴(kuò)展用戶自定義的可裝載內(nèi)核模塊,開發(fā)并實(shí)現(xiàn)了IPv4協(xié)議下基于IP和端口的數(shù)據(jù)包過濾防火墻功能。深入學(xué)習(xí)和研究Netfilter框架及其可擴(kuò)展性,該研究也為構(gòu)建特定用戶安全需求的防火墻系統(tǒng)提供借鑒。

立即下載

linux調(diào)度器(BFS )是一款專門為 Linux 桌面環(huán)境所設(shè)計(jì)的內(nèi)核調(diào)度器,它基于 Staircase Deadline和 EEVDF 算法,支持 Linux 2.6.31之后的內(nèi)核。它提供了前所未有的流暢桌面性能,不僅得到了用戶的認(rèn)可,也為一些商業(yè)系統(tǒng)所采用。

Linux 調(diào)度器對(duì)比

BFS vs CFS,設(shè)計(jì)上的不同 白天 Con Kolivas 在醫(yī)院里當(dāng)麻醉師,為人們解除痛苦,業(yè)余的時(shí)候借 Linux 解除自己的痛苦。額,Kolivas 學(xué)習(xí) Linux 并不是為了解決痛苦,我臆測(cè)而已。但據(jù) Kolivas 自述,他接觸 Linux 內(nèi)核時(shí)連 C 語言也沒有學(xué)習(xí)過。。。這個(gè)事實(shí)證明,語言只是一項(xiàng)工具,對(duì)問題本質(zhì)的深入理解才是寫程序的關(guān)鍵。可能還有執(zhí)著,CFS 和 RSDL 之爭(zhēng)導(dǎo)致 Kolivas 離開 Linux 社區(qū),此去經(jīng)年,當(dāng) Kolivas 再次開始看內(nèi)核代碼的時(shí)候,他立即發(fā)現(xiàn) CFS 存在以下幾個(gè)設(shè)計(jì)上的問題:

CFS 的目標(biāo)是支持從桌面到高端服務(wù)器的所有應(yīng)用場(chǎng)景,這種大而全的設(shè)計(jì)思路導(dǎo)致其必須做一些實(shí)現(xiàn)上的折中,此外,那些只有在高端機(jī)器中才需要的特性將引入不必要的復(fù)雜代碼。

其次,為了維護(hù)多 CPU 上的公平性,CFS 采用了負(fù)載平衡機(jī)制,Kolivas 認(rèn)為,這些復(fù)雜代碼抵消了 per cpu queue 曾帶來的好處。

最后,主流內(nèi)核的 CFS 還是對(duì)睡眠進(jìn)程存在一些偏好,這意味著"不公平"。

設(shè)計(jì)目標(biāo)不同

在現(xiàn)實(shí)中,調(diào)度算法類似一個(gè)處境尷尬的主婦,滿足孩子對(duì)晚餐的要求便有可能傷害到老人的食欲。Linux 內(nèi)核一直試圖做出一道讓全家老少都喜歡的菜,在這方面,CFS 已經(jīng)做的很好。但一道能被所有人接受的菜,或許就意味著稍許平淡。而 BFS 只打算滿足一種口味,以便將這種口味發(fā)展到極限。

根據(jù) Linux Magazine的說法,Con Kolivas是看到了下面這則來自 xkcd 的漫畫而開始思考 BFS 的。

事情源于一些 Linux 用戶,他們發(fā)現(xiàn) Linux 雖然號(hào)稱能夠充分發(fā)揮 4096 顆 CPU 系統(tǒng)的計(jì)算能力,但在普通的 laptop 上卻無法流暢地播放 Youtube 視頻。

這讓人們開始思考,對(duì)于 Desktop 環(huán)境來講,CFS 哪些復(fù)雜的特性究竟是否還有意義?人們是否有必要在自己的個(gè)人電腦中使用一個(gè)支持 4096 個(gè) CPU 的調(diào)度器?

BFS 正是對(duì)這種質(zhì)疑的自然反應(yīng)。它不打算支持 4096 個(gè) CPU 的龐然大物,BFS 的目標(biāo)是普通人使用的桌面電腦。此外,BFS 還刪除了那些只有在服務(wù)器上才需要的特性。比如,BFS 拋棄了 CFS 的組調(diào)度特性,類似 CGROUP 這樣的特性對(duì)于普通的桌面用戶是多余的技術(shù)。

這很容易理解:在只有一個(gè) CPU 的系統(tǒng)中,誰還會(huì)設(shè)計(jì)多個(gè) CGroup,哪里還能用到 NUMA domain等概念呢?

此外 BFS 使用單一的 run queue,不再需要復(fù)雜的負(fù)載均衡機(jī)制。由于不再有 CGROUP 概念,也不再需要 Group 間的負(fù)載均衡。

這些簡(jiǎn)單的裁剪使得 BFS 的代碼極大地簡(jiǎn)化,簡(jiǎn)化的代碼意味著執(zhí)行一次調(diào)度所需要的指令數(shù)減少了,相應(yīng)的 footprint 自然也減少了。

當(dāng)然簡(jiǎn)化代碼只是一個(gè)顯而易見的方面,更重要的是,這種理念的不同會(huì)對(duì)最終的調(diào)度器實(shí)現(xiàn)產(chǎn)生更加深遠(yuǎn)的影響,這實(shí)在是難以盡述。

多隊(duì)列 vs 單一隊(duì)列

?在 Linux 內(nèi)核進(jìn)入 2.6 時(shí),調(diào)度器采用 per cpu run queue 從而克服了單一 run queue 的局限。在多 CPU 系統(tǒng)中,單一 run queue 意味著 run queue 成為了系統(tǒng)的瓶頸,因?yàn)樵谕粫r(shí)刻,一個(gè) CPU 訪問 run queue 時(shí),其他的 CPU 即使空閑也必須等待。當(dāng)使用 per CPU 的 run queue 之后,每個(gè) CPU 不必再使用大鎖,從而能夠并行地處理調(diào)度。

但很多事情都不像第一眼看上去那樣簡(jiǎn)單。

Kolivas 發(fā)現(xiàn),采用 per cpu run queue 所帶來的好處會(huì)被追求公平性的 load balance 代碼所抵消。在目前的 CFS 調(diào)度器中,每顆 CPU 只維護(hù)本地 run queue 中所有進(jìn)程的公平性,為了實(shí)現(xiàn)跨 CPU 的調(diào)度公平性,CFS 必須定時(shí)進(jìn)行 load balance,將一些進(jìn)程從繁忙的 CPU 的 run queue 中移到其他空閑的 run queue 中。

這個(gè) load balance 的過程需要獲得其他 run queue 的鎖,這種操作降低了多運(yùn)行隊(duì)列帶來的并行性。

并且在復(fù)雜情況下,這種因 load balance 而引入的 footprint 將非常可觀。

當(dāng)然,load balance 引入的加鎖操作依然比全局鎖的代價(jià)要低,這種代價(jià)差異隨著 CPU 個(gè)數(shù)的增加而更加顯著。但請(qǐng)您注意,BFS 并不打算為那些擁有 1024 個(gè) CPU 的系統(tǒng)工作,假若系統(tǒng)中的 CPU 個(gè)數(shù)有限時(shí),多 run queue 的優(yōu)勢(shì)便不明顯了。

而 BFS 采用單一隊(duì)列之后,每一個(gè)需要調(diào)度的新進(jìn)程都可以在全局范圍內(nèi)查找最合適的 CPU,而無需 CFS 那樣等待 load balance 代碼來決定,這減少了多 CPU 之間裁決的延遲,最終的結(jié)果是更小的調(diào)度延遲。

向前看還是向后看?

多年來 Kolivas 一直關(guān)注著 Linux 在 desktop 上的表現(xiàn)。對(duì)于 desktop 的用戶,最注重的不是系統(tǒng)的吞吐量,而是交互性程序的流暢體驗(yàn)。從 SD 開始,Kolivas 就告訴內(nèi)核黑客們,完全公平能夠從根本上保證交互性。他始終堅(jiān)持一個(gè)基本觀點(diǎn):調(diào)度器應(yīng)該 forward look only。決不要去考慮一個(gè)進(jìn)程的過去。

CFS 卻偏偏要考慮進(jìn)程的過去。2.6.23 的時(shí)候,CFS 記錄并使用 sleep time。之后不久,在 2.6.24 發(fā)布的時(shí)候,CFS 合并了"Real Fair Scheduler",刪除了 sleep time。因此在 2.6.24 之后的內(nèi)核中,CFS 終于也不再考慮進(jìn)程過去的睡眠時(shí)間。

但 CFS 還是保留了 sleeper fairness 的思想,當(dāng)進(jìn)程 wakeup 的時(shí)候,在 place_entity() 函數(shù)中,CFS 將對(duì) sleeper 進(jìn)行獎(jiǎng)勵(lì),以便其能盡快得到 CPU。這個(gè)策略是非常微妙的,我們?cè)?2.1 節(jié)中詳細(xì)介紹了 sleeper fairness 的演進(jìn)過程。假如您花些時(shí)間回頭再看看,就會(huì)發(fā)現(xiàn) sleeper fairness 曾造成怎樣嚴(yán)重的延遲問題。雖然 Ingo 自稱 Gentle fairness 解決了延遲問題,但從代碼上看,Gentle Fairness 只是對(duì) sleeper 的獎(jiǎng)勵(lì)減半而已。因此我們可以說,CFS 依然對(duì) Sleeper 進(jìn)程進(jìn)行獎(jiǎng)勵(lì),這代表著一種偏好,一種"不公平"。而這,正是 BFS 所反對(duì)的。

BFS 中,當(dāng)一個(gè)進(jìn)程 wakeup 時(shí),調(diào)度器將根據(jù)進(jìn)程的 deadline 來進(jìn)行選擇(關(guān)于 deadline 本文將在第 4 章中詳細(xì)描述),其結(jié)果是,更早睡眠的進(jìn)程能更快地得到調(diào)度;CFS 的 sleeper fairness 則意味著要根據(jù) wakeup 的時(shí)間來選擇下一個(gè)被調(diào)度的進(jìn)程,更早 wakeup 的進(jìn)程會(huì)更快得到調(diào)度。

這種不同究竟會(huì)對(duì)桌面應(yīng)用造成何種影響尚沒有理論依據(jù)可以參考。但我個(gè)人認(rèn)為,BFS 的策略更加合理。

您現(xiàn)在可能已經(jīng)讀得有些煩躁了 ( 這些英文加中文的說些啥啊 ),所以我還是盡快介紹一下 BFS 的實(shí)現(xiàn)細(xì)節(jié)吧。然后或許您會(huì)理解我,有些詞還是不翻譯更好。

內(nèi)核是操作系統(tǒng)最內(nèi)核最基礎(chǔ)的構(gòu)件,因而,內(nèi)核結(jié)構(gòu)往往對(duì)操作系統(tǒng)的外部特性以及應(yīng)用領(lǐng)域有著一定程度的影響。盡管隨著理論和實(shí)踐的不斷演進(jìn),操作系統(tǒng)高層特性與內(nèi)核結(jié)構(gòu)之間的耦合有日趨縮小之勢(shì),但習(xí)慣上,內(nèi)核結(jié)構(gòu)仍然是操作系統(tǒng)分類之常用標(biāo)準(zhǔn)。

內(nèi)核的結(jié)構(gòu)可以分為單內(nèi)核、微內(nèi)核、混合內(nèi)核、外內(nèi)核等。

單內(nèi)核(Monolithic kernel),又稱為宏內(nèi)核。單內(nèi)核結(jié)構(gòu)是操作系統(tǒng)中各內(nèi)核部件雜然混居的形態(tài),該結(jié)構(gòu)于1960年代(亦有1950年代初之說,尚存爭(zhēng)議),歷史最長(zhǎng),是操作系統(tǒng)內(nèi)核與外圍分離時(shí)的最初形態(tài)。

微內(nèi)核(Microkernel),又稱為微核心。微內(nèi)核結(jié)構(gòu)是1980年代產(chǎn)生出來的較新的內(nèi)核結(jié)構(gòu),強(qiáng)調(diào)結(jié)構(gòu)性部件與功能性部件的分離。20世紀(jì)末,基于微內(nèi)核結(jié)構(gòu),理論界中又發(fā)展出了超微內(nèi)核與外內(nèi)核等多種結(jié)構(gòu)。盡管自1980年代起,大部分理論研究都集中在以微內(nèi)核為首的“新興”結(jié)構(gòu)之上,然而,在應(yīng)用領(lǐng)域之中,以單內(nèi)核結(jié)構(gòu)為基礎(chǔ)的操作系統(tǒng)卻一直占據(jù)著主導(dǎo)地位。

混合內(nèi)核(Hybrid kernel)像微內(nèi)核結(jié)構(gòu),只不過它的組件更多的在核心態(tài)中運(yùn)行,以獲得更快的執(zhí)行速度。

外內(nèi)核(Exokernel)的設(shè)計(jì)理念是盡可能的減少軟件的抽象化,這使得開發(fā)者可以專注于硬件的抽象化。外核心的設(shè)計(jì)極為簡(jiǎn)化,它的目標(biāo)是在于同時(shí)簡(jiǎn)化傳統(tǒng)微內(nèi)核的訊息傳遞機(jī)制,以及整塊性核心的軟件抽象層。

在眾多常用操作系統(tǒng)之中,除了QNX和基于Mach的UNIX等個(gè)別系統(tǒng)外,幾乎全部采用單內(nèi)核結(jié)構(gòu),例如大部分的Unix、Linux,以及Windows(微軟聲稱Windows NT是基于改良的微內(nèi)核架構(gòu)的,盡管理論界對(duì)此存有異議)。 微內(nèi)核和超微內(nèi)核結(jié)構(gòu)主要用于研究性操作系統(tǒng),還有一些嵌入式系統(tǒng)使用外核。

基于單內(nèi)核的操作系統(tǒng)通常有著較長(zhǎng)的歷史淵源。例如,絕大部分UNIX的家族史都可上溯至1960年代。該類操作系統(tǒng)多數(shù)有著相對(duì)古老的設(shè)計(jì)和實(shí)現(xiàn)(例如某些UNIX中存在著大量1970年代、1980年代的代碼)。另外,往往在性能方面略優(yōu)于同一應(yīng)用領(lǐng)域中采用其他內(nèi)核結(jié)構(gòu)的操作系統(tǒng)(但通常認(rèn)為此種性能優(yōu)勢(shì)不能完全歸功于單內(nèi)核結(jié)構(gòu))。

Linux內(nèi)核完全剖析相關(guān)推薦
  • 相關(guān)百科
  • 相關(guān)知識(shí)
  • 相關(guān)專欄

最新詞條

安徽省政采項(xiàng)目管理咨詢有限公司 數(shù)字景楓科技發(fā)展(南京)有限公司 懷化市人民政府電子政務(wù)管理辦公室 河北省高速公路京德臨時(shí)籌建處 中石化華東石油工程有限公司工程技術(shù)分公司 手持無線POS機(jī) 廣東合正采購(gòu)招標(biāo)有限公司 上海城建信息科技有限公司 甘肅鑫禾國(guó)際招標(biāo)有限公司 燒結(jié)金屬材料 齒輪計(jì)量泵 廣州采陽招標(biāo)代理有限公司河源分公司 高鋁碳化硅磚 博洛尼智能科技(青島)有限公司 燒結(jié)剛玉磚 深圳市東海國(guó)際招標(biāo)有限公司 搭建香蕉育苗大棚 SF計(jì)量單位 福建省中億通招標(biāo)咨詢有限公司 泛海三江 威海鼠尾草 廣東國(guó)咨招標(biāo)有限公司 Excel 數(shù)據(jù)處理與分析應(yīng)用大全 甘肅中泰博瑞工程項(xiàng)目管理咨詢有限公司 山東創(chuàng)盈項(xiàng)目管理有限公司 當(dāng)代建筑大師 廣西北纜電纜有限公司 上海地鐵維護(hù)保障有限公司通號(hào)分公司 拆邊機(jī) 甘肅中維國(guó)際招標(biāo)有限公司 大山檳榔 舌花雛菊 湖北鑫宇陽光工程咨詢有限公司 GB8163標(biāo)準(zhǔn)無縫鋼管 中國(guó)石油煉化工程建設(shè)項(xiàng)目部 華潤(rùn)燃?xì)猓ㄉ虾#┯邢薰? 韶關(guān)市優(yōu)采招標(biāo)代理有限公司 莎草目 建設(shè)部關(guān)于開展城市規(guī)劃動(dòng)態(tài)監(jiān)測(cè)工作的通知 電梯平層準(zhǔn)確度 廣州利好來電氣有限公司 蘇州弘創(chuàng)招投標(biāo)代理有限公司