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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux学习参考书

發布時間:2025/3/15 linux 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux学习参考书 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

參考書目錄

1、《Linux內核設計與實現》

2、《深入理解Linux內核》

3、《Linux設備驅動程序》

4、《深入理解Linux虛擬內存管理》

5、《深入理解Linux網絡技術內幕》

?

《Linux內核設計與實現》? 英文版從入門開始,介紹諸如進程管理、系統調用、中斷和中斷處理程序、內核同步、時間管理、內存管理、地址空間、調試技術等方面,內容比較淺顯易懂,個人認為是內核新人首先必讀的書籍。

目錄
譯者序
序言
前言
第1章 linux內核簡介
1.1 追尋linus的足跡:linux簡介
1.2 操作系統和內核簡介
1.3 linux內核和傳統unix內核的比較
1.4 linux內核版本
1.5 linux內核開發者社區
1.6 小結
第2章 從內核出發
2.1 獲取內核源碼
2.1.1 安裝內核源代碼
2.1.2 使用補丁
2.2 內核源碼樹
2.3 編譯內核
2.3.1 減少編譯的垃圾信息
2.3.2 衍生多個編譯作業
2.3.3 安裝內核
2.4 內核開發的特點
2.4.1 沒有libc庫
2.4.2 gnu c
2.4.3 沒有內存保護機制
2.4.4 不要輕易在內核中使用浮點數
2.4.5 容積小而固定的棧
2.4.6 同步和并發
2.4.7 可移植性的重要性
2.5 小結
第3章 進程管理
3.1 進程描述符及任務結構
3.1.1 分配進程描述符
3.1.2 進程描述符的存放
3.1.3 進程狀態
3.1.4 設置當前進程狀態
3.1.5 進程上下文
3.1.6 進程家族樹
3.2 進程創建
3.2.1 寫時拷貝
3.2.2 fork()
3.2.3 vfork()
3.3 線程在linux中的實現
3.4 進程終結
3.4.1 刪除進程描述符
3.4.2 孤兒進程造成的進退維谷
3.5 進程小結
第4章 進程調度
4.1 策略
4.1.1 i/o消耗型和處理器消耗型的進程
4.1.2 進程優先級
4.1.3 時間片
4.1.4 進程搶占
4.1.5 調度策略的活動
4.2 linux調度算法
4.2.1 可執行隊列
4.2.2 優先級數組
4.2.3 重新計算時間片
4.2.4 schedule()
4.2.5 計算優先級和時間片
4.2.6 睡眠和喚醒
4.2.7 負載平衡程序
4.3 搶占和上下文切換
4.3.1 用戶搶占
4.3.2 內核搶占
4.4 實時
4.5 與調度相關的系統調用
4.5.1 與調度策略和優先級相關的系統調用
4.5.2 與處理器綁定有關的系統調用
4.5.3 放棄處理器時間
4.6 調度程序小結
第5章 系統調用
5.1 api、posix和c庫
5.2 系統調用
5.2.1 系統調用號
5.1.2 系統調用的性能
5.3 系統調用處理程序
5.3.1 指定恰當的系統調用
5.3.2 參數傳遞
5.4 系統調用的實現
5.5 系統調用上下文
5.5.1 綁定一個系統調用的最后步驟
5.5.2 從用戶空間訪問系統調用
5.5.3 為什么不通過系統調用的方式實現
5.6 系統調用小結
第6章 中斷和中斷處理程序
6.1 中斷
6.2 中斷處理程序
6.3 注冊中斷處理程序
6.4 編寫中斷處理程序
6.4.1 共享的中斷處理程序
6.4.2 中斷處理程序實例
6.5 中斷上下文
6.6 中斷處理機制的實現
6.7 中斷控制
6.7.1 禁止和激活中斷
6.7.2 禁止指定中斷線
6.7.3 中斷系統的狀態
6.8 別打斷我,馬上結束
第7章 下半部和推后執行的工作
7.1 下半部
7.1.1 為什么要用下半部
7.1.1 下半部的環境
7.2 軟中斷
7.2.1 軟中斷的實現
7.2.2 使用軟中斷
7.3 tasklet
7.3.1 tasklet的實現
7.3.2 使用tasklet
7.3.3 ksofiirqd
7.3.4 老的bh機制
7.4 工作隊列
7.4.1 工作隊列的實現
7.4.2 使用工作隊列
7.4.3 老的任務隊列機制
7.5 下半部機制的選擇
7.6 在下半部之間加鎖
7.7 下半部處理小結
第8章 內核同步介紹
8.1 臨界區和競爭條件
8.2 加鎖
8.2.1 到底是什么造成了并發執行
8.2.2 要保護些什么
8.3 死鎖
8.4 爭用和擴展性
8.5 小結
第9章 內核同步方法
9.1 原子操作
9.1.1 原子整數操作
9.1.2 原子位操作
9.2 自旋銷
9.2.1 其他針對自旋鎖的操作
9.2.2 自旋銷和下半部
9.3 讀一寫自旋銷
9.4 信號量
9.4.1 創建和初始化信號量
9.4.2 使用信號量
9.5 讀—寫信號量
9.6 自旋鎖與信號量
9.7 完成變量
9.8 bkl..
9.9 禁止搶占
9.10 順序和屏障
9.11 小結
第10章 定時器和時間管理
10.1 內核中的時間概念
10.2 節拍率:hz
10.3 jiffies
10.3.1 jiffies的內部表示
10.3.2 jiffies的回繞
10.3.3 用戶空間和hz
10.4 硬時鐘和定時器
10.4.1 實時時鐘
10.4.2 系統定時器
10.5 時鐘中斷處理程序
10.6 實際時間
10.7 定時器
10.7.1 使用定時器
10.7.2 定時器競爭條件
10.7.3 實現定時器
10.8 延遲執行
10.8.1 忙等待
10.8.2 短延遲
10.8.3 schedule_timeout()
10.8.4 設置超時時間,在等待隊列上睡眠
10.9 小結
第11章 內存管理
11.1 頁
11.2 區
11.3 獲得頁
11.3.1 獲得填充為0的頁
11.3.2 釋放頁
11.4 kmalloc()
11.4.1 gfp_mask標志
11.4.2 kfree()
11.5 vmalloc()
11.6 slab層
11.7 slab分配器的接口
11.8 在棧上的靜態分配
11.9 高端內存的映射
11.9.1 永久映射
11.9.2 臨時映射
11.10 每個cpu的分配
11.11 新的每個cpu接口
11.11.1 編譯時的每個cpu數據
11.11.2 運行時的每個cpu數據
11.12 使用每個cpu數據的原因
11.13 分配函數的選擇
第12章 虛擬文件系統
12.1 通用文件系統接口
12.1 文件系統抽象層
12.3 unix文件系統
12.4 vfs對象及其數據結構
12.5 超級塊對象
12.6 索引節點對象
12.7 目錄項對象
12.7.1 目錄項狀態
12.7.2 目錄項緩存
12.7.3 目錄項操作
12.8 文件對象
12.9 和文件系統相關的數據結構
12.10 和進程相關的數據結構
12.11 linux中的文件系統
第13章 塊i/o層
13.1 解剖一個塊設備
13.2 緩沖區和緩沖區頭
13.3 bio結構體
13.4 請求隊列
19.5 i/o調度程序
13.5.1 i/0調度程序的工作
13.5.2 linus電梯
13.5.3 最終期限i/o調度程序
13.5.4 預測i/0調度程序
13.5.5 完全公正的排隊i/0調度程序
13.5.6 空操作的i/o調度程序
13.5.7 i/o調度程序的選擇
13.6 小結
第14章 進程地址空間
14.1 內存描述符
14.1.1 分配內存描述符
14.1.2 銷毀內存描述符
14.1.3 mm_struct與內核線程
14.2 內存區域
14.2.1 vma標志
14.2.2 vma操作
14.2.3 內存區域的樹型結構和內存區域的鏈表結構
14.2.4 實際使用中的內存區域
14.3 操作內存區域
14.3.1 find_vma()
14.3.2 find_vma_prev()
14.3.3 find vma_intersection()
14.4 mmap()和do_mmap():創建地址區間
14.5 munmap()和do_munmap():刪除地址區間
14.6 頁表
14.7 小結
第15章 頁高速緩存和頁回寫
15.1 頁高速緩存
15.2 基樹
15.3 緩沖區高速緩存
15.4 pdfiush后臺例程
15.4.1 膝上型電腦模式
15.4.2 bdflush和kupdated
15.4.3 避免擁塞的方法:使用多線程
15.5 小結
第16章 模塊
16.1 構建模塊
16.1.1 放在內核源代碼樹中
16.1.2 放在內核代碼外
16.2 安裝模塊
16.3 產生模塊依賴性
16.4 載入模塊
16.5 管理配置選項
16.6 模塊參數
16.7 導出符號表
16.8 小結
第17章 kobject與sysfs
17.1 kobject
17.2 ktype
17.3 kset
17.4 subsystem
17.5 別混淆了這些結構體
17.6 管理和操作kobject
17.7 引用計數
17.8 sysfs
17.8.1 sysfs中添加和刪除kobject
17.8.2 向sysfs中添加文件
17.9 內核事件層
17.10 小結
第18章 調試
18.1 調試前需要準備什么
18.2 內核中的bug
18.3 printk()
18.3.1 printk()函數的健壯性
18.3.2 記錄等級
18.3.3 記錄緩沖區
18.3.4 syslogd和klogd
18.3.5 printk()和內核開發時需要留意的一點
18.4 oops
18.4.1 ksymoops
18.4.2 kallsyms
18.5 內核調試配置選項
18.6 引發bug并打印信息
18.7 神奇的sysrq
18.8 內核調試器的傳奇
18.8.1 gdb
18.8.2 kgdb
18.8.3 kdb
18.9 刺探系統
18.9.1 用uid作為選擇條件
18.9.2 使用條件變量
18.9.3 使用統計量
18.9.4 重復頻率限制
18.10 用二分查找法找出引發災難的變更
18.11 當所有的努力都失敗時
第19章 可移植性
19.1 linux的可移植性
19.2 字長和數據類型
19.2.1 不透明類型
19.2.2 指定數據類型
19.2.3 長度明確的類型
19.2.4 char型的符號問題
19.3 數據對齊
19.3.1 避免對齊引發的問題
19.3.2 非標準類型的對齊
19.3.3 結構體填補
19.4 字節順序
19.4.1 高位優先和低位優先的歷史
19.4.2 內核中的字節順序
19.5 時間
19.6 頁長度
19.7 處理器排序
19.8 smp、內核搶占、高端內存
19.9 小結
第20章 補丁、開發和社區
20.1 社區
20.2 linux編碼風格
20.2.1 縮進
20.2.2 括號
20.2.3 每行代碼的長度
20.2.4 命名規范
20.2.5 函數
20.2.6 注釋
20.2.7 typedef
20.2.8 多用現成的東西
20.2.9 在源碼中不要使用ifdef
20.2.10 結構初始化
20.2.11 代碼的事后修正
20.3 管理系統
20.4 提交錯誤報告
20.5 創建補丁
20.6 提交補丁
20.7 小結
附錄a 鏈表...
附錄b 內核隨機數產生器
附錄c 復雜度算法
參考資料

