Linux 內(nèi)核分析概述_第1頁(yè)
Linux 內(nèi)核分析概述_第2頁(yè)
Linux 內(nèi)核分析概述_第3頁(yè)
Linux 內(nèi)核分析概述_第4頁(yè)
Linux 內(nèi)核分析概述_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

會(huì)計(jì)學(xué)1Linux內(nèi)核分析概述本講內(nèi)容Linux操作系統(tǒng)內(nèi)核簡(jiǎn)介linux內(nèi)核分析概論第1頁(yè)/共34頁(yè)第一節(jié)Linux操作系統(tǒng)內(nèi)核簡(jiǎn)介L(zhǎng)inux操作系統(tǒng)簡(jiǎn)介L(zhǎng)inux內(nèi)核版本簡(jiǎn)介第2頁(yè)/共34頁(yè)什么是linux操作系統(tǒng)Linux是:多任務(wù)的多用戶(hù)多平臺(tái)工作在保護(hù)模式下遵守POSIX標(biāo)準(zhǔn)遵守SYSV和BSD擴(kuò)展遵守GPL許可32位(也有64位)的類(lèi)UNIX開(kāi)放源代碼的免費(fèi)

的操作系統(tǒng)它是由芬蘭赫爾辛基大學(xué)的學(xué)生LinusTorvalds在1991年開(kāi)發(fā)出來(lái)的

第3頁(yè)/共34頁(yè)P(yáng)OSIX

POSIX表示可移植操作系統(tǒng)接口(PortableOperatingSystemInterface,縮寫(xiě)為

POSIX是為了讀音更像UNIX)。電氣和電子工程師協(xié)會(huì)(InstituteofElectricalandElectronicsEngineers,IEEE)

最初開(kāi)發(fā)

POSIX標(biāo)準(zhǔn),是為了提高

UNIX環(huán)境下應(yīng)用程序的可移植性。然而,POSIX并不局限于

UNIX。

許多其它的操作系統(tǒng),例如

WinNT,都支持

POSIX標(biāo)準(zhǔn)。POSIX.1已經(jīng)被國(guó)際標(biāo)準(zhǔn)化組織(InternationalStandardsOrganization,ISO)所接受,被命名為

ISO/IEC9945-1:1990標(biāo)準(zhǔn)。SYSV和BSD擴(kuò)展

可以理解為和SYSV和BSD源代碼級(jí)的兼容。簡(jiǎn)單一點(diǎn),就是Linux下的應(yīng)用程序同時(shí)也能在這兩個(gè)系統(tǒng)上運(yùn)行。。GPL(GeneralPublicLicense)

公用許可證。第4頁(yè)/共34頁(yè)Linux的來(lái)歷Linux最早是LinusTorvalds在1991年開(kāi)始設(shè)計(jì)開(kāi)發(fā)的。linus是芬蘭人,赫爾辛基是芬蘭的首都,當(dāng)時(shí)他正是赫爾辛基大學(xué)計(jì)算機(jī)系的學(xué)生,23歲。1990年的秋天,linus在赫爾辛基大學(xué)學(xué)習(xí)UNIX(一種操作系統(tǒng),和linux有密切聯(lián)系,在后面本章小節(jié)中我會(huì)詳悉介紹)課程,教材是Andrew

