講座

煉數(shù)成金linux內核探秘

 課程簡介:

本課程的內容很簡單,分析透徹一個簡單的文件系統(tǒng),分析透徹一個設備驅動,
課后檢驗和作業(yè)也簡單,學習者獨立寫一個簡單文件系統(tǒng),獨立寫一個設備驅動。
如果完成課程,達到課后目標,相信我,你已經(jīng)超過了國內主流公司絕大多數(shù)人的內核水準。
 
老師致學習者的話:
我認為,計算機技術層面可以分為系統(tǒng)和架構、語言和編譯、OS。而系統(tǒng)內核無疑是其中最有難度,學習路徑最陡峭的一部分。各位既然選擇業(yè)余時間來學習這門艱深的課程,想必對自己有所期許,也有投入的計劃。誠實的說,本課程確實不是容易通過的,但對有志向的各位來說,如果很容易通過,那么別人也會很容易。既然大家都容易得到,那么價值就大打折扣了。由此有志于此的學習者需要做好挑戰(zhàn)的準備。
老師只是課程的引導者,而非代替學習者實踐和思考的人。學習者可以利用網(wǎng)絡搜索和自行發(fā)現(xiàn)答案,我想這一定可以大大提升學習者的信心。
 
本課程不需要太多內核方面的知識。畢竟這是一門從基礎開始的課程。基本的c語言編程知識還是需要的,起碼要編譯過內核,能配置內核編譯的選項。 
 
本課程的內容設置和典型的教科書不同,也和其它類似的教程不同,課程設置完全反應了老師的思考和對國內工業(yè)界現(xiàn)實的理解。將OS內核分為基礎層面和應用層面是作者的一個創(chuàng)造,也是導引學習者快速入門和學以致用的關鍵。本課程包括對OS內存和任務調度的應用,但并不包括這些的原理。因為老師并不認為知識的堆徹就可以加深理解和思考,學習—應用—創(chuàng)新—再學習是作者理解的最好路徑。如果能學以致用,就已經(jīng)達到很深的程度。畢竟這只是起步階段,太多的知識只會打擊初學者的信心。
 
雖然課程有大量的學習內容,但課程的目的不是為了掌握某些知識,而是為了了解學習的方法,再進一步了解思考的方式。我一直認為,獨立學習是重要的,而獨立思考能力是最重要的。所以課程作業(yè)可能和課程的內容并沒關系,甚至是課程里面完全沒有的內容。沒問題,如果深入思考,作業(yè)不會超過初學者可以達到的水準,而找到答案的學習者,會發(fā)現(xiàn)已經(jīng)找到了自己的學習之路。
 
課程大綱:
第1課前言(第一階段:基礎知識)
國內內核應用的現(xiàn)狀
各大公司內核應用情況的介紹(百度、阿里、騰訊、IBM、intel、華為等)
國內普遍的內核應用模式和問題
 
內核在當前的主流應用
云計算和虛擬化中內核的應用
設備開發(fā)中驅動的開發(fā)
分布式系統(tǒng)應用:分布式文件系統(tǒng),
 
如何學習內核
帶著使用的目的學習內核,邊學邊用,學以致用
閱讀和修改活著的代碼,而非讀書籍
以培養(yǎng)閱讀代碼的能力為主,而非具體知識的學習
 
內核基礎層的范疇
內核基礎層和應用層的劃分邏輯
從代碼量和應用模式理解應用層和基礎層
 
學習方法和內容
切勿貪大求全,聚焦關鍵應用領域
奠定基礎,循序漸進
興趣是第一驅動力
本課程提出的學習方法和內容
 
第2課內核基礎層數(shù)據(jù)結構(第一階段:基礎知識)
內核數(shù)據(jù)結構
雙向鏈表
Hash鏈表
單向鏈表
紅黑樹
Radix樹
 
內核同步機制
自旋鎖
內核信號量
自旋鎖和內核信號量的區(qū)別
原子變量
completion
每CPU變量
RCU無鎖機制
 
第3課內核基礎層提供的服務
內核中使用內存
Linux內存管理基礎-伙伴系統(tǒng)和slab
從伙伴系統(tǒng)申請內存
從slab系統(tǒng)申請內存
 
內核中的任務調度
內核中進程調度的目的和應用范圍
從例子程序學習進程調度
內核進程調度的幾種方式
 
軟中斷和tasklet
軟中斷和中斷的關系
內核缺省定義的軟中斷—BLOCK_SOFTIRQ、NET_TX_SOFTIRQ、NET_RX_SOFTIRQ
takslet
 
工作隊列
可以被調度的工作隊列
創(chuàng)建自己的工作隊列
 
第4課(第二階段:文件系統(tǒng))
文件系統(tǒng)的基本概念
虛擬文件系統(tǒng)VFS
超級塊
目錄項dentry
索引節(jié)點inode
文件—和進程有關的概念
 