?

《深入理解Linux內核》 英文2版? 英文3版內容深入全面。

目錄

前言
第一章 緒論
第二章 內存尋址
第三章 進程
第四章 中斷和異常
第五章 內核同步
第六章 定時測量
第七章 進程調度
第八章 內存管理
第九章 進程地址空間
第十章 系統調用
第十一章 信號
第十二章 虛擬文件系統
第十三章 I/O體系結構和設備驅動程序
第十四章 塊設備驅動程序
第十五章 頁高速緩存
第十六章 訪問文件
第十七章 回收頁框
第十八章 Ext2和Ext3文件系統
第十九章 進程通信
第二十章 程序的執行
附錄一 系統啟動
附錄二 模塊
參考文獻
源代碼索引

?

?

《Linux設備驅動程序》??英文版驅動開發者人手一本。

目錄
前言
第一章 設備驅動程序簡介
??? 設備驅動程序的作用
??? 內核功能劃分
??? 設備和模塊的分類
??? 安全問題
??? 版本編號
??? 許可證條款
??? 加入內核開發社團
??? 本書概要
第二章 構造和運行模塊
??? 設置測試系統
??? Hello World模塊
??? 核心模塊與應用程序的對比
??? 編譯和裝載????????????????????????????????
??? 前言
??? 第一章 設備驅動程序簡介
??? 設備驅動程序的作用
??? 內核功能劃分
??? 設備和模塊的分類
??? 安全問題
??? 版本編號
??? 許可證條款
??? 加入內核開發社團
??? 本書概要
第二章 構造和運行模塊
??? 設置測試系統
??? Hello World模塊
??? 核心模塊與應用程序的對比
??? 編譯和裝載
??? 內核符號表
??? 預備知識
??? 初始化和關閉
??? 模塊參數
??? 在用戶空間編寫驅動程序
??? 快速參考
第三章 字符設備驅動程序
??? scull的設計
??? 主設備號和次設備號
??? 一些重要的數據結構
??? 字符設備的注冊
??? open和release
??? scull的內存使用
??? read和write
??? 試試新設備
??? 快速參考
第四章 調試技術
??? 內核中的調試支持
??? 通過打印調試
??? 通過查詢調試
??? 通過監視調試
??? 調試系統故障
??? 調試器和相關工具
第五章 并發和競態
??? scull的缺陷
??? 并發及其管理
??? 信號量和互斥體
??? completion
??? 自旋鎖
??? 鎖陷阱
??? 除了鎖之外的辦法
??? 快速參考
第六章 高級字符驅動程序操作
??? ioctl
??? 阻塞型I/O
??? poll和select
??? 異步通知
??? 定位設備
??? 設備文件的訪問控制
??? 快速參考
第七章 時間、延遲及延緩操作
??? 度量時間差
??? 獲取當前時間
??? 延遲執行
??? 內核定時器
??? tasklet
??? 工作隊列
??? 快速參考
第八章 分配內存
??? kmalloc函數的內幕
??? 后備高速緩存
??? get_free_page和相關函數
??? vmalloc及其輔助函數
??? per-CPU變量
??? 獲取大的緩沖區
??? 快速參考
第九章 與硬件通信
??? I/O端口和I/O內存
??? 使用I/O端口
??? I/O端口示例
??? 使用I/O內存
??? 快速參考
第十章 中斷處理
??? 準備并口
??? 安裝中斷處理例程
??? 實現中斷處理例程
??? 頂半部和底半部
??? 中斷共享
??? 中斷驅動的I/O
??? 快速參考
第十一章 內核的數據類型
??? 使用標準C語言類型
??? 為數據項分配確定的空間大小
??? 接口特定的類型
??? 其他有關移植性的問題
??? 鏈表
??? 快速參考
第十二章 PCI驅動程序
??? PCI接口
??? ISA回顧
??? PC/104和PC/104+
??? 其他的PC總線
??? SBus
??? NuBus
??? 外部總線
??? 快速參考
第十三章 USB驅動程序
??? USB設備基礎
??? USB和Sysfs
??? USB urb
??? 編寫USB驅動程序
??? 不使用urb的USB傳輸
??? 快速參考
第十四章 Linux設備模型
??? kobject、kset和子系統
??? 低層sysfs操作
??? 熱插拔事件的產生
??? 總線、設備和驅動程序
??? 類
??? 各環節的整合
??? 熱插拔
??? 處理固件
??? 快速索引
第十五章 內存映射和DMA
??? Linux的內存管理
??? mmap設備操作
??? 執行直接I/O訪問
??? 直接內存訪問
??? 快速參考
第十六章 塊設備驅動程序
??? 注冊
??? 塊設備操作
??? 請求處理
??? 其他一些細節
??? 快速參考
第十七章 網絡驅動程序
??? snull設計
??? 連接到內核
??? net_device結構細節
??? 打開和關閉
??? 數據包傳輸
??? 數據包的接收
??? 中斷處理例程
??? 不使用接收中斷
??? 鏈路狀態的改變
??? 套接字緩沖區
??? MAC 地址解析
??? 定制 ioctl 命令
??? 統計信息
??? 組播
??? 其他知識點詳解
??? 快速參考
第十八章 TTY驅動程序
??? 小型TTY驅動程序
??? tty_driver函數指針
??? TTY線路設置
??? ioctls
??? proc和sysfs對TTY設備的處理
??? tty_driver結構詳解
??? tty_operations結構詳解
??? tty_struct結構詳解
??? 快速參考
參考書目

