注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)Linux深入分析Linux內(nèi)核源代碼

深入分析Linux內(nèi)核源代碼

深入分析Linux內(nèi)核源代碼

定 價(jià):¥54.00

作 者: 陳莉君編著
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: UNIX操作系統(tǒng)

購(gòu)買這本書可以去


ISBN: 9787115105257 出版時(shí)間: 2002-01-01 包裝: 平裝
開本: 26cm 頁(yè)數(shù): 548 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  自由軟件Linux 操作系統(tǒng)源代碼的開放,為我們掌握操作系統(tǒng)核心技術(shù)提供了良好的條件。本書共分13章,對(duì)Linux 內(nèi)核2.4版的源代碼進(jìn)行了較全面的分析,既包括對(duì)中斷機(jī)制、進(jìn)程調(diào)度、內(nèi)存管理、進(jìn)程間通信、虛擬文件系統(tǒng)、設(shè)備驅(qū)動(dòng)程序及網(wǎng)絡(luò)子系統(tǒng)的分析,也包括對(duì)Linux 整體結(jié)構(gòu)的把握、Linux的啟動(dòng)過程的分析及Linux獨(dú)具特色的模塊機(jī)制的分析與應(yīng)用等。其中重點(diǎn)剖析了Linux內(nèi)核中最基礎(chǔ)的部分:進(jìn)程管理、內(nèi)存管理及文件管理。本書對(duì)于那些準(zhǔn)備進(jìn)入Linux 操作系統(tǒng)內(nèi)部,閱讀Linux 內(nèi)核源代碼以及在內(nèi)核級(jí)進(jìn)行程序開發(fā)的讀者具有非常高的參考價(jià)值。同時(shí),操作系統(tǒng)實(shí)現(xiàn)者、系統(tǒng)程序員、Linux應(yīng)用開發(fā)人員、嵌入式系統(tǒng)開發(fā)人員、系統(tǒng)管理員、在校的大學(xué)生和研究生及對(duì)Linux感興趣的用戶均可在閱讀本書中受益。

作者簡(jiǎn)介

暫缺《深入分析Linux內(nèi)核源代碼》作者簡(jiǎn)介

圖書目錄

