linux開發(fā)入門

linux開發(fā)入門

ID:33885105

大小:1.72 MB

頁數(shù):28頁

時(shí)間:2019-03-01

linux開發(fā)入門_第1頁
linux開發(fā)入門_第2頁
linux開發(fā)入門_第3頁
linux開發(fā)入門_第4頁
linux開發(fā)入門_第5頁
資源描述:

《linux開發(fā)入門》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、下載第1章前言1.1目標(biāo)本部分的目標(biāo)是描述Linux內(nèi)核的具體系統(tǒng)結(jié)構(gòu)。具體系統(tǒng)結(jié)構(gòu)指的是系統(tǒng)創(chuàng)建之后的實(shí)際系統(tǒng)結(jié)構(gòu)。我們希望開發(fā)具體的系統(tǒng)結(jié)構(gòu),以提供現(xiàn)有Linux內(nèi)核的高級(jí)文檔資料。1.2Linux介紹LinusB.Torvalds于1991年編寫出第一個(gè)Linux內(nèi)核。由于它一直是作為自由軟件發(fā)布的,所以Linux變得很流行。因?yàn)樵创a隨手可得。用戶可以隨意改變內(nèi)核,以使它適應(yīng)自己的需求。然而,在編寫新的系統(tǒng)程序之前,了解Linux內(nèi)核的發(fā)展過程以及當(dāng)前它的工作原理是很重要的。基于Linux內(nèi)核源代碼的具體系統(tǒng)結(jié)構(gòu)可以為L(zhǎng)inux內(nèi)核高手和開發(fā)人員提供一個(gè)可靠的和及時(shí)的參考。

2、自從1991年以來,大量的志愿者多次修改過Linux,他們?cè)谝蛱鼐W(wǎng)上通過Usenet新聞組相通信。過去,Torvalds是主要的內(nèi)核開發(fā)人員?,F(xiàn)在LinuxTorvalds已經(jīng)不再是Linux內(nèi)核工程小組的成員了。如果能提供準(zhǔn)確的和及時(shí)的具體系統(tǒng)結(jié)構(gòu),我們有理由相信Linux會(huì)得到進(jìn)一步修改和進(jìn)一步發(fā)展。Linux是一個(gè)Unix兼容的系統(tǒng)。大部分通用的Unix工具和程序現(xiàn)在都可以在Linux下運(yùn)行。最初設(shè)計(jì)Linux時(shí)是為了它能在Intel80386微處理器上執(zhí)行。最初的版本因?yàn)槭褂昧薎ntel所特有的中斷處理例程,所以不能移植到其他的平臺(tái)上。當(dāng)把Linux移植到其他硬件平臺(tái)(如D

3、ECAlpha和SunSPARC)上時(shí),大部分依賴于平臺(tái)的代碼被移入平臺(tái)相關(guān)的模塊中,這些模塊支持通用接口。Linux的用戶群是巨大的。在1994年,EdChi估計(jì)Linux大約有40,000個(gè)用戶([Chi1994])。Linux文檔工程小組(LDP)正在開發(fā)有用的和可靠的Linux內(nèi)核文檔,既提供給Linux用戶,也提供給Linux開發(fā)人員使用。就我們所知,LDP并不利用逆推機(jī)制得到最新的具體系統(tǒng)結(jié)構(gòu)。目前有大量的書和文檔資料介紹Linux內(nèi)核方面的知識(shí)[CS746GBibliography]。然而,還沒有什么文檔資料很詳細(xì)地介紹Linux的概念和具體系統(tǒng)結(jié)構(gòu)。有些出版物(如[

4、Beck1996]和[Rusling1997])介紹了Linux內(nèi)核的工作原理,然而,這些書并沒有透徹地分析子系統(tǒng)以及子系統(tǒng)之間的相互依賴性。1.3軟件系統(tǒng)結(jié)構(gòu)的背景知識(shí)最近以來,在工業(yè)和學(xué)術(shù)團(tuán)體中,對(duì)軟件系統(tǒng)結(jié)構(gòu)的研究非常流行。軟件系統(tǒng)結(jié)構(gòu)的研究帶動(dòng)了大型軟件系統(tǒng)的研究。最近的研究表明軟件系統(tǒng)結(jié)構(gòu)是很重要的,因?yàn)樗鰪?qiáng)了系統(tǒng)支持者之間的通信。軟件系統(tǒng)結(jié)構(gòu)可以用于幫助開發(fā)人員作出一些早期的設(shè)計(jì)決定。此外,它還可以用作系統(tǒng)的一個(gè)可傳送的抽象表示([Bass1998])。軟件系統(tǒng)結(jié)構(gòu)與軟件可維護(hù)性的研究有關(guān)。維護(hù)現(xiàn)有的(或者傳統(tǒng)的)系統(tǒng)常常是非常第1章前言343下載麻煩的。這些現(xiàn)有系統(tǒng)