?

?

《深入理解Linux虛擬內存管理》? 介紹Linux虛擬內存管理機制。如果你希望深入的研究Linux的內存管理子系統,仔細的研讀這本書無疑是最好的選擇。

目錄
第1章簡介
??? 1.1 開始啟程
??? 1.2 管理源碼
??? 1.3 瀏覽代碼
??? 1.4 閱讀代碼
??? 1.5 提交補丁
第2章描述物理內存
??? 2.1 節點
??? 2.2 管理區
??? 2.3 管理區初始化
??? 2.4 初始化mem_map
??? 2.5 頁面
??? 2.6 頁面映射到管理區
??? 2.7 高端內存
??? 2.8 2.6中有哪些新特性
第3章頁表管理
??? 3.1描述頁目錄
??? 3.2描述頁表項
??? 3.3頁表項的使用
??? 3.4頁表項的轉換和設置
??? 3.5頁表的分配和釋放
??? 3.6內核頁表
??? 3.7地址和structpage之間的映射
??? 3.8轉換后援緩沖區(tlb)
??? 3.9一級cpu高速緩存管理
??? 3.102.6中有哪些新特性
第4章進程地址空間
??? 4.1線性地址空間
??? 4.2地址空間的管理
??? 4.3進程地址空間描述符
??? 4.4內存區域
??? 4.5異常處理
??? 4.6缺頁中斷
??? 4.7復制到用戶空間/從用戶空間復制
??? 4.82.6中有哪些新特性
第5章引導內存分配器
??? 5.1表示引導內存映射
??? 5.2初始化引導內存分配器
??? 5.3初始化bootmem_data
??? 5.4分配內存
??? 5.5釋放內存
??? 5.6銷毀引導內存分配器
??? 5.72.6中有哪些新特性
第6章物理頁面分析
??? 6.1管理空閑塊
??? 6.2分配頁面
??? 6.3釋放頁面
??? 6.4獲得空閑頁面(gfp)標志位
??? 6.5進程標志位
??? 6.6防止碎片
??? 6.72.6中有哪些新特性
第7章非連續內存分配
??? 7.1描述虛擬內存區
??? 7.2分配非連續區域
??? 7.3釋放非連續內存
??? 7.42.6中有哪些新特性
第8章slab分配器
??? 8.1高速緩存
??? 8.2slabs
??? 8.3對象
??? 8.4指定大小的高速緩存
??? 8.5per cpu對象高速緩存
??? 8.6初始化slab分配器
??? 8.7伙伴分配器接口
??? 8.82.6中有哪些新特性
第9章高端內存管理
??? 9.1管理pkmap地址空間
??? 9.2映射高端內存頁面
??? 9.3解除頁面映射
??? 9.4原子性的映射高端內存頁面
??? 9.5彈性緩沖區
??? 9.6緊急池
??? 9.72.6中有哪些新特性
第10章頁面幀回收
??? 10.1頁面替換策略
??? 10.2頁面高速緩存
??? 10.3lru鏈表
??? 10.4收縮所有的高速緩存
??? 10.5換出進程頁面
??? 10.6頁面換出守護程序(kswapd)
??? 10.72.6中有哪些新特性
第11章交換管理
??? 11.1描述交換區
??? 11.2映射頁表項到交換項
??? 11.3分配一個交換槽
??? 11.4交換區高速緩存
??? 11.5從后援存儲器讀取頁面
??? 11.6向后援存儲器寫頁面
??? 11.7讀/寫交換區域的塊
??? 11.8激活一個交換區
??? 11.9禁止一個交換區
??? 11.102.6中有哪些新特性
第12章共享內存虛擬文件系統
??? 12.1初始化虛擬文件系統
??? 12.2使用shmem函數
??? 12.3在tmpfs中創建文件
??? 12.4虛擬文件中的缺頁中斷
??? 12.5tmps中的文件操作
??? 12.6tmpfs中的索引節點操作
??? 12.7建立共享區
??? 12.8systemvipc
??? 12.92.6中有哪些新特性
第13章內存溢出管理
??? 13.1檢查可用內存
??? 13.2確定oom狀態
??? 13.3選擇進程
??? 13.4殺死選定的進程
??? 13.5是這樣嗎?
??? 13.62.6中有哪些新特性
第14章結束語
附錄a 介紹
附錄b 描述物理內存
??? b.1初始化管理區201
??? b.2頁面操作214
附錄c頁表管理
??? c.1初始化頁表219
??? c.2遍歷頁表227
附錄d進程地址空間
??? d.1進程內存描述符232
??? d.2創建內存區域239
??? d.3查找內存區域285
??? d.4對內存區域上鎖和解鎖291
??? d.5缺頁中斷304
??? d.6頁面相關的磁盤i/o330
附錄e啟動內存分配
??? e.1初始化引導內存分配器370
??? e.2分配內存372
??? e.3釋放內存381
??? e.4釋放引導內存分配器383
附錄f物理頁面分配
??? f.1分配頁面391
??? f.2分配輔助函數402
??? f.3釋放頁面404
??? f.4釋放輔助函數409
附錄g不連續內存分配
??? g.1分配一塊非連續的區域411
??? g.2釋放一塊非連續區域420
附錄hslab分配器
??? h.1高速緩存控制427
??? h.2slabs446
??? h.3對象452
??? h.4指定大小的高速緩存466
??? h.5percpu對象高速緩存469
??? h.6初始化slab分配器476
??? h.7與伙伴分配器的接口477
附錄i高端內存管理
??? i.1映射高端內存頁面479
??? i.2自動映射高端內存頁面484
??? i.3解除頁面映射485
??? i.4自動解除高端內存頁面映射487
??? i.5彈性緩沖區488
??? i.6緊急池495
附錄j頁面幀回收
??? j.1頁面高速緩存操作500
??? j.2lru鏈表操作510
??? j.3重填充inactive_list514
??? j.4從lru鏈表回收頁面515
??? j.5收縮所有高速緩存522
??? j.6換出進程頁面525
??? j.7頁面交換守護程序536
附錄k交換管理
??? k.1查找空閑項543
??? k.2交換高速緩存548
??? k.3交換區i/o555
??? k.4激活一個交換區564
??? k.5禁止一個交換區575
附錄l共享內存虛擬文件系統
??? l.1初始化shmfs591
??? l.2在tmpfs中創建文件596
??? l.3tmpfs中的文件操作600
??? l.4tmpfs中的索引節點操作613
??? l.5虛擬文件中的缺頁中斷622
??? l.6交換空間交互633
??? l.7建立共享區639
??? l.8systemvipc642
附錄m內存溢出管理
??? m.1確定可用內存650
??? m.2檢查oom并從中恢復652
參考文獻

