新版Linux-系統(tǒng)裁減指南5redkaoliangdoc_第1頁(yè)
新版Linux-系統(tǒng)裁減指南5redkaoliangdoc_第2頁(yè)
新版Linux-系統(tǒng)裁減指南5redkaoliangdoc_第3頁(yè)
新版Linux-系統(tǒng)裁減指南5redkaoliangdoc_第4頁(yè)
新版Linux-系統(tǒng)裁減指南5redkaoliangdoc_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

PAGE3?Linux系統(tǒng)裁減指南(LiPS)?目錄TOC\o"1-4"\h\z目錄 11引言 41.1編寫目的 41.2背景 41.3定義 41.4參考資料 42總體描述 52.1硬件環(huán)境 52.2軟件環(huán)境 52.3需求規(guī)定和約束 53總體設(shè)計(jì) 63.1根本設(shè)計(jì)概念 63.2軟件結(jié)構(gòu) 64內(nèi)核 64.1創(chuàng)立內(nèi)核的方法 64.2內(nèi)核配置 74.2.1概述 74.2.2Loadablemodulesupport 84.2.3Processortypeandfeatures 84.2.4Generalsetup 84.2.5PlugandPlayconfiguration 94.2.6Blockdevices 94.2.7Multi-devicesupport(RAIDandLVM) 104.2.8Networkingoptions 104.2.9ATA/IDE/MFM/RLLsupport 114.2.10SCSIsupport 124.2.11Networkdevicesupport 124.2.12Characterdevices 134.2.13Filesystems 144.2.14Consoledrivers 154.2.15USBsupport 154.3提示 164.3.1EXTRAVERSION 164.3.2.config 175根文件系統(tǒng) 175.1根文件系統(tǒng) 175.2文件系統(tǒng)的內(nèi)容 175.2.1應(yīng)用程序〔applications〕 175.2.2設(shè)備文件〔devicefiles〕 185.2.3腳本和配置文件〔scriptsandconfigurationfiles〕 195.2.4庫(kù)文件〔libraries〕 205.2.5必要的目錄 205.3初始化RAM盤〔initrd〕 215.3.1操作步驟 215.3.2引導(dǎo)選項(xiàng) 215.3.3安裝 225.3.4改變根目錄設(shè)備 235.3.5使用場(chǎng)合 245.3.6淘汰的根轉(zhuǎn)換機(jī)制〔change_root〕 245.4系統(tǒng)初始化〔init〕 245.4.1init的任務(wù) 245.4.2SysVinit 255.4.3兩種風(fēng)格:Slackwarevs.Debian 255.5PAM 265.5.1什么是PAM 265.5.2PAM的結(jié)構(gòu) 265.5.3配置文件 265.5.4other 275.6再論initrd 275.6.1根到底在哪里 285.6.2linuxrc 285.6.3根轉(zhuǎn)換機(jī)制:新的?舊的? 305.7提示 315.7.1文件系統(tǒng)目錄層次結(jié)構(gòu) 315.7.2mklips.sh〔制作LiPS的腳本〕 325.7.3lips.conf〔LiPS配置文件〕 325.7.4cp–dpR 325.7.5如何判斷一個(gè)程序依賴哪些文件 325.7.6帶庫(kù)文件復(fù)制——lcp() 335.7.7庫(kù)文件的命名 346引導(dǎo) 356.1引導(dǎo)過(guò)程概述 356.2幾種引導(dǎo)方式 356.3grub引導(dǎo)器 356.4USB引導(dǎo) 356.4.1制作步驟 36創(chuàng)立文件系統(tǒng) 36復(fù)制文件 36安裝grub 366.5提示 376.5.1版本問(wèn)題? 377遠(yuǎn)程串口控制臺(tái) 377.1概述 377.2配置方法 377.3提示 377.4Linux遠(yuǎn)程串口控制臺(tái)指南 378系統(tǒng)安裝光盤 408.1概述 408.2boot.iso光盤的文件結(jié)構(gòu)分析 401引言1.1編寫目的說(shuō)明Linux系統(tǒng)裁減的過(guò)程及解決的主要技術(shù)問(wèn)題。本文檔的編寫是為了說(shuō)明LiPS的詳細(xì)設(shè)計(jì)過(guò)程,也可以作為構(gòu)造一個(gè)小型化Linux系統(tǒng)的指南。本文檔內(nèi)容的組織如下所述:這一局部是引言,第2局部是對(duì)工程軟、硬件環(huán)境和需求的總體描述,第3局部說(shuō)明了裁減LINUX的相關(guān)根本概念。后面幾個(gè)局部是具體實(shí)現(xiàn)方法的詳細(xì)說(shuō)明,4~6分別詳細(xì)描述了創(chuàng)立內(nèi)核、創(chuàng)立根文件系統(tǒng)和引導(dǎo)系統(tǒng)的方法。最后的內(nèi)容可以看作附錄,其中7說(shuō)明了一般Linux系統(tǒng)安裝光盤的創(chuàng)立方法,8列出了相關(guān)的配置文件和源代碼。1.2背景華中科技大學(xué)計(jì)算機(jī)存儲(chǔ)系統(tǒng)國(guó)家專業(yè)實(shí)驗(yàn)室,NAS工程〔2023.3——2023.8〕。1.3定義Obootloader:引導(dǎo)器Okernel:內(nèi)核Orootfilesystem:根文件系統(tǒng)OUSB:通用串行總線1.4參考資料[1]DIY:自己動(dòng)手做一個(gè)迷你Linux系統(tǒng).IBMdeveloperWorks中國(guó)網(wǎng)站./developerWorks/cn/linux/embed/diy/index.shtml[2]LinuxFromScratch.http://clfsbook.mylab.idv.tw/index.html[3]Linux啟動(dòng)過(guò)程綜述./forum/showdoc.jsp?l=1&i=15750[4]TheLinuxBootdiskHOWTO(中譯版)..tw/CLDP/gb/Bootdisk-HOWTO.html[5]UsingtheinitialRAMdisk(initrd)./usr/src/linux-2.4/Documentation/initrd.txt.〔譯文:/Project/3ybaby/discuss-area/cd-boot/cdboot_refer/initrd.htm〕[6]Quickmouse于2023.1發(fā)表于白云黃鶴BBS(/Linux討論區(qū)的帖子“裁減Linux〞。[7]FilesystemHierarchyStandard./fhs/pub/fhs-2.2.pdf[8]LINUXALLOCATEDDEVICES./usr/src/linux-2.4/Documentation/device.txt.或者最新的列表在/pub/linux/docs/device-list/[9]KarimYaghmour.BuildingEmbeddedLinuxSystems.O'Reilly,April2003.[10]AlessandroRubini.TakeCommand:Init.http://www.linux.it/kerneldocs/init/,November1998.[11]深入LinuxPAM體系結(jié)構(gòu).IBMdeveloperWorks中國(guó)網(wǎng)站.http://www-90/0./developerWorks/cn/linux/l-pam/index.shtml.2023.7.[12]2總體描述2.1硬件環(huán)境開發(fā)主機(jī):Intel845芯片組主板,P4賽揚(yáng)1.8GHzCPU,256M內(nèi)存,60GIDE硬盤,RTL8139網(wǎng)卡。目標(biāo)機(jī):與主機(jī)同構(gòu)。2.2軟件環(huán)境開發(fā)主機(jī):RedhatLinux7.3(kernel2.4.18-3),或者RedhatLinux9(kernel2.4.20-8)??梢愿鶕?jù)需要使用其他版本的內(nèi)核,比方Redhat7.3+kernel2.4.20。目標(biāo)機(jī):LiPS,以及應(yīng)用程序。2.3需求規(guī)定和約束我們目標(biāo)系統(tǒng)LiPS,即LinuxPoweredStorage是一個(gè)嵌入式Linux操作系統(tǒng),主要著眼于提供各種文件效勞,不包括XGUI;并且足夠小,可以裝入32MUSB盤或者DOC/DOM等常用設(shè)備引導(dǎo)。3總體設(shè)計(jì)3.1根本設(shè)計(jì)概念提起“裁減Linux〞,最容易想到的方法是以一個(gè)已經(jīng)安裝好的系統(tǒng)為根底,刪除掉不需要的文件,以減小整個(gè)系統(tǒng)的尺寸。而事實(shí)上這個(gè)方法幾乎是行不通的,因?yàn)橥ㄟ^(guò)光盤安裝的一個(gè)Redhat9Linux系統(tǒng),即便是只選擇了比擬少的軟件包,其所占空間也可以輕松到達(dá)300~500MB,想在這個(gè)根底上裁減到30MB左右是比擬困難的。更困難的是確定哪些東西是可以刪除的?如果刪除了系統(tǒng)必須的文件,可能導(dǎo)致系統(tǒng)不能引導(dǎo)。另一個(gè)途徑是從零開始根據(jù)需要構(gòu)建整個(gè)系統(tǒng)?!癓inuxFromScratch〞采用的就是這種方式,一個(gè)個(gè)安裝需要的軟件包。類似的,更簡(jiǎn)單的方法是,安裝一個(gè)完整的Linux系統(tǒng),然后將必要的軟件〔可執(zhí)行程序〕、配置文件、庫(kù)文件、內(nèi)核等復(fù)制出來(lái)構(gòu)建一個(gè)小系統(tǒng)。我們采取后一種方式。3.2軟件結(jié)構(gòu)LiPS包括3局部:Linux內(nèi)核,根文件系統(tǒng)和引導(dǎo)器。內(nèi)核〔Kernel〕提供了一個(gè)操作系統(tǒng)的根本功能,如內(nèi)存管理、進(jìn)程調(diào)度、文件系統(tǒng)、網(wǎng)絡(luò)等,以及設(shè)備驅(qū)動(dòng)程序。根文件系統(tǒng)〔Rootfilesystem〕是存放運(yùn)行、維護(hù)系統(tǒng)所必須的各種工具軟件、庫(kù)文件、腳本、配置文件和其他特殊文件〔比方設(shè)備節(jié)點(diǎn)〕的地方,也可以安裝各種軟件包。通常根文件系統(tǒng)位于某個(gè)磁盤分區(qū),而在LiPS中應(yīng)用了initrd〔初始RAM盤〕機(jī)制,將根文件系統(tǒng)放在RAMDisk中。引導(dǎo)器〔BootLoader〕的任務(wù)是從引導(dǎo)設(shè)備裝載內(nèi)核,引導(dǎo)系統(tǒng)運(yùn)行。Linux系統(tǒng)常見的引導(dǎo)器包括早期的LILO和近期的GRUB。LiPS用的是GRUB。4內(nèi)核4.1創(chuàng)立內(nèi)核的方法Linux提供了方便靈巧的方法來(lái)定制內(nèi)核,主要步驟包括:下載安裝內(nèi)核源代碼樹,配置內(nèi)核,編譯內(nèi)核。具體方法請(qǐng)參考相關(guān)文檔。關(guān)鍵指令如下:cd/usr/src/linux-2.4makemenuconfigmakedep;makeclean;makebzImage編譯成功的內(nèi)核文件為arch/i386/boot/bzImage.4.2內(nèi)核配置4.2.1概述makemenuconfig之后可以看到類似如下的內(nèi)容〔編號(hào)是為了描述方便而加上的〕。根據(jù)內(nèi)核版本的不同,列出的工程會(huì)有差異。而變化主要發(fā)生在發(fā)行版為標(biāo)準(zhǔn)內(nèi)核打的各種補(bǔ)丁上面,其實(shí)標(biāo)準(zhǔn)內(nèi)核是比擬穩(wěn)定的。如下所示,我們配置的內(nèi)核版本為2.4.20-8,這個(gè)“-8〞就是Redhat所打的補(bǔ)丁版本號(hào)。補(bǔ)丁一般是對(duì)標(biāo)準(zhǔn)內(nèi)核錯(cuò)誤的修正和新增的功能。與2.4.20內(nèi)核配置選項(xiàng)比擬會(huì)發(fā)現(xiàn),[10,25,30]都屬于Redhat的補(bǔ)丁。一般地,這些補(bǔ)丁選項(xiàng)都不是必須的,因此我們的LiPS內(nèi)核中都沒有包括這些選項(xiàng)。其實(shí),完全可以通過(guò)直接配置一個(gè)標(biāo)準(zhǔn)的內(nèi)核版本〔比方2.4.20〕來(lái)產(chǎn)生我們所需要的內(nèi)核。LinuxKernelv2.4.20-8-R2LipsConfiguration[1]Codematurityleveloptions>[2]Loadablemodulesupport>[3]Processortypeandfeatures>[4]Generalsetup>[5]MemoryTechnologyDevices(MTD)>[6]Parallelportsupport>[7]PlugandPlayconfiguration>[8]Blockdevices>[9]Multi-devicesupport(RAIDandLVM)>[10]Cryptographysupport(CryptoAPI)>[11]Networkingoptions>[12]TelephonySupport>[13]ATA/IDE/MFM/RLLsupport>[14]SCSIsupport>[15]FusionMPTdevicesupport>[16]I2Odevicesupport>[17]Networkdevicesupport>[18]AmateurRadiosupport>[19]IrDA(infrared)support>[20]ISDNsubsystem>[21]OldCD-ROMdrivers(notSCSI,notIDE)>[22]Inputcoresupport>[23]Characterdevices>[24]Multimediadevices>[25]CryptoHardwaresupport>[26]Filesystems>[27]Consoledrivers>[28]Sound>[29]USBsupport>[30]Additionaldevicedriversupport>[31]Bluetoothsupport>[32]Kernelhacking>[33]Libraryroutines>LoadanAlternateConfigurationFileSaveConfigurationtoanAlternateFile<Select><Exit><Help>下面我們以2.4.20內(nèi)核為例,來(lái)詳細(xì)說(shuō)明內(nèi)核的配置,也就是選哪些東西、不選哪些東西。沒有說(shuō)明的選項(xiàng),比方“Codematurityleveloptions〞,表示不選。4.2.2Loadablemodulesupport[*]Enableloadablemodulesupport[]Setversioninformationonallmodulesymbols[*]Kernelmoduleloader可加載模塊支持。雖然目前所選工程全部編譯進(jìn)內(nèi)核,但是內(nèi)核是支持模塊的。可以考慮將一些硬件設(shè)備的驅(qū)動(dòng)程序編譯為模塊,從而減小內(nèi)核尺寸,同時(shí)增加適應(yīng)不同硬件平臺(tái)的靈巧性。4.2.3Processortypeandfeatures(Pentium-III/Celeron(Coppermine))Processorfamily[*]MachineCheckException<>ToshibaLaptopsupport<>Delllaptopsupport<>/dev/cpu/microcode-IntelIA32CPUmicrocodesupport<>/dev/cpu/*/msr-Model-specificregistersupport<>/dev/cpu/*/cpuid-CPUinformationsupport(off)HighMemorySupport[]Mathemulation[]MTRR(MemoryTypeRangeRegister)support[]Symmetricmulti-processingsupport[]LocalAPICsupportonuniprocessors[]UnsyncedTSCsupport處理器特性。選擇一下Processorfamily,其余根本上都沒有選。HighMemorySupport也可以翻開,不清楚有什么用。4.2.4Generalsetup[*]Networkingsupport[*]PCIsupport(Any)PCIaccessmode[*]ISAbussupport[*]PCIdevicenamedatabase[]EISAsupport[]MCAsupport[]Supportforhot-pluggabledevices[*]SystemVIPC[*]BSDProcessAccounting[*]Sysctlsupport(ELF)Kernelcore(/proc/kcore)format<>Kernelsupportfora.outbinaries<*>KernelsupportforELFbinaries<>KernelsupportforMISCbinaries[*]PowerManagementsupport<>KernelsupportforMISCbinaries[*]PowerManagementsupport<*>AdvancedPowerManagementBIOSsupport[*]IgnoreUSERSUSPEND[*]EnablePMatboottime[*]MakeCPUIdlecallswhenidle[*]EnableconsoleblankingusingAPM[*]RTCstorestimeinGMT[*]AllowinterruptsduringAPMBIOScalls[*]UserealmodeAPMBIOScalltopoweroff總體設(shè)置。這一局部選項(xiàng)比擬重要,包括網(wǎng)絡(luò)、總線、進(jìn)程、二進(jìn)制文件格式、電源管理等。其中APM相關(guān)的選項(xiàng)比擬搞不清楚,有時(shí)候halt–p命令不能關(guān)閉系統(tǒng)電源跟這里有關(guān)系。4.2.5PlugandPlayconfiguration<*>PlugandPlaysupport<>ISAPlugandPlaysupport即插即用設(shè)置。4.2.6Blockdevices<*>Normalfloppydisksupport<>XTharddisksupport<>CompaqSMART2support<>CompaqSmartArray5xxxsupport<>MylexDAC960/DAC1100PCIRAIDControllersupport<*>Loopbackdevicesupport<>Networkblockdevicesupport<*>RAMdisksupport(4096)DefaultRAMdisksize[*]InitialRAMdisk(initrd)support[*]Perpartitionstatisticsin/proc/partitions塊設(shè)備。軟驅(qū)也可以不選。這里的關(guān)鍵選項(xiàng)是Loopbackdevice,RAMdisk和initrd,一定要選中。DefaultRAMdisksize多少都沒有關(guān)系。4.2.7Multi-devicesupport(RAIDandLVM)[*]Multipledevicesdriversupport(RAIDandLVM)<*>RAIDsupport<*>Linear(append)mode<*>RAID-0(striping)mode<*>RAID-1(mirroring)mode<*>RAID-4/RAID-5mode<*>MultipathI/Osupport<*>Logicalvolumemanager(LVM)supportMD支持。軟RAID和LVM的支持在這里選擇,如果不使用,也可以不選。4.2.8Networkingoptions<*>Packetsocket[*]Packetsocket:mmappedIO<>Netlinkdeviceemulation[*]Networkpacketfiltering(replacesipchains)[]Networkpacketfilteringdebugging[*]SocketFiltering<*>Unixdomainsockets[*]TCP/IPnetworking[*]IP:multicasting[*]IP:advancedrouter[]IP:policyrouting[]IP:equalcostmultipath[]IP:useTOSvalueasroutingkey[]IP:verboseroutemonitoring[]IP:largeroutingtables[*]IP:kernellevelautoconfiguration[*]IP:DHCPsupport[*]IP:BOOTPsupport[*]IP:RARPsupport<*>IP:tunneling<>IP:GREtunnelsoverIP[]IP:multicastrouting[]IP:TCPExplicitCongestionNotificationsupport[]IP:TCPsyncookiesupport(disabledperdefault)IP:NetfilterConfiguration><>802.1QVLANSupport<>TheIPXprotocol<>AppletalkprotocolsupportAppletalkdevices><>DECnetSupport<>802.1dEthernetBridgingQoSand/orfairqueueing>Networktesting>網(wǎng)絡(luò)選項(xiàng)。這里選項(xiàng)也比擬多,如果沒有什么特殊要求,又不是十分理解這些選項(xiàng)的意義,根本上可以用缺省設(shè)置。注意DHCP選項(xiàng),如果要用到的話要記得選中這個(gè)。IP:NetfilterConfiguration〔跟iptables有關(guān)〕等幾個(gè)子選項(xiàng)都沒有選。4.2.9ATA/IDE/MFM/RLLsupport<*>ATA/IDE/MFM/RLLsupportIDE,ATAandATAPIBlockdevices><*>EnhancedIDE/MFM/RLLdisk/cdrom/tape/floppysupportPleaseseeDocumentation/ide.txtforhelp/infoonIDEdrives[]Useolddisk-onlydriveronprimaryinterface<*>IncludeIDE/ATA-2DISKsupport[*]Usemulti-modebydefault[*]Auto-GeometryResizingsupport<*>IncludeIDE/ATAPICDROMsupport<>IncludeIDE/ATAPITAPEsupport<>IncludeIDE/ATAPIFLOPPYsupport<*>SCSIemulationsupport[]IDETaskfileAccessIDEchipsetsupport/bugfixes[]CMD640chipsetbugfix/support[]RZ1000chipsetbugfix/support[*]GenericPCIIDEchipsetsupport[*]SharingPCIIDEinterruptssupport[*]GenericPCIbus-masterDMAsupport[]Bootoff-boardchipsetsfirstsupport[]Forceenablelegacy2.0.XHOSTStouseDMA[*]UsePCIDMAbydefaultwhenavailable[]EnableDMAonlyfordisks[]AEC62XXchipsetsupport[]ALIM15x3chipsetsupport[]AMDVipersupport[]CMD64XandCMD680chipsetsupport[]CY82C693chipsetsupport[]CyrixCS5530MediaGXchipsetsupport[]HPT34Xchipsetsupport[]HPT366/368/370chipsetsupport[*]IntelPIIXnchipsetssupport[*]PIIXnTuningsupport[]PROMISEPDC202{46|62|65|67|68|69|70}support[]ServerWorksOSB4/CSB5chipsetssupport[]SiS5513chipsetsupport[]SLC90E66chipsetsupport[]VIA82CXXXchipsetsupport[]OtherIDEchipsetsupport[]IGNOREword93ValidationBITSIDE設(shè)備支持。要用IDE硬盤,當(dāng)然要選中。CDROM選項(xiàng)看情況也可以不要。SCSIemulation似乎對(duì)使用USB盤有影響。剩下的很多都是跟IDEchipset有關(guān)的。最好是用dmesg命令找出目標(biāo)系統(tǒng)主板芯片組,然后選中對(duì)應(yīng)的芯片組支持,這樣相當(dāng)于安裝了IDE芯片組的驅(qū)動(dòng)程序。如果沒有指定應(yīng)該也可以,只是性能可能會(huì)受到一些影響。4.2.10SCSIsupport<*>SCSIsupportSCSIsupporttype(disk,tape,CD-ROM)<*>SCSIdisksupport(40)MaximumnumberofSCSIdisksthatcanbeloadedasmodules<>SCSItapesupport<>SCSIOnStreamSC-x0tapesupport<>SCSICD-ROMsupport<*>SCSIgenericsupportSomeSCSIdevices(e.g.CDjukebox)supportmultipleLUNs[]Enableextrachecksinnewqueueingcode[]ProbeallLUNsoneachSCSIdevice[]VerboseSCSIerrorreporting(kernelsize+=12K)[]SCSIloggingfacilitySCSIlow-leveldrivers>SCSI支持。如果要用到SCSI硬盤等SCSI設(shè)備,這里當(dāng)然要選。目前我們的目標(biāo)系統(tǒng)其實(shí)沒有SCSI硬盤,但是為了使用USB盤,也要選中SCSI支持。SCSIlow-leveldrivers子選項(xiàng)中是一些SCSI卡,都不用選。4.2.11Networkdevicesupport[*]NetworkdevicesupportARCnetdevices><>Dummynetdriversupport<>Bondingdriversupport<>EQL(seriallineloadbalancing)support<>UniversalTUN/TAPdevicedriversupportEthernet(10or100Mbit)>[*]Ethernet(10or100Mbit)[*]EISA,VLB,PCIandonboardcontrollers<*>EtherExpressPro/100support(eepro100,originalBeckerdriver<*>RealTekRTL-8139PCIFastEthernetAdaptersupportEthernet(1000Mbit)>[]FDDIdriversupport<>PPP(point-to-pointprotocol)support<>SLIP(serialline)supportWirelessLAN(non-hamradio)>TokenRingdevices>[]FibreChanneldriversupportWaninterfaces>網(wǎng)絡(luò)設(shè)備支持。主要選擇網(wǎng)卡類型,Ethernet(10or100Mbit)子選項(xiàng)中列出了內(nèi)核可以支持的10/100M以太網(wǎng)卡,這里僅列出了我們選中的2種。其他子選項(xiàng)都沒有選。4.2.12Characterdevices[*]Virtualterminal[*]Supportforconsoleonvirtualterminal<*>Standard/generic(8250/16550andcompatibleUARTs)serialsupport[*]Supportforconsoleonserialport[]Extendeddumbserialdriveroptions[]Non-standardserialportsupport[]Unix98PTYsupportI2Csupport>Mice>Joysticks><>QIC-02tapesupportWatchdogCards><>AMD768RandomNumberGeneratorsupport<>Inteli8x0RandomNumberGeneratorsupport<>AMD76xnativepowermanagement(Experimental)<>/dev/nvramsupport<>EnhancedRealTimeClockSupport<>DoubleTalkPCinternalspeechcardsupport<>SiemensR3964linediscipline<>ApplicomintelligentfieldbuscardsupportFtape,thefloppytapedevicedriver><>/dev/agpgart(AGPSupport)[]DirectRenderingManager(XFree86DRIsupport)<>ACPModem(Mwave)support字符設(shè)備。這里主要就是選擇了最前面4個(gè)跟終端和串口有關(guān)的選項(xiàng),以支持虛擬終端〔遠(yuǎn)程登錄要用到〕,支持標(biāo)準(zhǔn)串口,支持串口控制臺(tái)。4.2.13Filesystems[*]Quotasupport<>Kernelautomountersupport<*>Kernelautomounterversion4support(alsosupportsv3)<*>Reiserfssupport[]Enablereiserfsdebugmode[*]Statsin/proc/fs/reiserfs<*>Ext3journallingfilesystemsupport[]JBD(ext3)debuggingsupport<*>DOSFATfssupport<*>MSDOSfssupport<>UMSDOS:Unix-likefilesystemontopofstandardMSDOSfs<*>VFAT(Windows-95)fssupport<>CompressedROMfilesystemsupport[*]Virtualmemoryfilesystemsupport(formershmfs)<*>ISO9660CDROMfilesystemsupport[*]MicrosoftJolietCDROMextensions[]Transparentdecompressionextension<>JFSfilesystemsupport<>Minixfssupport<>FreeVxFSfilesystemsupport(VERITASVxFS(TM)compatible)<>NTFSfilesystemsupport(readonly)<>OS/2HPFSfilesystemsupport[*]/procfilesystemsupport<>QNX4filesystemsupport(readonly)<>ROMfilesystemsupport<*>Secondextendedfssupport<>SystemV/Xenix/V7/Coherentfilesystemsupport<>UDFfilesystemsupport(readonly)<>UFSfilesystemsupport(readonly)NetworkFileSystems><>Codafilesystemsupport(advancednetworkfs)<*>NFSfilesystemsupport[*]ProvideNFSv3clientsupport[]RootfilesystemonNFS<*>NFSserversupport[*]ProvideNFSv3serversupport<*>SMBfilesystemsupport(tomountWindowssharesetc.)[]UseadefaultNLS<>NCPfilesystemsupport(tomountNetWarevolumes)PartitionTypes>NativeLanguageSupport>DefaultNLSOption:"iso8859-1"<*>Codepage437(UnitedStates,Canada)<*>SimplifiedChinesecharset(CP936,GB2312)<*>TraditionalChinesecharset(Big5)文件系統(tǒng)。這局部?jī)?nèi)容比擬多,也很重要。首先是Quota,如果目標(biāo)系統(tǒng)支持這個(gè)功能,這里就要選中。然后是選擇要支持的文件系統(tǒng),常用的有Reiserfs,Ext3,F(xiàn)AT,ISO9660,JFS等等,可以根據(jù)情況選擇。/proc和ext2一定要選中。還有NetworkFileSystems子選項(xiàng),可以選擇是否支持NFS和SMB。NativeLanguageSupport子選項(xiàng)跟所支持的語(yǔ)言有關(guān),這里沒有全部列出來(lái),我們選中了英語(yǔ)和簡(jiǎn)體、繁體中文字符集。4.2.14Consoledrivers[*]VGAtextconsole[]Videomodeselectionsupport控制臺(tái)驅(qū)動(dòng)。調(diào)試的時(shí)候可以給目標(biāo)系統(tǒng)接顯示器看一下,實(shí)際系統(tǒng)應(yīng)該可以不選。4.2.15USBsupport<*>SupportforUSB[]USBverbosedebugmessagesMiscellaneousUSBoptions[*]PreliminaryUSBdevicefilesystem[]Longtimeoutforslow-respondingdevices(someMGEEllipseUPSeUSBHostControllerDrivers<*>UHCIAlternateDriver(JE)support<*>OHCI(Compaq,iMacs,OPTi,SiS,ALi,...)supportUSBDeviceClassdrivers<>USBMIDIsupport<*>USBMassStoragesupport[*]USBMassStorageverbosedebug[]FreecomUSB/ATAPIBridgesupport[]ISD-200USB/ATABridgesupport[]MicrotechCompactFlash/SmartMediasupport<>USBModem(CDCACM)support<>USBPrintersupportUSBHumanInterfaceDevices(HID)<*>USBHumanInterfaceDevice(fullHID)supportInputcoresupportisneededforUSBHIDinputlayerorHIDBP[]/dev/hiddevrawHIDdevicesupportUSBImagingdevices<>USBKodakDC-2xxCamerasupport<>USBScannersupport<>MicrotekX6USBscannersupportUSBMultimediadevicesVideo4LinuxsupportisneededforUSBMultimediadevicesupportUSBNetworkadaptorsUSBportdriversUSBSerialConvertersupport>USBMiscellaneousdrivers<>TexasInstrumentsGraphLinkUSB(akaSilverLink)cablesupport<>USBLCDdevicesupportUSB支持。如果沒有使用USB設(shè)備,這局部可以不選。要使用USB盤,一定要選中USBMassStoragesupport。其余很多項(xiàng)選擇項(xiàng)我也不清楚是干什么用的。4.3提示4.3.1EXTRAVERSION在系統(tǒng)中使用uname可以獲得系統(tǒng)版本信息。比方Redhat9:[root@lipsroot]#uname-r2.4.20-8[root@lipsroot]#返回結(jié)果表示了Redhat修訂后的內(nèi)核版本號(hào)。前面我們提到過(guò),這個(gè)“-8〞就是Redhat附加在標(biāo)準(zhǔn)內(nèi)核版本號(hào)后面的一個(gè)信息。在一個(gè)運(yùn)行LiPS的系統(tǒng)中,我們也需要確定當(dāng)前使用的內(nèi)核版本,通過(guò)版本信息來(lái)知道這個(gè)內(nèi)核的配置,也可以通過(guò)在標(biāo)準(zhǔn)內(nèi)核版本后面附加特定的編碼來(lái)實(shí)現(xiàn)。/usr/src/linux-2.4/Makefile中的變量EXTRAVERSION可以幫助我們到達(dá)這個(gè)目標(biāo)。下面是Makefile文件的最前面幾行內(nèi)容:VERSION=2PATCHLEVEL=4SUBLEVEL=20EXTRAVERSION=-8KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)現(xiàn)在KERNELRELEASE的值就是2.4.20-8。這個(gè)信息會(huì)被編譯到內(nèi)核中,uname工具會(huì)從內(nèi)核文件中提取出版本號(hào)。如果將Makefile做一些修改,比方,EXTRAVERSION=-8-R2Lips那么我們可以得到內(nèi)核版本號(hào)2.4.20-8-R2Lips,表示為了創(chuàng)立LiPS而編譯的一個(gè)特定配置的內(nèi)核,這個(gè)內(nèi)核是以2.4.20-8為根底,R2Lips〔Release2Lips〕即第二個(gè)版本。對(duì)Makefile的修改要在編譯內(nèi)核之前完成。4.3.2.config內(nèi)核配置〔makemenuconfig〕完成之后,會(huì)詢問(wèn):Doyouwishtosaveyournewkernelconfiguration?<Yes><No>答復(fù)Yes,配置信息會(huì)保存在/usr/src/linux-2.4/.config文件中。注意以“.〞開頭的文件是個(gè)隱藏文件,要用ls–a才看的到。.config是個(gè)文本文件,內(nèi)容類似下面:##Loadablemodulesupport#CONFIG_MODULES=y#CONFIG_MODVERSIONSisnotsetCONFIG_KMOD=y所以可以把這個(gè)文件保存起來(lái),并且給文件名帶上版本號(hào),方便管理、使用。cp.config~/config-2.4.20-8-R2Lips5根文件系統(tǒng)創(chuàng)立根文件系統(tǒng)比編譯內(nèi)核要復(fù)雜的多,也更難理解。這里的關(guān)鍵是掌握initrd〔初始化RAM盤〕的使用方法。5.1根文件系統(tǒng)這里我們將要?jiǎng)?chuàng)立的根文件系統(tǒng)與通常Linux主機(jī)的根文件系統(tǒng)類似,只是它應(yīng)該僅僅包括系統(tǒng)運(yùn)行所必須的應(yīng)用程序、庫(kù)和相關(guān)文件的最小集合。根文件系統(tǒng)的尺寸大小是一個(gè)重要的指標(biāo)。5.2文件系統(tǒng)的內(nèi)容5.2.1應(yīng)用程序〔applications〕/bin,/sbin,/usr/bin,/usr/sbin應(yīng)用程序大致可以分為3局部,第一是操作系統(tǒng)正常運(yùn)行所需的根本工具軟件,比方bash,cp,rm等;第二是提供某項(xiàng)效勞的效勞器軟件,比方httpd,telnetd,proftpd等;第三是我們所開發(fā)的應(yīng)用程序。其實(shí)后面講的配置文件等也可以粗略按照這個(gè)原那么來(lái)分類。到底需要復(fù)制哪些軟件,彈性是比擬大的,很多軟件都是可要可不要,可以實(shí)際情況靈巧選擇。這個(gè)列表可能很長(zhǎng),并且變化也比擬大,因此不在這里列出。為了進(jìn)一步減小所創(chuàng)立的根文件系統(tǒng)的尺寸,可以考慮使用以下工具包軟件來(lái)替代某些標(biāo)準(zhǔn)的工具:OBusyBox〔〕/OTinyLogin〔〕/OEmbutils〔http://www.fefe.de/embutils/〕其詳細(xì)使用方法請(qǐng)參考相關(guān)資料,此處不再贅述。LIPS的實(shí)現(xiàn)目前沒有使用這些軟件包。5.2.2設(shè)備文件〔devicefiles〕/dev設(shè)備文件也可以稱作設(shè)備節(jié)點(diǎn)〔devicenode〕。設(shè)備文件非常重要,缺少某些有些設(shè)備文件可能導(dǎo)致系統(tǒng)不能正常運(yùn)行甚至不能引導(dǎo)。有些設(shè)備文件是必須的,而更多的是根據(jù)具體目標(biāo)系統(tǒng)的硬件配置來(lái)進(jìn)行取舍。比方硬盤的設(shè)備文件,在完整的系統(tǒng)中一般有hda,hdb,……,hdt,即最多支持20個(gè)IDE硬盤,每個(gè)硬盤有hdX1,hdX2,……,hdX32,〔其中X表示a-t〕,即支持32個(gè)分區(qū),另外還有表示SCSI硬盤的節(jié)點(diǎn)。根據(jù)實(shí)際情況,如果只需要支持少量的硬盤、少量的分區(qū),這些節(jié)點(diǎn)可以被大大簡(jiǎn)化。如果目標(biāo)系統(tǒng)中沒有的設(shè)備,其對(duì)應(yīng)的設(shè)備文件也可以省掉。設(shè)備文件描述/dev/console系統(tǒng)控制臺(tái)設(shè)備,非常重要。/dev/fd0第一個(gè)軟驅(qū)/dev/hda/dev/hda[1-8]IDE硬盤及分區(qū)/dev/initctl實(shí)際上是一個(gè)FIFO設(shè)備,跟init有關(guān)〔切換運(yùn)行級(jí)別時(shí)用于新init與原init通信〕/dev/initrdInitialRAMdisk/dev/input〔目錄〕Inputcore〔包括游戲桿、鼠標(biāo)等〕/dev/kmem內(nèi)核虛擬內(nèi)存/dev/loop[0-7]Loopback設(shè)備/dev/mem訪問(wèn)物理內(nèi)存/dev/nullNULL設(shè)備/dev/psauxPS/2鼠標(biāo)/dev/ptmxUNIX98PTYmaster/dev/pts〔目錄〕UNIX98PTYslaves/dev/ptyp[0-7]偽終端主設(shè)備〔遠(yuǎn)程登錄使用〕/dev/ram[0-7]/dev/ramdisk/dev/ramRAMDisk設(shè)備。至少/dev/ram0是應(yīng)用initrd機(jī)制所必須的。/dev/ramdisk鏈接到/dev/ram0,是為了兼容老版本內(nèi)核而保存的。/dev/ram鏈接到/dev/ram1。/dev/random隨機(jī)數(shù)發(fā)生器/dev/sda/dev/sda[1-8]SCSI磁盤及分區(qū)設(shè)備/dev/shm共享內(nèi)存設(shè)備/dev/systty指向系統(tǒng)tty設(shè)備的符號(hào)鏈接,一般是tty0。/dev/tty當(dāng)前TTY設(shè)備/dev/tty[0-7]虛控制臺(tái)〔Virtualconsole〕/dev/ttyp[0-7]偽終端從設(shè)備/dev/ttyS0/dev/ttyS1串口〔COM1和COM2〕/dev/urandom速度更快、平安性較差的隨機(jī)數(shù)發(fā)生器/dev/zero零設(shè)備,只能讀0出來(lái)設(shè)備節(jié)點(diǎn)的主設(shè)備號(hào)〔Major〕、次設(shè)備號(hào)〔Minor〕的文檔是內(nèi)核源代碼中的/Documentation/device.txt,如果有疑問(wèn)可以查看這個(gè)文件[8]。5.2.3腳本和配置文件〔scriptsandconfigurationfiles〕/etc/etc/rc.d目錄下的啟動(dòng)腳本是系統(tǒng)的重要局部。必須對(duì)啟動(dòng)腳本做相應(yīng)的修改以簡(jiǎn)化系統(tǒng)的啟動(dòng)過(guò)程。系統(tǒng)和各種應(yīng)用程序用到的幾乎所有的配置文件都位于/etc目錄,是裁減Linux最麻煩的局部,最容易出問(wèn)題。配置文件的選擇需要綜合很多方面的信息,需要對(duì)系統(tǒng)有比擬全面、深入的了解,并結(jié)合經(jīng)驗(yàn)才能做出正確的判斷。配置文件描述/etc/default〔目錄〕某個(gè)命令〔比方useradd〕的缺省設(shè)置〔manuseradd(8)〕/etc/ld.so.cache由ldconfig命令根據(jù)/etc/ld.so.conf文件產(chǎn)生/etc/ld.so.conf庫(kù)文件路徑配置文件,ldconfig命令根據(jù)該配置文件生成/etc/ld.so.cache/etc/localtime本地時(shí)間、時(shí)區(qū)設(shè)置/etc/login.defs全局缺省設(shè)置/etc/fstab文件系統(tǒng)列表〔manfstab(5)〕/etc/group組文件〔mangroup(5)〕/etc/hosts列出主機(jī)名和IP地址〔manhosts(5)〕/etc/init.d符號(hào)鏈接到/etc/rc.d/init.d/etc/initlog.confInitlog日志配置文件〔maninitlog(8)〕/etc/inittabInit配置文件〔maninittab(5)〕/etc/ioctl.save該文件包含了用于單用戶模式的串口和終端參數(shù),因?yàn)檫@些參數(shù)是由getty設(shè)置的,而在單用戶模式時(shí)沒有運(yùn)行g(shù)etty,所以用該文件保存參數(shù)。單用戶模式對(duì)系統(tǒng)平安是個(gè)威脅,我們應(yīng)該禁止使用單用戶模式,因此這個(gè)文件實(shí)際上并沒有必要復(fù)制過(guò)來(lái)。/etc/

溫馨提示

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

評(píng)論

0/150

提交評(píng)論