Linux 內(nèi)核學習筆記整理。
Unix
unix 已有40歷史,但計算機科學家仍認為其是現(xiàn)存操作系統(tǒng)中最大和最優(yōu)秀的系統(tǒng),它已成為一種傳奇的存在,歷經(jīng)時間的考驗卻依然聲名不墜。
1973 年,在用 C 語言重寫了 Unix 系統(tǒng)后,大量的Unix衍生版本開始出現(xiàn),許多公司把 unix 移植到新的機型上,開發(fā)者們都按照自己的方式不斷增強系統(tǒng)的功能。Unix 系統(tǒng)設(shè)計簡潔并在發(fā)布時提供源代碼,所以許多團體都對其進行了進一步的開發(fā)。加州大學伯克利分校便是其中影響最大的一個。在BSD基礎(chǔ)上,很多廠商也推出了自己的unix ,如 SunOS、HP-UX 等。1991 年,linus 在Internet 上發(fā)布了它的 Unix 。從此 linux 便起航了,Linux很快吸引了眾多開發(fā)者、黑客對其代碼進行修改和完善,由于其開源性,Linux 迅速成為多人合作的開源項目。
操作系統(tǒng)與內(nèi)核
操作系統(tǒng)包括內(nèi)核、設(shè)備驅(qū)動程序、啟動引導程序、命令行shell、基本系統(tǒng)工具等部分。內(nèi)核是操作系統(tǒng)的真正核心,負責硬件設(shè)備管理、分配系統(tǒng)資源等任務(wù)。內(nèi)核一般處于系統(tǒng)態(tài),擁有受保護的內(nèi)存空間和訪問硬件設(shè)備的所有權(quán)限,這種系統(tǒng)態(tài)和被保護起來的空間統(tǒng)稱為內(nèi)核空間。應(yīng)用程序在用戶空間只能看到允許它們訪問的部分系統(tǒng)資源、只能使用某些特定的系統(tǒng)功能,無法直接訪問硬件、也不能訪問內(nèi)核劃給別人的內(nèi)存范圍,還有一些其他的限制。應(yīng)用程序通過 系統(tǒng)調(diào)用 與內(nèi)核通信,讓內(nèi)核代其完成不同的任務(wù)。
內(nèi)核還負責管理系統(tǒng)的硬件設(shè)備。當硬件設(shè)備想要和系統(tǒng)通信的時候,它會發(fā)出一個異步的中斷信號以打斷處理器執(zhí)行,繼而打斷內(nèi)核執(zhí)行。中斷通常對應(yīng)著一個中斷號,內(nèi)核通過中斷號查找相應(yīng)的中斷服務(wù)程序,并調(diào)用這個程序響應(yīng)和處理中斷。中斷服務(wù)程序在一個與所有進程都無關(guān)的、專門處理中斷的上下文中運行,以保證中斷服務(wù)程序能在第一時間響應(yīng)和處理中斷請求并快速退出。