?

?

《深入理解LINUX網絡內幕》? 英文版講解網絡子系統的實現,通過這本書,可以了解到Linux內核是如何實現復雜的網絡功能的。

目錄
前言
第一部分 基礎背景
??? 第一章 簡介
??????? 基本術語
??????? 常見編碼模式
??????? 用戶空間工具
??????? 瀏覽源代碼
??????? 當功能以補丁形式提供時

??? 第二章 關鍵數據結構
??????? 套接字緩沖區:sk—buff結構
??????? net—device結構
??????? 本章涉及的文件

??? 第三章 用戶空間與內核的接
??????? 概論
??????? procfs與sysctl
??????? ioctl
??????? Netlink
??????? 配置改變串行化


第二部分 系統初始化
??? 第四章 通知鏈
??????? 使用通知鏈的原因
??????? 概論
??????? 定義鏈
??????? 鏈注冊
??????? 鏈上的通知事件
??????? 網絡子系統的通知鏈
??????? 通過/proc文件系統的調整
??????? 本章涉及的函數和變量
??????? 本章涉及的文件和目錄

??? 第五章 網絡設備初始化
??????? 系統初始化概論
??????? 設備注冊和初始化
??????? NIC初始化的基本目標
??????? 設備與內核之間的交互
??????? 初始化選項
??????? 模塊選項
??????? 設備處理層初始化:net—dev—init
??????? 用戶空間輔助程序
??????? 虛擬設備
??????? 通過/proc文件系統調整
??????? 本章涉及的函數和變量
??????? 本章涉及的文件和目錄