文件系統(tǒng)的架構
超級塊在文件系統(tǒng)中的基礎作用
Dentry—將文件組織為樹狀
Inode—文件的代表
文件—和進程有關的邏輯對象
 
從代碼層次理解文件系統(tǒng)
寫一個最簡單文件系統(tǒng)
登記文件系統(tǒng)
文件系統(tǒng)申請自身的數(shù)據(jù)結構
文件系統(tǒng)創(chuàng)建目錄和文件
 
第5課文件的打開過程
 
第6課sysfs文件系統(tǒng)(第二階段:文件系統(tǒng))
Sysfs—為設備服務的特殊文件系統(tǒng)
Sysfs的作用以及sysfs和dev目錄、proc文件系統(tǒng)的區(qū)別
Sysfs文件系統(tǒng)的初始化
目錄文件的創(chuàng)建
普通文件的創(chuàng)建
 
文件的打開過程
和普通文件打開過程的銜接
為文件創(chuàng)建inode結構
為dentry結構綁定屬性
在文件中保存私有數(shù)據(jù)
 
文件的讀寫
讀文件的過程分析
寫文件的過程分析
 
為對象屬性服務的Kobject結構
Kobject概念和作用
利用koject理解總線的注冊
 
第7課文件系統(tǒng)的讀寫(第二階段:文件系統(tǒng))
文件系統(tǒng)的page cache機制
buffer I/O和direct I/O
塊緩存和page cache
Page cache的管理
Page cache的狀態(tài)
 
文件預讀
預讀的作用
預讀機制的架構和算法
 
文件鎖概念和應用
建議鎖和強制鎖
讀鎖和寫鎖
 
文件讀過程代碼分析
硬盤操作模式和文件讀寫的關系
文件同步操作和異步操作
頁狀態(tài)和讀操作的關系
讀操作的返回
 
文件寫過程代碼分析
 
第8課通用塊層和scsi層(第二階段:文件系統(tǒng))
塊設備隊列
Scsi塊設備隊列
電梯算法和電梯對象
硬盤HBA抽象層
 
IO的順序控制
 
IO調度算法
IO調度算法的架構
Noop調度算法
Deadline調度算法
 
IO的處理過程
IO插入隊列的過程
IO出隊列的過程
IO返回路徑
 
第9課一個真實的文件系統(tǒng)ext2(第二階段)
Ext2文件系統(tǒng)的布局
Ext2文件系統(tǒng)的目錄樹
Ext2文件系統(tǒng)的內容管理
Ext2文件系統(tǒng)的讀寫
 
第10課設備概念和架構(第三階段)
設備概念和架構
設備的端口和設備內存
設備中斷和DMA
總線對設備的掃描
設備驅動管理
 
理解PCI總線
Pci設備工作原理
Pci總線域
Pci資源管理
Pci配置空間設置和讀取
 
PCI設備的掃描和發(fā)現(xiàn)
掃描系統(tǒng)0號總線
掃描總線上的pci設備
掃描多功能設備
掃描single設備
設備信息和屬性
 
第11課字符設備和input
文件系統(tǒng)和設備的關系
代表設備的文件
字符設備和字符設備的缺省處理函數(shù)
 
Input設備注冊
主從設備號
設備區(qū)間的登記
注冊字符設備
打開input設備
 
Input設備的架構分析
注冊input設備的驅動
設備和驅動的匹配方式
注冊input設備
 
第12課platform總線
從驅動發(fā)現(xiàn)設備的過程
Q40kbd鍵盤驅動的初始化
注冊platform驅動
將驅動注冊到總線
驅動加載
遍歷總線上的設備
 
從設備找到驅動的過程
注冊設備和總線
注冊設備的資源信息
添加設備對象
 
第13課塊設備
塊設備的架構
塊設備、通用磁盤對象和隊列
塊設備和通用磁盤對象的綁定
塊設備的隊列和應用
 
塊設備的創(chuàng)建和使用過程分析
塊設備例子-nbd驅動初始化
為通用磁盤對象創(chuàng)建隊列
通用磁盤對象加入系統(tǒng)
 
塊設備文件系統(tǒng)
塊設備文件系統(tǒng)的設計思路
塊設備文件系統(tǒng)的初始化
 
塊設備打開的過程
塊設備對象
塊設備的打開過程
 

158資源整合網(wǎng):提供各類學習資源,名師講座視頻,培訓課程視頻,音頻,文檔等···各類教程下載觀看。

  • 大小:1.27 GB
  • 百度網(wǎng)盤觀看下載
  • 點數(shù):15 點數(shù)
  • 咨詢QQ:1686059668
好消息:為了回饋廣大用戶能學習更多知識。
現(xiàn)只需98開通終身VIP會員
就可以終身免費下載所有資源!
機會難得 錯過就沒有了
【 點我咨詢,開通免費下載!】
提示:在電腦上打開本站 tpyzk.cn 下載更方便。