5、的狀態(tài)既可能是設(shè)計(jì)非常好的,文檔編制得非常好的;也可能是設(shè)計(jì)非常差的,文檔編制得非常不理想的。在許多情況下,原來的一部分或者全部系統(tǒng)結(jié)構(gòu)者和開發(fā)人員不會(huì)再參加現(xiàn)有系統(tǒng)的開發(fā)工作,而缺乏系統(tǒng)結(jié)構(gòu)實(shí)踐知識(shí)將大大地增加軟件維護(hù)任務(wù)的復(fù)雜性和困難程度。為了對(duì)現(xiàn)有系統(tǒng)的功能進(jìn)行變動(dòng)、擴(kuò)展、修改或者刪除,就必須理解系統(tǒng)的實(shí)現(xiàn)原理。這個(gè)問題就需要研究從現(xiàn)有系統(tǒng)中抽取系統(tǒng)結(jié)構(gòu)信息和設(shè)計(jì)信息的相關(guān)技術(shù)。從源代碼抽取高級(jí)模型的過程常常稱為逆推工程。逆推工程的方法主要分為兩種[Bass1998]:1.技術(shù)方法:抽取方法是基于現(xiàn)有的產(chǎn)品抽取有關(guān)系統(tǒng)的信息。具體來說,抽取的對(duì)象包括源代碼、注釋、用戶文檔、可

6、執(zhí)行模塊以及系統(tǒng)描述。2.人類知識(shí)和推理:這些方法的焦點(diǎn)是人怎樣理解軟件。一般來說,工作人員常使用下列策略:¥自頂向下策略:從最高級(jí)別的抽象開始,依次進(jìn)行各個(gè)子部分的理解。¥自底向上策略:先理解最低級(jí)別的部件,并理解這些部件是怎樣在一起工作來完成系統(tǒng)的目標(biāo)的。¥基于模型的策略:理解系統(tǒng)工作的概念模型,并試著深入理解所選定的區(qū)域。¥隨機(jī)應(yīng)變策略:綜合使用以上的這些方法。在本部分中,我們同時(shí)使用技術(shù)方法和人類知識(shí)方法來描述Linux內(nèi)核的具體系統(tǒng)結(jié)構(gòu)。隨機(jī)應(yīng)變的策略與[Tzerpos1996]中所描述的混合方法實(shí)際上是同一個(gè)策略。我們沒有使用Linux內(nèi)核開發(fā)人員的實(shí)踐知識(shí),而是使用了

7、現(xiàn)代操作系統(tǒng)的領(lǐng)域相關(guān)知識(shí)(例如,來自任務(wù)1的概念系統(tǒng)結(jié)構(gòu)),用來反復(fù)精化Linux內(nèi)核的具體系統(tǒng)結(jié)構(gòu)。1.4方法與途徑在本部分中,我們使用隨機(jī)應(yīng)變策略來開發(fā)Linux內(nèi)核的具體系統(tǒng)結(jié)構(gòu)。我們修改了在[Tzerpos1996]中所描述的方法,并用它來判斷Linux內(nèi)核的結(jié)構(gòu)。所采取的步驟如下(但不一定按照這種順序):¥定義概念系統(tǒng)結(jié)構(gòu)。因?yàn)槲覀儫o法直接獲得開發(fā)人員的實(shí)踐知識(shí),所以使用自己的現(xiàn)代操作系統(tǒng)的領(lǐng)域知識(shí)來創(chuàng)建Linux內(nèi)核的概念系統(tǒng)結(jié)構(gòu)。這個(gè)工作是在任務(wù)1中完

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。