??? 第六章 PCI層和網絡接口卡
??????? 本章涉及的數據結構
??????? PCI NIC設備驅動程序的注冊
??????? 電源管理和網絡喚醒
??????? PCI NIC驅動程序注冊范例
??????? 大藍圖
??????? 通過/proc文件系統調整
??????? 本章涉及的函數和變量
??????? 本章涉及的文件和目錄

??? 第七章 組件初始化的內核基礎架構
??????? 引導期間的內核選項
??????? 模塊初始化代碼
??????? 優化宏卷標
??????? 引導期間初始化函數
??????? 內存最優化
??????? 通過/proc文件系統調整
??????? 本章涉及的函數和變量
??????? 本章涉及的文件和目錄

??? 第八章 設備注冊和初始化
??????? 設備注冊之時
??????? 設備除名之時
??????? 分配net—device結構
??????? NIC注冊和除名的架構
??????? 設備初始化
??????? net—device結構的組織
??????? 設備狀態
??????? 設備的注冊和除名
??????? 設備注冊
??????? 設備除名
??????? 開啟和關閉網絡設備
??????? 更新設備隊列規則狀態
??????? 從用戶空間配置設備相關信息
??????? 虛擬設備
??????? 上鎖
??????? 通過/proc文件系統調整
??????? 本章涉及的函數和變量
??????? 本章涉及的文件和目錄