Tanenbaum教授寫(xiě)的《操作系統(tǒng):設(shè)計(jì)與實(shí)現(xiàn)》(現(xiàn)在中譯本很多,大家可以找來(lái)看看)。《操作系統(tǒng):設(shè)計(jì)與實(shí)現(xiàn)》是用Minix(Andy

Tanenbaum教授所寫(xiě)的很小的Unix操作系統(tǒng),主要用于操作系統(tǒng)教學(xué)。第5頁(yè)/共34頁(yè)Linux的來(lái)歷剛開(kāi)始他是在Minix環(huán)境下寫(xiě)了一個(gè)處理多任務(wù)切換的程序,用他自己的話來(lái)描述這個(gè)程序:“這個(gè)程序包括兩個(gè)進(jìn)程,都是向屏幕上寫(xiě)字母,然后用一個(gè)定時(shí)器來(lái)切換這兩個(gè)進(jìn)程。一個(gè)進(jìn)程寫(xiě)A,另一個(gè)進(jìn)程寫(xiě)B(tài),所以我就在屏幕上看到了AAAA,BBBB,如此循環(huán)重復(fù)的輸出結(jié)果?!眑inus在練習(xí)使用Minix時(shí),發(fā)現(xiàn)其功能很不完善。于是他就有了一個(gè)目標(biāo):寫(xiě)一個(gè)比Minix更好的Minix。所以Minix是linux的父親第6頁(yè)/共34頁(yè)Linux的來(lái)歷在1991的時(shí)候,主觀上有了這樣一個(gè)目標(biāo),當(dāng)時(shí)linus又需要一個(gè)簡(jiǎn)單的終端仿真程序來(lái)存取Usenet新聞組的內(nèi)容,于是他就開(kāi)始在上面兩個(gè)草草編寫(xiě)的進(jìn)程的基礎(chǔ)上又寫(xiě)了一個(gè)程序。他是這樣描述的:“一個(gè)進(jìn)程是從鍵盤(pán)上閱讀輸入然后發(fā)送給調(diào)制解調(diào)器,另一個(gè)進(jìn)程是從調(diào)制解調(diào)器上閱讀發(fā)送過(guò)來(lái)的信息然后送到屏幕上供人閱讀?!比欢獙?shí)現(xiàn)這兩個(gè)新的進(jìn)程,他顯然還需要一些別的東西,這就是驅(qū)動(dòng)程序。他必須為不同的顯示器、鍵盤(pán)和調(diào)制解調(diào)器編寫(xiě)驅(qū)動(dòng)程序。1991年的夏季,也就是他購(gòu)買(mǎi)了第一臺(tái)PC機(jī)之后6個(gè)月,Linus覺(jué)得他還需要從網(wǎng)上下載某些文件,為此他必須讀寫(xiě)某個(gè)磁盤(pán)。于是他又不得不寫(xiě)一個(gè)磁盤(pán)驅(qū)動(dòng)程序,然后是一個(gè)文件系統(tǒng)。而一旦你有了任務(wù)切換器、文件系統(tǒng)和設(shè)備驅(qū)動(dòng)程序之后,你當(dāng)然就擁有了一個(gè)操作系統(tǒng),或者至少是它的一個(gè)內(nèi)核。linux也就這樣誕生了。第7頁(yè)/共34頁(yè)第8頁(yè)/共34頁(yè)

1994年,Torvalds終于推出了Linux的正式的1.0版本。此時(shí)這個(gè)操作系統(tǒng)已經(jīng)變得比較穩(wěn)定并且擁有很多的高級(jí)特性了:支持搶先多任務(wù)、對(duì)稱(chēng)多處理和完全的POSIX兼容性等。它甚至有了自己的吉祥物!Torvalds在Linux的聯(lián)機(jī)文檔里這樣描述到:"它是一只討人喜歡的、讓人一見(jiàn)就想擁抱的、剛剛飽餐了一頓鯡魚(yú)的企鵝"。在1998年Linux獲得了廣泛支持,尤為重要的是幾乎所有的大型軟件公司都宣布推出或即將為L(zhǎng)inux開(kāi)發(fā)相應(yīng)的產(chǎn)品。有人預(yù)測(cè)在2003年之前成為緊隨微軟WindowsNT之后的第二大操作系統(tǒng)。

Linux的吉祥物是Linux企鵝,它是由LinuxTorvalds挑選的代表他所創(chuàng)立的Linux操作系統(tǒng).Linux的來(lái)歷第9頁(yè)/共34頁(yè)linux名字由來(lái)

開(kāi)始,linux還沒(méi)有專(zhuān)門(mén)的新聞組。linus只是在赫爾辛基技術(shù)大學(xué)的一臺(tái)FTP服務(wù)器上發(fā)了一則消息,說(shuō)可以下載linux的公開(kāi)版本。Linux是linus的筆名,他擔(dān)心如果用Linux來(lái)命名的話有人會(huì)說(shuō)他狂妄而且不會(huì)認(rèn)真對(duì)它。于是他用了一個(gè)很怪的名字Freak(free+freak+X)---free就是自由;freak愿意是怪胎的意思。表示這個(gè)系統(tǒng)還有很多不完善的地方。加上X是模仿UNIX和MINIX讓人家一看就知道這是一個(gè)操作系統(tǒng)。后來(lái),這臺(tái)FTP的管理員不喜歡Freax這個(gè)名字,最后選擇了Linux.。第10頁(yè)/共34頁(yè)自由軟件

