20135323符運錦----第1、二章知識點總結

第一章 Linux內核簡介

1.1Unix的歷史

①Unix是一個強大、健壯和穩定的操做系統。linux

②.Unix的特色:第一,Unix很簡潔,沒有不明確的系統,僅僅提供幾百個系統調用而且有一個很是明確的設計目的。第二,在Unix中,全部的東西都被當作文件對待。第三,Unix的內核和相關的系統工具軟件是用C語言編寫的,具備強大的移植能力。第四,Unix的進程建立很是迅速,而且有一個很是獨特的fork()系統調用。git

③Unix成爲一個支持搶佔式多任務、多線程。虛擬內存、換頁、動態連接和TCP/IP網絡。編程

1.2LINUX簡介

Linux是類Unix系統,但不是Unix。但Linux沒有直接使用Unix的源代碼,它的實現可能和其餘各類Unix的實現截然不同,但它沒有拋棄Unix的設計目標而且保證了應用程序編程接口的一致。服務器

1.3操做系統和內核簡介

①操做系統是指在整個系統中負責完成最基本功能和系統管理的那些部分。網絡

②內核獨立於普通應用程序,通常處於系統態,擁有受保護的內存空間和訪問硬件設備的全部權限。這種系統態和被保護起來的內存空間,統稱爲內核空間。在系統中運行的應用程序經過系統調用來與內核通訊。
多線程

1.4Linux內核和傳統UNIX內核的比較

Linux內核和傳統UNIX內核特色的比較:1.Linux支持動態加載內核模塊;
2.Linux支持對稱多處理(SMP)機制;3.Linux內核能夠搶佔;4.Linux內核並不區分線程和其餘的通常進程;5.Linux提供具備設備類的面向對象的設備模型,熱插拔事件,以及用戶空間的設備文件系統。併發

單內核和微內核設計的比較

①單內核(好比大多數Unix及Linux):把內核總體上做爲一個大的單獨的過程來實現,同時運行在一個單獨的地址空間上,十分簡單,性能高。函數

②微內核(好比Windows NT):微內核的功能被劃分爲多個獨立的功能,每一個過程叫作一個服務器;便於處理內核間通訊,還使用了IPC機制;工具

1.5Linux內核版本

第二章 從內核出發

2.1獲取內核源碼

①使用git獲取源碼:git clone git: //git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.gitoop

②更新分支到Linux的最新分支:git pull

③安裝解壓:tar xvjf linux-x.y.z.tar.bz2或者tar xvzf linux-x.y.z.tar.gz

④打補丁:patch -p1 < ../patch-x.y.z

2.2內核源碼樹


2.3編譯內核

1.配置內核

前提:能夠配置的各類變量都以CONFIG_前綴表示。有二選一(yes or no)和三選一

①字符頁面的命令行工具:make config

②圖形界面工具:make menuconfig

③其餘的幾種配置:make defconfig //基於默認配置;make oldconfig //驗證和更新配置

2.編譯內核

make

①減小編譯的垃圾信息——對輸出進行重定向。
make > .. /detritus # 重定向到這個文件裏了;
make > /dev/null # 把無用的輸出信息重定向到永無返回值的黑洞裏。

3.安裝新內核

以root身份運行 make modules_install便可,全部已編譯的模塊都會安裝到lib/modules下。

2.4內核開發的特色

①無lib庫或者標準頭文件,不能直接使用標準C函數庫

②內核編程時使用GNU C,好比內聯函數、內聯彙編等

③沒有內存保護機制。若是一個用戶程序試圖進行一次非法的內存訪問,內核會發現這個錯誤,發送 SIGSEGV,並結束整個進程。內核中發生的內存錯誤會致使oops,這是內核中出現的最多見的一類錯誤。

④容積小而固定的棧。內核棧的準確大小隨體系結構而變。在x86上,棧的大小在編譯時配置,能夠是4KB也能夠是8KB。

⑤不要輕易在內核中使用浮點數。在執行浮點指令時到底會作些什麼,因體系結構不一樣,內核的選擇也不一樣,可是,內核一般捕獲陷阱並作相應處理。

⑥同步和併發。Linux是搶佔多任務操做系統。內核的進程調度程序即興對進程進行調度和從新調度。內核必須對這些任務同步。

⑦可移植性的重要性。必須把體系結構相關的代碼從內核代碼樹的特定目錄中適當地分離出來。

相關文章
相關標籤/搜索