Linux 內(nèi)核學(xué)習(xí)筆記整理。

Unix

unix 已有40歷史,但計(jì)算機(jī)科學(xué)家仍認(rèn)為其是現(xiàn)存操作系統(tǒng)中最大和最優(yōu)秀的系統(tǒng),它已成為一種傳奇的存在,歷經(jīng)時(shí)間的考驗(yàn)卻依然聲名不墜。

1973 年,在用 C 語言重寫了 Unix 系統(tǒng)后,大量的Unix衍生版本開始出現(xiàn),許多公司把 unix 移植到新的機(jī)型上,開發(fā)者們都按照自己的方式不斷增強(qiáng)系統(tǒng)的功能。Unix 系統(tǒng)設(shè)計(jì)簡潔并在發(fā)布時(shí)提供源代碼,所以許多團(tuán)體都對(duì)其進(jìn)行了進(jìn)一步的開發(fā)。加州大學(xué)伯克利分校便是其中影響最大的一個(gè)。在BSD基礎(chǔ)上,很多廠商也推出了自己的unix ,如 SunOS、HP-UX 等。1991 年,linus 在Internet 上發(fā)布了它的 Unix 。從此 linux 便起航了,Linux很快吸引了眾多開發(fā)者、黑客對(duì)其代碼進(jìn)行修改和完善,由于其開源性,Linux 迅速成為多人合作的開源項(xiàng)目。

操作系統(tǒng)與內(nèi)核

操作系統(tǒng)包括內(nèi)核、設(shè)備驅(qū)動(dòng)程序、啟動(dòng)引導(dǎo)程序、命令行shell、基本系統(tǒng)工具等部分。內(nèi)核是操作系統(tǒng)的真正核心,負(fù)責(zé)硬件設(shè)備管理、分配系統(tǒng)資源等任務(wù)。內(nèi)核一般處于系統(tǒng)態(tài),擁有受保護(hù)的內(nèi)存空間和訪問硬件設(shè)備的所有權(quán)限,這種系統(tǒng)態(tài)和被保護(hù)起來的空間統(tǒng)稱為內(nèi)核空間。應(yīng)用程序在用戶空間只能看到允許它們?cè)L問的部分系統(tǒng)資源、只能使用某些特定的系統(tǒng)功能,無法直接訪問硬件、也不能訪問內(nèi)核劃給別人的內(nèi)存范圍,還有一些其他的限制。應(yīng)用程序通過 系統(tǒng)調(diào)用 與內(nèi)核通信,讓內(nèi)核代其完成不同的任務(wù)。

內(nèi)核還負(fù)責(zé)管理系統(tǒng)的硬件設(shè)備。當(dāng)硬件設(shè)備想要和系統(tǒng)通信的時(shí)候,它會(huì)發(fā)出一個(gè)異步的中斷信號(hào)以打斷處理器執(zhí)行,繼而打斷內(nèi)核執(zhí)行。中斷通常對(duì)應(yīng)著一個(gè)中斷號(hào),內(nèi)核通過中斷號(hào)查找相應(yīng)的中斷服務(wù)程序,并調(diào)用這個(gè)程序響應(yīng)和處理中斷。中斷服務(wù)程序在一個(gè)與所有進(jìn)程都無關(guān)的、專門處理中斷的上下文中運(yùn)行,以保證中斷服務(wù)程序能在第一時(shí)間響應(yīng)和處理中斷請(qǐng)求并快速退出。

網(wǎng)友評(píng)論