第三部分 傳輸和接收
??? 第九章 中斷和網絡驅動程序
??????? 決策和流量方向
??????? 接收到幀時通知驅動程序
??????? 中斷處理函數
??????? softnet—data結構

??? 第十章 幀的接收
??????? 與其他功能交互
??????? 設備的開啟和關閉
??????? 隊列
??????? 通知內核幀已接收:NAPI和netif_rx
??????? 設備驅動程序與內核問的IB接口:netif_rx的第一部分
??????? 擁塞管理
??????? 處理NET_RX_SOFTIRQ:net_rxa_ction

??? 第十一章 幀的傳輸
??????? 傳輸的開啟和關閉

??? 第十二章 中斷事件一般性參考數據
??????? 統計數據
??????? 通過/proc和sysfs文件系統調整
??????? 本部分涉及的函數和變量
??????? 本部分涉及的文件和目錄

??? 第十三章 協議處理函數
??????? 網絡協議棧概論
??????? 執行正確的協議處理函數
??????? 協議處理函數的組織
??????? 協議處理函數的注冊
??????? Ethernet與IEEE 802.3幀
??????? 通過/proc文件系統進行調整
??????? 本章涉及的函數和變量
??????? 本章涉及的文件和目錄


第四部分 橋接
??? 第十四章 橋接:概念
??????? 中繼器、網橋以及路由器
??????? 網橋與交換機
??????? 主機
??????? 用網橋合并LAN
??????? 橋接不同技術的LAN
??????? 地址學習
??????? 多臺網橋
??? 第十五章 橋接:生成樹協議
??????? 基本術語
??????? 階層交換式L2拓撲范例
??????? 生成樹協議的基本元素
??????? 網橋ID和端口ID
??????? 網橋協議數據單元(BPDU)
??????? 定義活躍拓撲
??????? 定時器
??????? 拓撲變化
??????? BPDU封裝
??????? 傳輸配置BPDU
??????? 處理入口幀
??????? 收斂時間
??????? 新版生成樹協議概況