第一章 走進(jìn)Linux 
1.1 GNU與Linux的成長(zhǎng) 
1.2 Linux的開發(fā)模式和運(yùn)作機(jī)制 
1.3 走進(jìn)Linux內(nèi)核 
1.3.1 Linux內(nèi)核的特征 
1.3.2 Linux內(nèi)核版本的變化 
1.4 分析Linux內(nèi)核的意義 
1.4.1 開發(fā)適合自己的操作系統(tǒng) 
1.4.2 開發(fā)高水平軟件 
1.4.3 有助于計(jì)算機(jī)科學(xué)的教學(xué)和科研 
1.5 Linux內(nèi)核結(jié)構(gòu) 
1.5.1 Linux內(nèi)核在整個(gè)操作系統(tǒng)中的位置 
1.5.2 Linux內(nèi)核的作用 
1.5.3 Linux內(nèi)核的抽象結(jié)構(gòu) 
1.6 Linux內(nèi)核源代碼 
1.6.1 多版本的內(nèi)核源代碼 
1.6.2 Linux內(nèi)核源代碼的結(jié)構(gòu) 
1.6.3 從何處開始閱讀源代碼 
1.7 Linux內(nèi)核源代碼分析工具 
1.7.1 Linux超文本交叉代碼檢索工具 
1.7.2 Windows平臺(tái)下的源代碼閱讀工具(Source Insight) 
第二章 Linux運(yùn)行的硬件基礎(chǔ) 
2.1 i386的寄存器 
2.1.1 通用寄存器 
2.1.2 段寄存器 
2.1.3 狀態(tài)和控制寄存器 
2.1.4 系統(tǒng)地址寄存器 
2.1.5 調(diào)試寄存器和測(cè)試寄存器 
2.2 內(nèi)存地址 
2.3 段機(jī)制和描述符 
2.3.1 段機(jī)制 
2.3.2 描述符的概念 
2.3.3 系統(tǒng)段描述符 
2.3.4 描述符表 
2.3.5 選擇符與描述符表寄存器 
2.3.6 描述符投影寄存器 
2.3.7 Linux中的段 
2.4 分頁(yè)機(jī)制 
2.4.1 分頁(yè)機(jī)構(gòu) 
2.4.2 頁(yè)面高速緩存 
2.5 Linux中的分頁(yè)機(jī)制 
2.5.1 與頁(yè)相關(guān)的數(shù)據(jù)結(jié)構(gòu)及宏的定義 
2.5.2 對(duì)頁(yè)目錄及頁(yè)表的處理 
2.6 Linux中的匯編語言 
2.6.1 AT&T與Intel匯編語言的比較 
2.6.2 AT&T匯編語言的相關(guān)知識(shí) 
2.6.3 gcc嵌入式匯編 
2.6.4 Intel386匯編指令摘要 
第三章 中斷機(jī)制
3.1 中斷基本知識(shí)
3.1.1 中斷向量
3.1.2 外設(shè)可屏蔽中斷 
3.1.3 異常及非屏蔽中斷 
3.1.4 中斷描述符表 
3.1.5 相關(guān)匯編指令 
3.2 中斷描述符表的初始化
3.2.1 外部中斷向量的設(shè)置
3.2.2 中斷描述符表IDT的預(yù)初始化
3.2.3 中斷向量表的最終初始化
3.3 異常處理
3.3.1 在內(nèi)核棧中保存寄存器的值
3.3.2 中斷請(qǐng)求隊(duì)列的初始化
3.3.3 中斷請(qǐng)求隊(duì)列的數(shù)據(jù)結(jié)構(gòu)
3.4 中斷處理
3.4.1 中斷和異常處理的硬件處理。
3.4.2 Linux對(duì)中斷的處理 
3.4.3 與堆棧有關(guān)的常量、數(shù)據(jù)結(jié)構(gòu)及宏 
3.4.4 中斷處理程序的執(zhí)行 
3.4.5 從中斷返回 
3.5 中斷的后半部分處理機(jī)制
3.5.1 為什么把中斷分為兩部分來處理
3.5.2 實(shí)現(xiàn)機(jī)制 
3.5.3 數(shù)據(jù)結(jié)構(gòu)的定義 
3.5.4 軟中斷、bh及tasklet的初始化 
3.5.5 后半部分的執(zhí)行 
3.5.6 把bh移植到tasklet 
第四章 進(jìn)程描述
4.1 進(jìn)程和程序(Process and Program)
4.2 Linux中的進(jìn)程概述
4.3 task_struct結(jié)構(gòu)描述 
4.4 task_struct結(jié)構(gòu)在內(nèi)存中的存放 
4.4.1 進(jìn)程內(nèi)核棧 
4.4.2 當(dāng)前進(jìn)程(current宏) 
4.5 進(jìn)程組織方式 
4.5.1 哈希表 
4.5.2 雙向循環(huán)鏈表 
4.5.3 運(yùn)行隊(duì)列 
4.5.4 進(jìn)程的運(yùn)行隊(duì)列鏈表 
4.5.5 等待隊(duì)列 
4.6 內(nèi)核線程 
4.7 進(jìn)程的權(quán)能 
4.8 內(nèi)核同步 
4.8.1 信號(hào)量 
4.8.2 原子操作 
4.8.3 自旋鎖、讀寫自旋鎖和大讀者自旋鎖 
第五章 進(jìn)程調(diào)度與切換 
5.1 Linux時(shí)間系統(tǒng) 
5.1.1 時(shí)鐘硬件 
5.1.2 時(shí)鐘運(yùn)作機(jī)制 
5.1.3 Linux時(shí)間基準(zhǔn) 
5.1.4 Linux的時(shí)間系統(tǒng) 
5.2 時(shí)鐘中斷 
5.2.1 時(shí)鐘中斷的產(chǎn)生 
5.2.2 Linux實(shí)現(xiàn)時(shí)鐘中斷的全過程 
5.3 Linux的調(diào)度程序-Schedule() 
5.3.1 基本原理 
5.3.2 Linux進(jìn)程調(diào)度時(shí)機(jī) 
5.3.3 進(jìn)程調(diào)度的依據(jù) 
5.3.4 進(jìn)程可運(yùn)行程度的衡量 
5.3.5 進(jìn)程調(diào)度的實(shí)現(xiàn) 
5.4 進(jìn)程切換 
5.4.1 硬件支持 
5.4.2 進(jìn)程切換 
第六章 Linux內(nèi)存管理 
6.1 Linux的內(nèi)存管理概述 
6.1.1 Linux虛擬內(nèi)存的實(shí)現(xiàn)結(jié)構(gòu) 
6.1.2 內(nèi)核空間和用戶空間 
6.1.3 虛擬內(nèi)存實(shí)現(xiàn)機(jī)制間的關(guān)系 
6.2 Linux 內(nèi)存管理的初始化 
6.2.1 啟用分頁(yè)機(jī)制 
6.2.2 物理內(nèi)存的探測(cè) 
6.2.3 物理內(nèi)存的描述 
6.2.4 頁(yè)面管理機(jī)制的初步建立 
6.2.5 頁(yè)表的建立 
6.2.6 內(nèi)存管理區(qū) 
6.3 內(nèi)存的分配和回收 
6.3.1 伙伴算法 
6.3.2 物理頁(yè)面的分配和釋放 
6.3.3 Slab分配機(jī)制 
6.3.4 內(nèi)核空間非連續(xù)內(nèi)存區(qū)的管理 
6.4 地址映射機(jī)制 
6.4.1 描述虛擬空間的數(shù)據(jù)結(jié)構(gòu) 
6.4.2 進(jìn)程的虛擬空間 
6.4.3 內(nèi)存映射 
6.5 請(qǐng)頁(yè)機(jī)制 
6.5.1 頁(yè)故障的產(chǎn)生 
6.5.2 頁(yè)錯(cuò)誤的定位 
6.5.3 進(jìn)程地址空間中的缺頁(yè)異常處理 
6.5.4 請(qǐng)求調(diào)頁(yè) 
6.5.5 寫時(shí)復(fù)制 
6.5.6 對(duì)本節(jié)的幾點(diǎn)說明 
6.6 交換機(jī)制 
6.6.1 交換的基本原理 
6.6.2 頁(yè)面交換守護(hù)進(jìn)程kswapd 
6.6.3 交換空間的數(shù)據(jù)結(jié)構(gòu) 
6.6.4 交換空間的應(yīng)用 
6.7 緩存和刷新機(jī)制 
6.7.1 Linux使用的緩存 
6.7.2 緩沖區(qū)高速緩存 
6.7.3 翻譯后援存儲(chǔ)器(TLB) 
6.7.4 刷新機(jī)制 
6.8 進(jìn)程的創(chuàng)建和執(zhí)行 
6.8.1 進(jìn)程的創(chuàng)建 
6.8.2 程序執(zhí)行 
6.8.3 執(zhí)行函數(shù) 
第七章 進(jìn)程間通信 
7.1 管道 
7.1.1 Linux管道的實(shí)現(xiàn)機(jī)制 
7.1.2 管道的應(yīng)用 
7.1.3 命名管道CFIFOC 
7.2 信號(hào)(signal) 
7.2.1 信號(hào)種類 
7.2.2 信號(hào)掩碼 
7.2.3 系統(tǒng)調(diào)用 
7.2.4 典型系統(tǒng)調(diào)用的實(shí)現(xiàn) 
7.2.5 進(jìn)程與信號(hào)的關(guān)系 
7.2.6 信號(hào)舉例 
7.3 System V 的IPC機(jī)制 
7.3.1 信號(hào)量 
7.3.2 消息隊(duì)列 
7.3.3 共享內(nèi)存 
第八章 虛擬文件系統(tǒng) 
8.1 概述 
8.2 VFS中的數(shù)據(jù)結(jié)構(gòu) 
8.2.1 超級(jí)塊 
8.2.2 VFS的索引節(jié)點(diǎn) 
8.2.3 目錄項(xiàng)對(duì)象 
8.2.4 與進(jìn)程相關(guān)的文件結(jié)構(gòu) 
8.2.5 主要數(shù)據(jù)結(jié)構(gòu)間的關(guān)系 
8.2.6 有關(guān)操作的數(shù)據(jù)結(jié)構(gòu) 
8.3 高速緩存 
8.3.1 塊高速緩存 
8.3.2 索引節(jié)點(diǎn)高速緩存 
8.3.3 目錄高速緩存 
8.4 文件系統(tǒng)的注冊(cè)、安裝與卸載 
8.4.1 文件系統(tǒng)的注冊(cè) 
8.4.2 文件系統(tǒng)的安裝 
8.4.3 文件系統(tǒng)的卸載 
8.5 限額機(jī)制 
8.6 具體文件系統(tǒng)舉例 
8.6.1 管道文件系統(tǒng)pipefs 
8.6.2 磁盤文件系統(tǒng)BFS 
8.7 文件系統(tǒng)的系統(tǒng)調(diào)用 
8.7.1 open 系統(tǒng)調(diào)用 
8.7.2 read系統(tǒng)調(diào)用 
8.7.3 fcntl 系統(tǒng)調(diào)用 
8.8 Linux 2.4文件系統(tǒng)的移植問題 
第九章 Ext2文件系統(tǒng) 
9.1 基本概念 
9.2 Ext2的磁盤布局和數(shù)據(jù)結(jié)構(gòu) 
9.2.1 Ext2的磁盤布局 
9.2.2 Ext2的超級(jí)塊 
9.2.3 Ext2的索引節(jié)點(diǎn) 
9.2.4 組描述符 
9.2.5 位圖 
9.2.6 索引節(jié)點(diǎn)表及實(shí)例分析 
9.2.7 Ext2的目錄項(xiàng)及文件的定位 
9.3 文件的訪問權(quán)限和安全 
9.4 鏈接文件 
9.5 分配策略 
9.5.1 數(shù)據(jù)塊尋址 
9.5.2 文件的洞 
9.5.3 分配一個(gè)數(shù)據(jù)塊 
第十章 模塊機(jī)制 
10.1 概述 
10.1.1 什么是模塊 
10.1.2 為什么要使用模塊? 
10.1.3 Linux 內(nèi)核模塊的優(yōu)缺點(diǎn) 
10.2 實(shí)現(xiàn)機(jī)制 
10.2.1 數(shù)據(jù)結(jié)構(gòu) 
10.2.2 實(shí)現(xiàn)機(jī)制的分析 
10.3 模塊的裝入和卸載 
10.3.1 實(shí)現(xiàn)機(jī)制 
10.3.2 如何插入和卸載模塊 
10.4 內(nèi)核版本 
10.4.1 內(nèi)核版本與模塊版本的兼容性 
10.4.2 從版本2.0到2.2內(nèi)核API的變化 
10.4.3 把內(nèi)核2.2移植到內(nèi)核2.4 
10.5 編寫內(nèi)核模塊 
10.5.1 簡(jiǎn)單內(nèi)核模塊的編寫 
10.5.2 內(nèi)核模塊的Makefiles文件 
10.5.3 內(nèi)核模塊的多個(gè)文件 
第十一章 設(shè)備驅(qū)動(dòng)程序 
11.1 概述 
11.1.1 I/O軟件 
11.1.2 設(shè)備驅(qū)動(dòng)程序 
11.2 設(shè)備驅(qū)動(dòng)基礎(chǔ) 
11.2.1 I/O端口 
11.2.2 I/O接口及設(shè)備控制器 
11.2.3 設(shè)備文件 
11.2.4 VFS對(duì)設(shè)備文件的處理 
11.2.5 中斷處理 
11.2.6 驅(qū)動(dòng)DMA工作 
11.2.7 I/O空間的映射 
11.2.8 設(shè)備驅(qū)動(dòng)程序框架 
11.3 塊設(shè)備驅(qū)動(dòng)程序 
11.3.1 塊設(shè)備驅(qū)動(dòng)程序的注冊(cè) 
11.3.2 塊設(shè)備基于緩沖區(qū)的數(shù)據(jù)交換 
11.3.3 塊設(shè)備驅(qū)動(dòng)程序的幾個(gè)函數(shù) 
11.3.4 RAM 盤驅(qū)動(dòng)程序的實(shí)現(xiàn) 
11.3.5 硬盤驅(qū)動(dòng)程序的實(shí)現(xiàn) 
11.4 字符設(shè)備驅(qū)動(dòng)程序 
11.4.1 簡(jiǎn)單字符設(shè)備驅(qū)動(dòng)程序 
11.4.2 字符設(shè)備驅(qū)動(dòng)程序的注冊(cè) 
11.4.3 一個(gè)字符設(shè)備驅(qū)動(dòng)程序的實(shí)例 
11.4.4 驅(qū)動(dòng)程序的編譯與裝載 
第十二章 網(wǎng)絡(luò) 
12.1 概述 
12.2 網(wǎng)絡(luò)協(xié)議 
12.2.1 網(wǎng)絡(luò)參考模型 
12.2.2 TCP/IP 協(xié)議工作原理及數(shù)據(jù)流 
12.2.3 Internet 協(xié)議 
12.2.4 TCP協(xié)議 
12.3 套接字(socket) 
12.3.1 套接字在網(wǎng)絡(luò)中的地位和作用 
12.3.2 套接字接口的種類 
12.3.3 套接字的工作原理 
12.3.4 socket 的通信過程 
12.3.5 socket為用戶提供的系統(tǒng)調(diào)用 
12.4 套接字緩沖區(qū)(sk_buff) 
12.4.1 套接字緩沖區(qū)的特點(diǎn) 
12.4.2 套接字緩沖區(qū)操作基本原理 
12.4.3 sk_buff數(shù)據(jù)結(jié)構(gòu)的核心內(nèi)容 
12.4.4 套接字緩沖區(qū)提供的函數(shù) 
12.4.5 套接字緩沖區(qū)的上層支持例程 
12.5 網(wǎng)絡(luò)設(shè)備接口 
12.5.1 基本結(jié)構(gòu) 
12.5.2 命名規(guī)則 
12.5.3 設(shè)備注冊(cè) 
12.5.4 網(wǎng)絡(luò)設(shè)備數(shù)據(jù)結(jié)構(gòu) 
12.5.5 支持函數(shù) 
第十三章 Linux啟動(dòng)系統(tǒng) 
13.1 初始化流程 
13.1.1 系統(tǒng)加電或復(fù)位 
13.1.2 BIOS啟動(dòng) 
13.1.3 Boot Loader 
13.1.4 操作系統(tǒng)的初始化 
13.2 初始化的任務(wù) 
13.2.1 處理器對(duì)初始化的影響 
13.2.2 其他硬件設(shè)備對(duì)處理器的影響 
13.3 Linux的Boot Loader 
13.3.1 軟盤的結(jié)構(gòu) 
13.3.2 硬盤的結(jié)構(gòu) 
13.3.3 Boot Loader 
13.3.4 LILO 
13.3.5 LILO的運(yùn)行分析 
13.4 進(jìn)入操作系統(tǒng) 
13.4.1 Setup.S 
13.4.2 Head.S 
13.5 main.c中的初始化 
13.6 建立init進(jìn)程 
13.6.1 init進(jìn)程的建立 
13.6.2 啟動(dòng)所需的Shell腳本文件 
附錄A Linux內(nèi)核API 
附錄B 在線文檔 
參考文獻(xiàn)

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)