出版時間:2004-11 出版社:清華大學(xué)出版社 作者:摩斯博格等著、梁金昆等譯 頁數(shù):414 字?jǐn)?shù):671000 譯者:摩斯博格
Tag標(biāo)簽:無
內(nèi)容概要
權(quán)威而全面地講述IA-64/IPF(安騰處理器系列)下的Linux內(nèi)核; 深入探討Linux硬件抽象接口后面的思想的概念及其在IA-64設(shè)計空間下的具體實(shí)現(xiàn); 由頂級IA-64 Linux內(nèi)核設(shè)計師和開發(fā)人員編寫; OperSource著名領(lǐng)袖Bruce Perens親自撰寫了前言; IA-64 Linuxmw內(nèi)核實(shí)現(xiàn)的權(quán)威指南; IA-64體系結(jié)構(gòu)和安騰處理器是專為提供前所未有的性能、可擴(kuò)展性和可靠性而設(shè)計的,借助于IA-64 Linux內(nèi)核,每一個Linux開發(fā)人員都可以訪問這些強(qiáng)大的功能。在這套權(quán)威著作中,IA-64 Linux內(nèi)核項(xiàng)目經(jīng)理將帶領(lǐng)你深入了解IA-64的Linux,準(zhǔn)確地闡明了IA-64體系結(jié)構(gòu)為何具有如此突破性的強(qiáng)大能力。 本書介紹IA-64體系結(jié)構(gòu)、指令集和關(guān)鍵功能開始。緊接著以空前的篇幅講述了每一個主要的Linux內(nèi)核子系統(tǒng),描述Linux用來抽象硬件差異的接口,并說明了IA-64環(huán)境中如何實(shí)現(xiàn)了這些接口。 內(nèi)容包括: ·處理器、任務(wù)和線程; ·虛擬內(nèi)存子系統(tǒng):地址空間、頁面表、頁面錯誤處理和一致性; ·設(shè)備支持:程序化I/O、DMA和中斷; ·同步多處理:Linux鎖定原理及其在IA-64上的實(shí)現(xiàn); ·內(nèi)核入口和出口:中斷、系統(tǒng)調(diào)用、信號和用戶內(nèi)存訪問; ·自舉:固件、引導(dǎo)程序和內(nèi)核初始化; ·系統(tǒng)性能監(jiān)視:使用率、內(nèi)核支持和安騰擴(kuò)展系列; ·IA-32兼容性:從體系結(jié)構(gòu)和Linux系統(tǒng)的角度來看,支持傳統(tǒng)的32位應(yīng)用程序。
作者簡介
David Mosberger是惠普實(shí)驗(yàn)室的高級研究專家。在1998年初,他創(chuàng)立了一個項(xiàng)目,將Linux引入IA-64平臺,隨后開發(fā)了第一個IA-64 Linux內(nèi)核源代碼方面的首席設(shè)計師、開發(fā)人員和負(fù)責(zé)人。
Stephane Eranian是惠普實(shí)驗(yàn)室的高級研究專家。他從1998年下半年開始從事將Linux引
書籍目錄
第1章 引言 1.1 微處理器:從CISC到EPIC 1.1.1 微處理器分類小結(jié) 1.1.2 IA-64的架構(gòu)和安騰 1.2 Linux簡史 1.2.1 早期發(fā)展 1.2.2 分支發(fā)展:Linux走向多平臺 1.2.3 IA-64 Linux 1.2.4 Linux發(fā)展史小結(jié) 1.3 Linux內(nèi)核概述 1.3.1 主要概念 1.3.2 硬件模型 1.3.3 內(nèi)核組件 1.3.4 內(nèi)核源碼 1.4 小結(jié)第2章 IA-64架構(gòu) 2.1 用戶級指令集的架構(gòu) 2.1.1 指令格式 2.1.2 指令順序化 2.1.3 寄存器組 2.1.4 指令集概述 2.1.5 整型數(shù)與SIMD指令 2.1.6 內(nèi)存/信號量指令 2.1.7 分支指令 2.1.8 與寄存器堆棧有關(guān)的指令 2.1.9 控制指令 2.1.10 浮點(diǎn)型指令 2.1.11 模調(diào)度循環(huán) 2.2 運(yùn)行時/軟件規(guī)范 2.2.1 數(shù)據(jù)模型 2.2.2 寄存器用法 2.2.3 過程鏈接 2.2.4 內(nèi)存堆棧 2.2.5 寄存器堆?! ?.2.6 全局指針 2.2.7 IA-64匯編語言編程 2.3 系統(tǒng)指令集架構(gòu) 2.3.1 系統(tǒng)寄存器組 2.3.2 特權(quán)指令 2.3.3 中斷 2.4 寄存器堆棧引擎 2.4.1 寄存器堆棧配置寄存器 2.4.2 處理NaT位 2.4.3 RSE算術(shù) 2.4.4 RSE算術(shù)輔助例程 2.4.5 影響RSE的指令 2.5 小結(jié)第3章 進(jìn)程、任務(wù)和線程 3.1 Linux任務(wù) 3.1.1 創(chuàng)建任務(wù) 3.1.2 歷史的觀點(diǎn) 3.2 線程接口 3.2.1 pt_regs結(jié)構(gòu) 3.2.2 switch_stack結(jié)構(gòu) 3.2.3 線程結(jié)構(gòu) 3.2.4 IA-64寄存器堆?! ?.2.5 IA-64線程狀態(tài)小結(jié) 3.2.6 運(yùn)行線程 3.2.7 創(chuàng)建線程 3.2.8 終止線程 3.2.9 跨地址空間邊界移動線程 3.3 線程同步 3.3.1 并發(fā)模式 3.3.2 原子操作 3.3.3 信號量 3.3.4 中斷屏蔽 3.3.5 自旋鎖 3.4 小結(jié)第4章 虛擬內(nèi)存 4.1 虛擬內(nèi)存系統(tǒng)簡介 4.1.1 虛擬地址到物理地址的轉(zhuǎn)換 4.1.2 請求頁面調(diào)度 4.1.3 頁面調(diào)度和交換 4.1.4 保護(hù) 4.2 Linux進(jìn)程的地址空間 4.2.1 用戶地址空間 4.2.2 頁表映射的內(nèi)核段 4.2.3 一對一映射的內(nèi)核段 4.2.4 IA-64地址空間的結(jié)構(gòu) 4.3 頁表 4.3.1 折疊頁表層 4.3.2 虛擬映射的線性頁表 4.3.3 Linux/ia64頁表的結(jié)構(gòu) 4.3.4 頁表項(xiàng) 4.3.5 頁表訪問 4.3.6 頁表目錄的創(chuàng)建 4.4 旁路轉(zhuǎn)換緩沖區(qū) 4.4.1 IA-64 TLB架構(gòu) 4.4.2 TLB一致性的維護(hù) 4.4.3 遲緩的TLB清除 4.5 頁面錯誤處理 4.5.1 示例:寫時復(fù)制的工作原理 4.5.2 Linux頁面錯誤處理程序 4.5.3 IA-64實(shí)現(xiàn) 4.6 內(nèi)存一致性 4.6.1 Linux內(nèi)核中的一致性維護(hù) 4.6.2 IA-64實(shí)現(xiàn) 4.7 切換地址空間 4.7.1 地址空間切換的接口 4.7.2 IA-64實(shí)現(xiàn) 4.8 討論與總結(jié)第5章 內(nèi)核入口與出口 5.1 中斷 5.1.1 內(nèi)核入口路徑 5.1.2 內(nèi)核出口路徑 5.1.3 討論 5.1.4 IA-64實(shí)現(xiàn) 5.1.5 切換IA-64寄存器堆?!?.2 系統(tǒng)調(diào)用 5.2.1 錯誤信號 5.2.2 重新啟動系統(tǒng)調(diào)用執(zhí)行 5.2.3 從內(nèi)核調(diào)用系統(tǒng)調(diào)用 5.2.4 IA-64實(shí)現(xiàn) 5.3 信號 5.3.1 與信號有關(guān)的系統(tǒng)調(diào)用 5.3.2 信號遞交 5.3.3 IA-64實(shí)現(xiàn) 5.4 內(nèi)核存取用戶內(nèi)存 5.4.1 示例:gettimeofday()如何返回timeval結(jié)構(gòu) 5.4.2 禁用合法性檢測 5.4.3 IA-64實(shí)現(xiàn) 5.5 小結(jié)第6章 棧展開 6.1 IA-64 ELF展開段 6.2 內(nèi)核展開接口 6.2.1 管理展開表 6.2.2 遍歷調(diào)用鏈 6.2.3 訪問當(dāng)前幀的CPU狀態(tài) 6.2.4 展開接口的使用 6.3 在匯編代碼中嵌入展開信息 6.3.1 區(qū)間指令 6.3.2 序言指令 6.3.3 過程體指令 6.3.4 通用指令 6.3.5 實(shí)例 6.4 實(shí)現(xiàn)方面 6.4.1 幀信息結(jié)構(gòu) 6.4.2 展開描述符處理 6.4.3 展開腳本 6.4.4 遲緩初始化和腳本提示 6.4.5 綜合考慮 6.5 小結(jié)第7章 I/O設(shè)備 7.1 簡介 7.1.1 現(xiàn)代計算機(jī)的結(jié)構(gòu) 7.1.2 現(xiàn)代計算機(jī)上的I/O軟件支持 7.2 編程I/O 7.2.1 內(nèi)存映射I/O 7.2.2 端口I/O 7.3 直接內(nèi)存訪問 7.3.1 PCIDMA接口 7.3.2 示例:發(fā)送網(wǎng)絡(luò)數(shù)據(jù)包 7.3.3 IA-64實(shí)現(xiàn) 7.4 設(shè)備中斷 7.4.1 IA-64硬件中斷架構(gòu) 7.4.2 設(shè)備中斷接口 7.4.3 中斷處理 7.4.4 管理IA-64中斷定向邏輯 7.5 小結(jié)第8章 對稱多處理 8.1 Linux中的多處理 8.2 Linux鎖定 8.2.1 鎖定規(guī)則 8.2.2 大內(nèi)核鎖 8.3 多處理機(jī)支持接口 8.3.1 支持實(shí)用工具 8.3.2 IA-64實(shí)現(xiàn) 8.4 CPU相關(guān)數(shù)據(jù) 8.4.1 錯誤共享 8.4.2 CPU相關(guān)數(shù)據(jù)的虛擬映射 8.5 掛鐘時間維護(hù) 8.5.1 多處理機(jī)中的掛鐘時間維護(hù) 8.5.2 同步MP機(jī)器上的周期計數(shù)器 8.6 小結(jié)第9章 系統(tǒng)性能 9.1 IA-64性能監(jiān)測單元概述 9.1.1 PMU寄存器組 9.1.2 控制監(jiān)測 9.1.3 處理計數(shù)器溢出 9.2 擴(kuò)展安騰PMU 9.2.1 安騰PMU的額外功能 9.2.2 安騰PMU寄存器組 9.2.3 安騰PMU事件 9.2.4 事件采樣的硬件支持 9.2.5 事件地址寄存器 9.2.6 分支追蹤緩沖區(qū) 9.2.7 其他特性 9.3 內(nèi)核性能監(jiān)測支持 9.3.1 perfmon接口 9.3.2 perfmon實(shí)現(xiàn) 9.3.3 perfmon接口應(yīng)用示例 9.4 小結(jié)第10 章 啟動 10.1 IA-64固件概述 10.1.1 處理器抽象層 10.1.2 系統(tǒng)抽象層 10.1.3 高級配置和電源接口 10.1.4 可擴(kuò)展固件接口 10.2 啟動裝載程序 10.2.1 裝載內(nèi)核映像 10.2.2 裝載初始RAM磁盤 10.2.3 裝載FPSWA 10.2.4 收集啟動參數(shù) 10.2.5 啟動內(nèi)核 10.3 內(nèi)核初始化 10.3.1 引導(dǎo)接口 10.3.2 IA-64實(shí)現(xiàn) 10.4 小結(jié)第11章 IA-32兼容性 11.1 對1A-32的架構(gòu)支持 11.1.1 IA-32用戶級機(jī)器狀態(tài) 11.1.2 IA-32用戶級機(jī)器狀態(tài)與IA-64寄存器之間的映射 11.1.3 IA-32分段與內(nèi)存尋址 11.1.4 IA-32與IA-64之間的控制權(quán)傳遞 11.2 Linux對IA-32應(yīng)用程序的支持 11.2.1 IA-32任務(wù)的內(nèi)核表示 11.2.2 模擬IA-32任務(wù)的地址空問 11.2.3 絕對文件系統(tǒng)路徑 11.2.4 啟動IA-32可執(zhí)行程序 11.2.5 系統(tǒng)調(diào)用模擬 11.2.6 信號傳遞 11.2.7 訪問I/O端口空間 11.3 小結(jié)附錄A IA-64 CPU模型附錄B 內(nèi)核寄存器用法附錄C IA-64指令 C.1 整數(shù)指令 C.2 內(nèi)存指令 C.3 信號量指令 c.4 分支指令 C.5 控制指令 C.6 多媒體指令 C.7 浮點(diǎn)指令 C.8 特權(quán)指令附錄D 安騰PMU事件附錄E 詞匯表參考文獻(xiàn)
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
IA-64 Linux內(nèi)核設(shè)計與實(shí)現(xiàn) PDF格式下載