??? 第十六章 橋接:Linux實現
??????? 網橋設備抽象
??????? 重要的數據結構
??????? 橋接程序的初始化
??????? 建立網橋設備和網橋端口
??????? 建立一個新網橋設備
??????? 網橋設備設置函數
??????? 刪除網橋
??????? 給網橋添加端口
??????? 啟動和關閉網橋設備
??????? 啟動和關閉網橋端口
??????? 改變網橋端口狀態
??????? 大藍圖
??????? 轉發數據庫
??????? 處理入口流量
??????? 網橋設備上的傳輸
??????? 生成樹協議(STP)
??????? netdevice通知鏈

??? 第十七章 橋接:其他主題
??????? 用戶空間配置工具
??????? 通過/proc文件系統調整網橋
??????? 通過/sys文件系統調整網橋
??????? 統計數據
??????? 本部分涉及的數據結構
??????? 本部分涉及的函數和變量
??????? 本部分涉及的文件和目錄

第五部分 因特網協議第4版(IPv4)
第六部分 鄰居子系統
第七部分 路由

?

首先通過《Linux內核設計與實現》或《深入理解Linux內核》了解內核的設計實現特點,對內核有個全局的認識和理解,然后可分為兩個岔路,如果從事驅動開發,則鉆研《Linux設備驅動程序》,如果希望對內核有更深入的理解,可以選擇一個自己感興趣的子系統,仔細分析它的代碼,不懂的地方就通過社區、郵件列表或者直接發Email給maintainer請教等途徑弄懂,切勿得過且過,這樣分析下來,對同步、中斷等等內核的很多機制也同樣會非常了解,俗話說的一通則百通就是這個道理。當然,如果你選擇研究的是內存管理或者網絡,則可以有上面的兩本書可以學習。

?

轉載于:https://www.cnblogs.com/JCSU/articles/3115886.html

總結

以上是生活随笔為你收集整理的Linux学习参考书的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。