RichardStallman在1971年加入MIT的人工智能實(shí)驗(yàn)室,他認(rèn)為:知識(shí)應(yīng)該與其它能從知識(shí)中受益的人一起共享,重要的資源應(yīng)該被利用。他想把自己開(kāi)發(fā)的軟件與其它人共享,按照法律,他是MIT的員工,他寫(xiě)的程序是屬于MIT的。為了不冒犯法律,毅然辭職。大約在一年以后,由于個(gè)別的公司控制了許多公共軟件的開(kāi)發(fā)項(xiàng)目。自1984年起MIT開(kāi)始支持RichardStallman的努力。這樣就導(dǎo)致了自由軟件基金會(huì)(FreeSoftwareFoundation,F(xiàn)SF)的建立。他認(rèn)為:計(jì)算機(jī)系統(tǒng)因該開(kāi)放,軟件應(yīng)該自由使用。第11頁(yè)/共34頁(yè)GNURichardStallman打算組織開(kāi)發(fā)一個(gè)完全基于自由軟件的軟件體系——GNU(GNU'sNotUnix,GNU這個(gè)單詞含義正好是產(chǎn)于南非州的一種大羚羊,所以我們經(jīng)常可以看到有些linux書(shū)的封面是一只羚羊,就是這個(gè)道理。)。它的目標(biāo)是:寫(xiě)一個(gè)完整的與UNIX兼容的軟件系統(tǒng)。由于剛開(kāi)始還沒(méi)有很好的自由軟件可供使用。所以他們先從系統(tǒng)的應(yīng)用軟件和工具著手。比如很有名的:emacs(編輯器)gcc(據(jù)說(shuō)是世界上效率最高的編譯器)等等。同時(shí)他們也開(kāi)發(fā)GUN體系的操作系統(tǒng)內(nèi)核:hurd??墒情_(kāi)發(fā)得很緩慢。到現(xiàn)在也沒(méi)有全部完工。第12頁(yè)/共34頁(yè)GPL在其它人協(xié)作下,Stallman創(chuàng)作了通用軟件許可證(GeneralPublicLicese,GPL)。這對(duì)推動(dòng)自由軟件的發(fā)展起了重要作用。GPL主要的規(guī)定:

1)GPL保證任何人有共享和修改自由軟件的自由。還可以把修改后的軟件向公眾發(fā)布。但是發(fā)布者要無(wú)條件開(kāi)放其源代碼。這樣就保證自由軟件的低價(jià)。

2)GPL規(guī)定自由軟件的衍生作品必須以GPL為重新發(fā)布的許可證。這樣就保證了自由軟件的持續(xù)性。

3)GPL規(guī)定允許公司銷(xiāo)售自由軟件。這就為公司介入自由軟件事業(yè)敞開(kāi)大門(mén)。第13頁(yè)/共34頁(yè)Linux和自由軟件

自從1991Linux發(fā)布以來(lái),一直是完全自由擴(kuò)散的。他要求所有的源碼必須公開(kāi)且任何人不準(zhǔn)從中獲利。這樣它限制了Linux以磁盤(pán)或CD-ROM等媒介的發(fā)布形式。從而阻礙了Linux得發(fā)展。因?yàn)闆](méi)有哪家公司愿意使用沒(méi)有廠商保證和沒(méi)有良好技術(shù)支持的操作系統(tǒng)。linus想到了GPL。事實(shí)也證明,加入GPL之后,許多軟件公司就介入其中,開(kāi)發(fā)了多種Linux的發(fā)行版本。如:Redhat

、Mandrake等等。他們?cè)黾恿嗽S多實(shí)用軟件和易用的圖形界面。linus本人也認(rèn)為:“使Linux成為GPL的一員是我一生中作過(guò)最漂亮的一件事”。第14頁(yè)/共34頁(yè)Linux的發(fā)音據(jù)說(shuō),linux的創(chuàng)始人Linus(LinusTorvalds)針對(duì)讀音分歧較多的情況,特意錄了一段他對(duì)Linux的發(fā)音。這段錄音的內(nèi)容是這樣的:“Hello,thisisLinusTorvaldsandIpronounceLinuxasLinux”。我聽(tīng)出來(lái)的是/'li:nэks/,綜合網(wǎng)上和linus自己的讀音,概括出幾個(gè)自認(rèn)為最合適也最通用的讀法:/Li'nks/(“里那克斯”)或/'li:nэks/(“里呢克斯”)或/Li'nu:ks?/(“里紐克斯”)。提示:上面的這段錄音可以在RedHat中調(diào)試聲卡的時(shí)候可以聽(tīng)到,如果你的聲卡調(diào)試成功,系統(tǒng)會(huì)播放上面一段聲音以示成功。第15頁(yè)/共34頁(yè)linux和UNIX的關(guān)系

