資源描述:
《linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn) 第二章》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、Chapter2.GettingStartedwiththeKernelInthischapter,weintroducesomeoftheBasicsoftheLinuxkernel:wheretogetitssource,howtocompileit,andhowtoinstallthenewkernel.Wethengooversomekernelassumptions,differencesbetweenthekernelanduser-spaceprograms,andcommonmethodsusedinthekernel.Thekern
2、elhassomeintriguingdifferencesoverotherbeasts,butcertainlynothingthatcannotbetamed.Let'stackleit.第二章從內(nèi)核出發(fā)在這一章,我們介紹Linux內(nèi)核一些基本常識(shí):從何處獲取源碼,如何編譯它,又如何安裝新內(nèi)核。那么,讓我們考察一下內(nèi)核的一些狀態(tài)、內(nèi)核程序與用戶空間程序的差異,以及內(nèi)核所用一般函數(shù)的特點(diǎn)。內(nèi)核像性格怪異的猛獸,但并非不可馴服。讓我們來駕馭它。ObtainingtheKernelSourceThecurrentLinuxsourcecodeisal
3、waysavailableinbothacompletetarballandanincrementalpatchfromtheofficialhomeoftheLinuxkernel,http://www.kernel.org.UnlessyouhaveaspecificreasontoworkwithanolderversionoftheLinuxsource,youalwayswantthelatestcode.Therepositoryatkernel.orgistheplacetogetit,alongwithadditionalpatche
4、sfromanumberofleadingkerneldevelopers.2.1獲取內(nèi)核源碼在Linux內(nèi)核官方網(wǎng)站http://www.kernel.org,可以隨時(shí)獲取當(dāng)前版本的Linux源代碼,可以是完整的壓縮形式,也可以是增量補(bǔ)丁形式。除非特殊情況下需要Linux源碼的舊版本,一般都希望擁有最新的代碼。kernel.org是源碼的庫(kù)存之處,那些領(lǐng)導(dǎo)潮流的內(nèi)核開發(fā)者所發(fā)布的增量補(bǔ)丁也放在這里。InstallingtheKernelSourceThekerneltarballisdistributedinbothGNUzip(gzip)andb
5、zip2format.Bzip2isthedefaultandpreferredformat,asitgenerallycompressesquiteabitbetterthangzip.TheLinuxkerneltarballinbzip2formatisnamedlinux-x.y.z.tar.bz2,wherex.y.zistheversionofthatparticularreleaseofthekernelsource.Afterdownloadingthesource,uncompressinganduntarringitissimpl
6、e.Ifyourtarballiscompressedwithbzip2,run$tarxvjflinux-x.y.z.tar.bz2IfitiscompressedwithGNUzip,run$tarxvzflinux-x.y.z.tar.gzThisuncompressesanduntarsthesourcetothedirectorylinux-x.y.z.2.1.1安裝內(nèi)核源代碼內(nèi)核壓縮以GNUzip(gzip)和bzip2兩種形式發(fā)布。bzip2是缺省和首選形式,因?yàn)樗趬嚎s上比gzip有相當(dāng)?shù)膬?yōu)勢(shì)。以bzip2形式發(fā)布的Linux內(nèi)核叫做
7、linux-x.y.z.tar.bz2,這里x.y.z是內(nèi)核源碼的具體版本。下載了源代碼之后,就可以輕而易舉地對(duì)其解壓。如果壓縮形式是bzip2,則運(yùn)行:$tarxvjflinux-x.y.z.tar.bz2如果壓縮形式是GNU的zip,則運(yùn)行$tarxvzflinux-x.y.z.tar.gz解壓后的源代碼位于linux-x.y.z.目錄下。何處安裝源碼內(nèi)核源碼一般安裝在/usr/src/linux目錄下。但請(qǐng)注意,不要把這個(gè)源碼樹用于開發(fā)。相反,編譯你的C庫(kù)所用的內(nèi)核版本就鏈接到這顆樹。此外,不要以root身份對(duì)內(nèi)核進(jìn)行修改,而應(yīng)當(dāng)是,建立自己的
8、主目錄,僅以root身份安裝新內(nèi)核。即使在安裝新內(nèi)核時(shí),/usr/src/linux目錄都應(yīng)當(dāng)原封不動(dòng)。Wh