读书笔记第一二章
Linux內核設計與實現》讀書筆記——第一二章
20135221黃衛估算學習時間:共4小時
讀書:2
代碼:0
作業:0
博客:2
實際學習時間:共5小時
讀書:3
代碼:0
作業:0
博客:2
耗時估計的公式:Y=X+X/N ,Y=X-X/N
第一章 Linux內核簡介
1.1 Unix的歷史
- 由于Unix系統設計簡潔并且在發布時提供源代碼,所以許多其他組織和團體都對它進了進一步的開發。
- Unⅸ雖然已經使用了40年,但計算機科學家仍然認為它是現存操作系統中最強大和最優秀的系統。從1969年誕生以來,由Dennis Ritchie和Ken Thompson的靈感火花點亮的這個Unix產物已經成為一種傳奇,它歷經了時間的考驗依然聲名不墜。
1.2 追尋Linus足跡:Linux簡介
1.3 操作系統和內核簡介
處理器在任何指定時間點上的活動范圍可以概括為下列三者之一:
- 運行于內核空間,處于進程上下文,代表某個特定的進程執行。
- 運行于內核空間,處于中斷上下文,與任何進程無關,處理某個特定的中斷。
- 運行于用戶空間,執行用戶進程。
1.4 Linux內核和傳統Unix內核的比較
Linux內核和傳統UNIX內核特點的比較
- Linux支持動態加載內核模塊。
- Linux支持對稱多處理(SMP)機制
- Linux內核可以搶占。
- Linux內核并不區分線程和其他的一般進程
1.5 Linux內核版本
命名規則:
1.6 Linux內核開發者社區
這個社區最重要的論壇:Linux kernel mailing list(lkml)
1.7 小結
第二章 從內核出發
1.獲取內核源碼
使用git獲取源碼:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git git pull # 更新分支到Linux的最新分支安裝內核源代碼:
- 如果壓縮形式是bzip2,則運行:tar xvjf linux-x.y.z.tar.bz2
- 如果壓縮形式是GNU的zip,則運行:tar xvzf linux-x.y.z.tar.gz
PS:如果使用git獲取就不需要下載壓縮文件,運行git clone命令,git就會下載解壓最新的源代碼
PS2:內核源代碼一般安裝在/usr/src/linux目錄下,即使在安裝新內核時,/usr/src/linux目錄應當保證原封不動,不要將其用于開發,不要以root身份對內核進行修改。
使用補丁
patch -p1 < ../patch-x.y.z配置內核
內核提供了各種不同的工具來簡化內核配置。最簡單的一種是一個字符界面下的命令行工具:
$ make config
配置選項CONFlG_lKCONFIG_PROC把完整的壓縮過的內核配置文件存放在/proc/con且g.gz 下,這樣當你編譯一個新內棋的時候就可以方便地克隆當前的配置。如果你目前的內核已經啟用了此選項,就可以從/proc下復制出配置文件并且使用它來編譯一個新內核:
zcat /proc/con且.g.gz > .config
make oldconfig
- config:用戶用來存放內核配置后結果的文件。
- 可以配置的各種選項:用CONFIG_FEATURE形式表示,其前綴為CONFIG。
一旦內核配置好了(不論你是如何配置的),就可以使用一個簡單的命令來編譯它了:
$ make
安裝新內核
make modules_install
把所有已編譯的模塊安裝到正確的主目錄/lib/modules下
2.4 內核開發的特點
最重要的差異包括以下幾種:
- 內核編程時既不能訪問 C庫也不能訪問標準的 C頭文件。
- 內核編程時缺乏像用戶空間那樣的內存保護機制。
- 內核編程時難以執行浮點運算。
- 內核給每個進程只有一個很小的定長堆錢。
- 由于內核支持異步中斷、搶占和 SMP,因此必須時刻注意同步和并發。
要考慮可移植性的重要性。
轉載于:https://www.cnblogs.com/hw00332012/p/5297691.html
總結
- 上一篇: bmp文件格式详细解析
- 下一篇: javase-NIO