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

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

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

定 價:¥54.00

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

購買這本書可以去


ISBN: 9787115105257 出版時間: 2002-01-01 包裝: 平裝
開本: 26cm 頁數(shù): 548 字數(shù):  

內(nèi)容簡介

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

作者簡介

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

圖書目錄

第一章 走進Linux 
1.1 GNU與Linux的成長 
1.2 Linux的開發(fā)模式和運作機制 
1.3 走進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 有助于計算機科學的教學和科研 
1.5 Linux內(nèi)核結(jié)構(gòu) 
1.5.1 Linux內(nèi)核在整個操作系統(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平臺下的源代碼閱讀工具(Source Insight) 
第二章 Linux運行的硬件基礎(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)試寄存器和測試寄存器 
2.2 內(nèi)存地址 
2.3 段機制和描述符 
2.3.1 段機制 
2.3.2 描述符的概念 
2.3.3 系統(tǒng)段描述符 
2.3.4 描述符表 
2.3.5 選擇符與描述符表寄存器 
2.3.6 描述符投影寄存器 
2.3.7 Linux中的段 
2.4 分頁機制 
2.4.1 分頁機構(gòu) 
2.4.2 頁面高速緩存 
2.5 Linux中的分頁機制 
2.5.1 與頁相關(guān)的數(shù)據(jù)結(jié)構(gòu)及宏的定義 
2.5.2 對頁目錄及頁表的處理 
2.6 Linux中的匯編語言 
2.6.1 AT&T與Intel匯編語言的比較 
2.6.2 AT&T匯編語言的相關(guān)知識 
2.6.3 gcc嵌入式匯編 
2.6.4 Intel386匯編指令摘要 
第三章 中斷機制
3.1 中斷基本知識
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 中斷請求隊列的初始化
3.3.3 中斷請求隊列的數(shù)據(jù)結(jié)構(gòu)
3.4 中斷處理
3.4.1 中斷和異常處理的硬件處理。
3.4.2 Linux對中斷的處理 
3.4.3 與堆棧有關(guān)的常量、數(shù)據(jù)結(jié)構(gòu)及宏 
3.4.4 中斷處理程序的執(zhí)行 
3.4.5 從中斷返回 
3.5 中斷的后半部分處理機制
3.5.1 為什么把中斷分為兩部分來處理
3.5.2 實現(xiàn)機制 
3.5.3 數(shù)據(jù)結(jié)構(gòu)的定義 
3.5.4 軟中斷、bh及tasklet的初始化 
3.5.5 后半部分的執(zhí)行 
3.5.6 把bh移植到tasklet 
第四章 進程描述
4.1 進程和程序(Process and Program)
4.2 Linux中的進程概述
4.3 task_struct結(jié)構(gòu)描述 
4.4 task_struct結(jié)構(gòu)在內(nèi)存中的存放 
4.4.1 進程內(nèi)核棧 
4.4.2 當前進程(current宏) 
4.5 進程組織方式 
4.5.1 哈希表 
4.5.2 雙向循環(huán)鏈表 
4.5.3 運行隊列 
4.5.4 進程的運行隊列鏈表 
4.5.5 等待隊列 
4.6 內(nèi)核線程 
4.7 進程的權(quán)能 
4.8 內(nèi)核同步 
4.8.1 信號量 
4.8.2 原子操作 
4.8.3 自旋鎖、讀寫自旋鎖和大讀者自旋鎖 
第五章 進程調(diào)度與切換 
5.1 Linux時間系統(tǒng) 
5.1.1 時鐘硬件 
5.1.2 時鐘運作機制 
5.1.3 Linux時間基準 
5.1.4 Linux的時間系統(tǒng) 
5.2 時鐘中斷 
5.2.1 時鐘中斷的產(chǎn)生 
5.2.2 Linux實現(xiàn)時鐘中斷的全過程 
5.3 Linux的調(diào)度程序-Schedule() 
5.3.1 基本原理 
5.3.2 Linux進程調(diào)度時機 
5.3.3 進程調(diào)度的依據(jù) 
5.3.4 進程可運行程度的衡量 
5.3.5 進程調(diào)度的實現(xiàn) 
5.4 進程切換 
5.4.1 硬件支持 
5.4.2 進程切換 
第六章 Linux內(nèi)存管理 
6.1 Linux的內(nèi)存管理概述 
6.1.1 Linux虛擬內(nèi)存的實現(xiàn)結(jié)構(gòu) 
6.1.2 內(nèi)核空間和用戶空間 
6.1.3 虛擬內(nèi)存實現(xiàn)機制間的關(guān)系 
6.2 Linux 內(nèi)存管理的初始化 
6.2.1 啟用分頁機制 
6.2.2 物理內(nèi)存的探測 
6.2.3 物理內(nèi)存的描述 
6.2.4 頁面管理機制的初步建立 
6.2.5 頁表的建立 
6.2.6 內(nèi)存管理區(qū) 
6.3 內(nèi)存的分配和回收 
6.3.1 伙伴算法 
6.3.2 物理頁面的分配和釋放 
6.3.3 Slab分配機制 
6.3.4 內(nèi)核空間非連續(xù)內(nèi)存區(qū)的管理 
6.4 地址映射機制 
6.4.1 描述虛擬空間的數(shù)據(jù)結(jié)構(gòu) 
6.4.2 進程的虛擬空間 
6.4.3 內(nèi)存映射 
6.5 請頁機制 
6.5.1 頁故障的產(chǎn)生 
6.5.2 頁錯誤的定位 
6.5.3 進程地址空間中的缺頁異常處理 
6.5.4 請求調(diào)頁 
6.5.5 寫時復(fù)制 
6.5.6 對本節(jié)的幾點說明 
6.6 交換機制 
6.6.1 交換的基本原理 
6.6.2 頁面交換守護進程kswapd 
6.6.3 交換空間的數(shù)據(jù)結(jié)構(gòu) 
6.6.4 交換空間的應(yīng)用 
6.7 緩存和刷新機制 
6.7.1 Linux使用的緩存 
6.7.2 緩沖區(qū)高速緩存 
6.7.3 翻譯后援存儲器(TLB) 
6.7.4 刷新機制 
6.8 進程的創(chuàng)建和執(zhí)行 
6.8.1 進程的創(chuàng)建 
6.8.2 程序執(zhí)行 
6.8.3 執(zhí)行函數(shù) 
第七章 進程間通信 
7.1 管道 
7.1.1 Linux管道的實現(xiàn)機制 
7.1.2 管道的應(yīng)用 
7.1.3 命名管道CFIFOC 
7.2 信號(signal) 
7.2.1 信號種類 
7.2.2 信號掩碼 
7.2.3 系統(tǒng)調(diào)用 
7.2.4 典型系統(tǒng)調(diào)用的實現(xiàn) 
7.2.5 進程與信號的關(guān)系 
7.2.6 信號舉例 
7.3 System V 的IPC機制 
7.3.1 信號量 
7.3.2 消息隊列 
7.3.3 共享內(nèi)存 
第八章 虛擬文件系統(tǒng) 
8.1 概述 
8.2 VFS中的數(shù)據(jù)結(jié)構(gòu) 
8.2.1 超級塊 
8.2.2 VFS的索引節(jié)點 
8.2.3 目錄項對象 
8.2.4 與進程相關(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é)點高速緩存 
8.3.3 目錄高速緩存 
8.4 文件系統(tǒng)的注冊、安裝與卸載 
8.4.1 文件系統(tǒng)的注冊 
8.4.2 文件系統(tǒng)的安裝 
8.4.3 文件系統(tǒng)的卸載 
8.5 限額機制 
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的超級塊 
9.2.3 Ext2的索引節(jié)點 
9.2.4 組描述符 
9.2.5 位圖 
9.2.6 索引節(jié)點表及實例分析 
9.2.7 Ext2的目錄項及文件的定位 
9.3 文件的訪問權(quán)限和安全 
9.4 鏈接文件 
9.5 分配策略 
9.5.1 數(shù)據(jù)塊尋址 
9.5.2 文件的洞 
9.5.3 分配一個數(shù)據(jù)塊 
第十章 模塊機制 
10.1 概述 
10.1.1 什么是模塊 
10.1.2 為什么要使用模塊? 
10.1.3 Linux 內(nèi)核模塊的優(yōu)缺點 
10.2 實現(xiàn)機制 
10.2.1 數(shù)據(jù)結(jié)構(gòu) 
10.2.2 實現(xiàn)機制的分析 
10.3 模塊的裝入和卸載 
10.3.1 實現(xiàn)機制 
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 簡單內(nèi)核模塊的編寫 
10.5.2 內(nèi)核模塊的Makefiles文件 
10.5.3 內(nèi)核模塊的多個文件 
第十一章 設(shè)備驅(qū)動程序 
11.1 概述 
11.1.1 I/O軟件 
11.1.2 設(shè)備驅(qū)動程序 
11.2 設(shè)備驅(qū)動基礎(chǔ) 
11.2.1 I/O端口 
11.2.2 I/O接口及設(shè)備控制器 
11.2.3 設(shè)備文件 
11.2.4 VFS對設(shè)備文件的處理 
11.2.5 中斷處理 
11.2.6 驅(qū)動DMA工作 
11.2.7 I/O空間的映射 
11.2.8 設(shè)備驅(qū)動程序框架 
11.3 塊設(shè)備驅(qū)動程序 
11.3.1 塊設(shè)備驅(qū)動程序的注冊 
11.3.2 塊設(shè)備基于緩沖區(qū)的數(shù)據(jù)交換 
11.3.3 塊設(shè)備驅(qū)動程序的幾個函數(shù) 
11.3.4 RAM 盤驅(qū)動程序的實現(xiàn) 
11.3.5 硬盤驅(qū)動程序的實現(xiàn) 
11.4 字符設(shè)備驅(qū)動程序 
11.4.1 簡單字符設(shè)備驅(qū)動程序 
11.4.2 字符設(shè)備驅(qū)動程序的注冊 
11.4.3 一個字符設(shè)備驅(qū)動程序的實例 
11.4.4 驅(qū)動程序的編譯與裝載 
第十二章 網(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ū)的特點 
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è)備注冊 
12.5.4 網(wǎng)絡(luò)設(shè)備數(shù)據(jù)結(jié)構(gòu) 
12.5.5 支持函數(shù) 
第十三章 Linux啟動系統(tǒng) 
13.1 初始化流程 
13.1.1 系統(tǒng)加電或復(fù)位 
13.1.2 BIOS啟動 
13.1.3 Boot Loader 
13.1.4 操作系統(tǒng)的初始化 
13.2 初始化的任務(wù) 
13.2.1 處理器對初始化的影響 
13.2.2 其他硬件設(shè)備對處理器的影響 
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的運行分析 
13.4 進入操作系統(tǒng) 
13.4.1 Setup.S 
13.4.2 Head.S 
13.5 main.c中的初始化 
13.6 建立init進程 
13.6.1 init進程的建立 
13.6.2 啟動所需的Shell腳本文件 
附錄A Linux內(nèi)核API 
附錄B 在線文檔 
參考文獻

本目錄推薦

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