在講UNIX和linux兩者關(guān)系之前,我們先了解一下Minix。Minix最初是由AndrewTanenbaum教授在4.3BSD的基礎(chǔ)上,但不通過(guò)修改4.3BSD的源代碼而是白手起家?guī)缀跻粋€(gè)人完成了12000行C語(yǔ)言程序的編寫(xiě)工作。它的特點(diǎn)功能簡(jiǎn)單、易懂可以在8086上運(yùn)行(后來(lái)也能在80386上運(yùn)行),當(dāng)然我們稱(chēng)它為UNIX操作系統(tǒng)。但這個(gè)Minix的功能也非常的有限,幾乎沒(méi)什么實(shí)用價(jià)值,但它能很好地作為教學(xué)使用。后來(lái)網(wǎng)上很多人給Tanenbaum教授寄來(lái)了改進(jìn),可是Tanenbaum教授沒(méi)有接受。他想保持Mnix小而簡(jiǎn)單的特性。從它的名字中不難看出,Minix是一個(gè)迷你型的操作系統(tǒng)。第16頁(yè)/共34頁(yè)linux和UNIX的關(guān)系linux最初是由Minix發(fā)展而來(lái),Minix是由4.3BSDUNIX發(fā)展而來(lái),4.3BSDUNIX是由AT&T的所謂真正的UNIX發(fā)展而來(lái)??梢钥偨Y(jié)出:Minix是linux的父親,而UNIX則是linux的祖父了。雖然UNIX和linux的源代碼完全無(wú)關(guān),可是linux中的許多特性和UNIX有很多相等之處。如:

1.Linux采用了SVR4的進(jìn)程間通信(IPC)機(jī)制:共享內(nèi)存、消息隊(duì)列、信號(hào)燈

2.Linux支持BSDSocket網(wǎng)絡(luò)編程接口

3.許多Linux發(fā)行版采用SysVinit機(jī)制,支持運(yùn)行級(jí)別

所以我們認(rèn)為linux是UNIX操作系統(tǒng)。第17頁(yè)/共34頁(yè)Liux發(fā)展的5大支柱第18頁(yè)/共34頁(yè)Linux的內(nèi)核版本

Linux的內(nèi)核版本linux發(fā)行版本第19頁(yè)/共34頁(yè)第20頁(yè)/共34頁(yè)第21頁(yè)/共34頁(yè)不同版本的核心源碼的文件數(shù)第22頁(yè)/共34頁(yè)Linux的內(nèi)核版本Linux內(nèi)核由其創(chuàng)始人linus帶領(lǐng)的小組維護(hù)。這個(gè)版本我們就認(rèn)為是“官方版本”。內(nèi)核版本號(hào)的格式是:主版本號(hào).次版本號(hào).修正號(hào)例如:Linux2.4.10,主版本號(hào)是2,次版本號(hào)是4,第10次修正.內(nèi)核版本號(hào)還有一個(gè)規(guī)則:次版本號(hào)為偶數(shù)的是穩(wěn)定版本,為基數(shù)的是發(fā)展版本。所謂穩(wěn)定版本是指內(nèi)核的特性已經(jīng)固定,代碼運(yùn)行穩(wěn)定可靠,不再增加新的特性,要改進(jìn)也只是修改代碼中的錯(cuò)誤。第23頁(yè)/共34頁(yè)linux發(fā)行版本光有內(nèi)核還不能構(gòu)成一個(gè)完整的操作系統(tǒng),于是一些組織或公司將內(nèi)核與一些應(yīng)用程序包裝起來(lái)就構(gòu)成了一個(gè)完整的操作系統(tǒng),這就是發(fā)行套件,不同的公司或組織的發(fā)行套件各不相同,版本號(hào)也不相同,盡管它們使用了同一版本號(hào)的內(nèi)核?,F(xiàn)在的發(fā)行公司很多,如:我們常聽(tīng)說(shuō)的RedHat,中軟,紅旗。第24頁(yè)/共34頁(yè)第二節(jié)linux內(nèi)核分析概論Linux內(nèi)核分析需要的基礎(chǔ)知識(shí)Linux0.01內(nèi)核簡(jiǎn)介L(zhǎng)inux內(nèi)核分析的方法、工具、參考書(shū)第25頁(yè)/共34頁(yè)Linux內(nèi)核分析需要的基礎(chǔ)知識(shí)理論操作系統(tǒng)的基本知識(shí)LINUX基本操作8086硬件體系結(jié)構(gòu),接口編程知識(shí)語(yǔ)言C語(yǔ)言AT&T匯編和INTEL匯編,GCC內(nèi)聯(lián)匯編第26頁(yè)/共34頁(yè)參考資料80386Programmer’sReferenceManual198

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論