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

下載本文檔

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

文檔簡介

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

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

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

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

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

最初開發(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)被國際標(biāo)準(zhǔn)化組織(InternationalStandardsOrganization,ISO)所接受,被命名為

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

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

公用許可證。第4頁/共34頁Linux的來歷Linux最早是LinusTorvalds在1991年開始設(shè)計(jì)開發(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教授寫的《操作系統(tǒng):設(shè)計(jì)與實(shí)現(xiàn)》(現(xiàn)在中譯本很多,大家可以找來看看)?!恫僮飨到y(tǒng):設(shè)計(jì)與實(shí)現(xiàn)》是用Minix(Andy

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

最新文檔

評論

0/150

提交評論