久久久久久久麻豆,中日韩av在线,麻豆av在线免费,中文字幕二区三区,欧美日韩视频一区二区,亚洲欧美日韩在线一区,国产无毒不卡

走進(jìn)Linux 操作系統(tǒng)


它們的,而前一階段都是由“硬件進(jìn)程”手工去做的。該階段,這個(gè)由ini_task創(chuàng)建的新進(jìn)程需要初始化總線、網(wǎng)絡(luò)并啟動(dòng)系統(tǒng)中的各種系統(tǒng)內(nèi)核后臺(tái)線程,然后再初始化外設(shè)、設(shè)置文件格式,在這之后,它要為進(jìn)入系統(tǒng)做最后的準(zhǔn)備——初始化文件系統(tǒng),安裝根文件,打開(kāi)/dev/console設(shè)備,重定向stdin、stdout和stderr到控制臺(tái),然后搜索文件系統(tǒng)中的init程序,并使用 execve()系統(tǒng)調(diào)用加載執(zhí)行init程序。系統(tǒng)自此進(jìn)入了用戶(hù)態(tài)。     init程序接著將依照initab配置文件中的選項(xiàng)依次執(zhí)行:     1 確定運(yùn)行級(jí)別(1-6)     2 運(yùn)行rc.sysinit腳本中的的系統(tǒng)服務(wù),如激活交換分區(qū),檢查磁盤(pán),加載硬件模塊等     3 運(yùn)行規(guī)定級(jí)別下的服務(wù):/etc/rc.d/rc*.d/下的s打頭的服務(wù),如網(wǎng)絡(luò)服務(wù)s*network。     4 在指定串口上運(yùn)行g(shù)etty程序,getty打開(kāi)終端線,并設(shè)置模式,然后運(yùn)行l(wèi)ogin程序。如果用戶(hù)帳號(hào)和密碼正確(需要通過(guò)/etc/passwd驗(yàn)證),則進(jìn)入用戶(hù)的工作目錄,并按照其工作目錄中的設(shè)置執(zhí)行相應(yīng)的shell。     到這里用戶(hù)才可以真正實(shí)用操作系統(tǒng)了。   idle進(jìn)程是個(gè)奇怪的進(jìn)程,它是在沒(méi)有別的任務(wù)使用cpu時(shí)是才使用cpu的,它的存在價(jià)值據(jù)說(shuō)可以延長(zhǎng)cpu壽命。     內(nèi)核后臺(tái)線程是種執(zhí)行在內(nèi)核態(tài)的進(jìn)程,它們和用戶(hù)進(jìn)程一樣受調(diào)度程序調(diào)度,系統(tǒng)利用它們周期性(不一定固定周期)地執(zhí)行一些自身管理方面的“家務(wù)事”。主要的幾種內(nèi)核線程為:bdflush——清理被寫(xiě)過(guò)的內(nèi)存緩沖區(qū);kup-date——按時(shí)將內(nèi)存緩沖區(qū)中的信息更新到磁盤(pán)中; kswapd——將內(nèi)存頁(yè)交換到磁盤(pán);keventd——關(guān)系系統(tǒng)事件;ksoftirq——執(zhí)行軟件中斷。                                                                                    搭建實(shí)驗(yàn)系統(tǒng)  很抱歉搭建一個(gè)linux操作系統(tǒng)到目前為止還沒(méi)有一個(gè)很標(biāo)準(zhǔn)的流程或規(guī)范,不過(guò)大體流程都大通小異,無(wú)非是首先編譯內(nèi)核——將內(nèi)核源代碼編譯成一個(gè)可執(zhí)行的鏡像文件,當(dāng)然編譯內(nèi)核時(shí)可能會(huì)帶有一些模塊也需要同期進(jìn)行編譯和安裝(是否有模塊取決于你的具體選擇)。  有了編譯后的內(nèi)核,接著就需要?jiǎng)?chuàng)建一個(gè)根文件系統(tǒng),在其中又需要?jiǎng)?chuàng)建必要的目錄。至于其中使用的軟件和庫(kù)函數(shù)你可以選擇下載源代碼包,然后交叉編譯,再進(jìn)行安裝?;蛘呶覀兺祩€(gè)懶,從一個(gè)發(fā)布的完整系統(tǒng)里直接拷貝需要的軟件和庫(kù),同時(shí)將必要的設(shè)備文件、配置文件和服務(wù)腳本也拷貝過(guò)來(lái),你這時(shí)所要做得僅僅是去修改一些相關(guān)的配置文件就可以擁有一個(gè)自己的文件系統(tǒng)了?! ?nèi)核與文件系統(tǒng)都有了,就可以說(shuō)一切具備只欠東風(fēng),你所需要做得只剩下將內(nèi)核和文件系統(tǒng)綁定到一起,讓系統(tǒng)被引導(dǎo)載入內(nèi)核,內(nèi)核載入后可以找到根文件系統(tǒng),并執(zhí)行其中的初始化程序。你可別以為這個(gè)收尾動(dòng)作能輕松搞定,往往初學(xué)者都在這里要栽跟頭?! ≡趺茨茉谧钚〉拇鷥r(jià)學(xué)習(xí)搭建系統(tǒng)呢?想想看可不是每個(gè)網(wǎng)友都能找個(gè)空硬盤(pán)或者磁盤(pán)(看看你的機(jī)器,也許連軟驅(qū)都沒(méi))來(lái)做新系統(tǒng)的,為了保護(hù)原有系統(tǒng),即便開(kāi)一個(gè)新分區(qū)都不能鼓勵(lì)。所以最好的方法就是用內(nèi)存模擬一個(gè)磁盤(pán),將創(chuàng)建的根文件系統(tǒng)放在其中,系統(tǒng)引導(dǎo)后,就登陸到內(nèi)存模擬的磁盤(pán)上運(yùn)行。這時(shí)你徹底跳出了你的物理硬盤(pán)。這種方法有時(shí)在嵌入系統(tǒng)中會(huì)被使用,或希望斷電后數(shù)據(jù)被抹掉的安全系統(tǒng)中使用。  下面我們就一同做個(gè)這樣的試驗(yàn)系統(tǒng),你付出的唯一代價(jià)是消耗些時(shí)間和無(wú)數(shù)次擊健。編譯內(nèi)核    第一步要做的工作就是挑選一個(gè)合適版本的內(nèi)核源代碼包,然后編譯它。不要以為編譯內(nèi)核很神秘,其實(shí)它和編譯普通程序差不多,內(nèi)核源代碼其實(shí)就是“一大堆”程序,編譯它就等于分別編譯個(gè)個(gè)程序然后在將它們鏈接成一個(gè)單一的可執(zhí)行鏡像文件。這個(gè)鏡像就是你在/boot目錄下看到的vmlinuz-*(如果你細(xì)心的話,一定能發(fā)現(xiàn)在該目錄下還有一個(gè)叫vmlinux的文件。其實(shí)這兩個(gè)文件是一回事,但前面那個(gè)是經(jīng)過(guò)壓縮的)   正如第一部分所說(shuō),linux內(nèi)核具有很強(qiáng)的伸縮性,在內(nèi)核里面許多功能是可選擇的,如果需要就可以被編譯到內(nèi)核,不過(guò)內(nèi)核會(huì)因此變的肥胖。一種可替代的方式是將某些功能編譯成模塊放在文件系統(tǒng)內(nèi),等你真正需要它時(shí),再由被載入到內(nèi)核,這樣就內(nèi)核就可以輕裝上陣了,啟動(dòng)起來(lái)也快許多?! ‰m然是個(gè)試驗(yàn)系統(tǒng),但還是盡力讓它功能做強(qiáng)點(diǎn)吧。所以在編譯前,配置內(nèi)核選項(xiàng)時(shí),除了支持最基本的ext2文件系統(tǒng),pci接口,自動(dòng)裝在模塊等功能外,再將ext3,jfs,即插即用,網(wǎng)絡(luò),scsi,usb等比較常用的功能加入。再一個(gè)就是為了能實(shí)現(xiàn)我們的虛擬內(nèi)存中建立根文件系統(tǒng),內(nèi)核還需要支持ramdisk 和initrd。內(nèi)核網(wǎng)絡(luò)設(shè)備選項(xiàng)里包含大量網(wǎng)卡驅(qū)動(dòng)程序,你必須知道自己網(wǎng)卡內(nèi)型才能正確選擇,一般情況都將網(wǎng)卡驅(qū)動(dòng)編譯未模塊,在系統(tǒng)啟動(dòng)后載入。我們?cè)囼?yàn)系統(tǒng)運(yùn)行在vmware下,而vmware虛擬網(wǎng)卡驅(qū)動(dòng)為pcnet32,因此這個(gè)模塊被包含進(jìn)來(lái)了。編譯步驟   先去下載一個(gè)內(nèi)核源代買(mǎi)不用我在多說(shuō)了吧。如果你實(shí)在是個(gè)衣來(lái)伸手的家伙,好吧告訴你,到www.kernel.org網(wǎng)站上蕩一個(gè)想要版本的內(nèi)核源代碼。如果是gz結(jié)尾的壓縮源文件,就使用tar xvzf linux-2.4.18.tar.gz解開(kāi),如果是gz2結(jié)尾的,就使用tar xvjf linux-2.4.18.tar.bz2解開(kāi)?! ?nèi)核版本編號(hào)可是有點(diǎn)講究的,簡(jiǎn)單的說(shuō),偶數(shù)為穩(wěn)定版本,奇數(shù)為開(kāi)發(fā)版本,所以我們用2.4.18版,一是因?yàn)樗鼘儆诜€(wěn)定版,再一個(gè)就使我機(jī)器里以前下載過(guò)它,不想再換了:)?! ∪缓筮M(jìn)入存放解開(kāi)后的內(nèi)核原代碼的目錄(標(biāo)準(zhǔn)系統(tǒng)默認(rèn)情況下在目錄/usr/src/linux下存放該系統(tǒng)的內(nèi)核源代碼),執(zhí)行命令make menuconfig進(jìn)行內(nèi)核功能配置,選擇需要的功能以模塊形式編譯或直接編譯到內(nèi)核。配置信息默認(rèn)情況下記錄在隱含文件.config中,你也可以選擇將其記錄到自定義文件中,比如可以把信息記錄在minisys.config中。在以后配置內(nèi)核時(shí)可以方便地導(dǎo)入指定的配置文件。<make 詳細(xì)解釋?zhuān)?gt;  make menucofig提供給你一個(gè)文本圖形界面的配置菜單,其中列出了內(nèi)核所能提供的全部功能,如果你在選項(xiàng)前選則*號(hào),那么該選項(xiàng)被編譯到內(nèi)核中,如果選m則被編譯為模塊,對(duì)于你不清楚的選項(xiàng)可以使用?查看其解釋。除了用make meunconfig外你有復(fù)古情節(jié)的話,可以試試使用make config,它完成同樣的功能,不過(guò)你得有足夠得耐心去忍受刷平一樣得命令行選擇<y><n> 。如果你在x環(huán)境下(桌面環(huán)境)不妨可以使用make xconfig配置,它相比前兩種方法得好處就試比較容易看清楚,對(duì)眼神不好得網(wǎng)友建議使用它。保存內(nèi)核配置后,就執(zhí)行        make dep  /*確保所有的相依關(guān)系,例如 include files 都沒(méi)問(wèn)題.除非你的電腦真的很慢,否則它不會(huì)花太久時(shí)間的*/       make clean ?/*清除核心編譯的所有目的檔以及其它東西.在重建一個(gè)核心之前不要忘記這個(gè)步驟*/make bzimage 或zimage/*編譯內(nèi)核——bz和z格式內(nèi)核之間******的差別是對(duì)于內(nèi)核體積大小的限制。zimage內(nèi)核需要放在實(shí)模式1mb的內(nèi)存之內(nèi),其體積受到了限制。而bzimage的內(nèi)核沒(méi)有1mb內(nèi)存限制*/  記住內(nèi)核編譯完了,還必須再編譯模塊, 即使您在配置內(nèi)核時(shí)沒(méi)有使用任何模塊,也不要跳過(guò)此步驟,在編譯完 bzimage 后立刻編譯并安裝模塊是個(gè)好習(xí)慣。而且,如果您真的沒(méi)有模塊需要編譯,這個(gè)步驟也非常快就結(jié)束了。        make modules; /*編譯內(nèi)核模塊,凡是配置內(nèi)核時(shí)標(biāo)記為m功能都將被編譯未模塊*/make modules_install。/*這將導(dǎo)致模塊被編譯而且被安裝到 /usr/lib/<內(nèi)核版本號(hào)> 目錄下。不過(guò)如果你想改變內(nèi)核鏡像或模塊的所在目錄,都可以通過(guò)修改內(nèi)核源碼中的makefile文件來(lái)達(dá)到,比如修改install_mod_path來(lái)改變模塊安裝目錄*/       等黃蜂一樣的字符風(fēng)暴再屏幕上停止后,你現(xiàn)在擁有了新內(nèi)核了。它藏在內(nèi)核源碼目錄下arch/i386/boot下叫bzimage或zimage。新內(nèi)核隨帶的模塊被安裝到了lib下的modules目錄中。組建文件系統(tǒng)  組建根文件系統(tǒng)說(shuō)白了更簡(jiǎn)單,一來(lái)格式化文件系統(tǒng)的宿主設(shè)備,二來(lái)就是拷貝需要的文件。簡(jiǎn)單明了吧!我們先來(lái)一同拷貝文件吧,等考完了再談宿主設(shè)備的問(wèn)題,別忘了我們可都是完空手套百狼呀?。ǔ丝截愇募?,更標(biāo)準(zhǔn)的方法是下栽各種工具包,在本地交叉編譯,在進(jìn)行安裝,不過(guò)為了省事,我們采用拷貝標(biāo)準(zhǔn)系統(tǒng)文件的方法來(lái)構(gòu)造文件系統(tǒng),不但方便而且異曲同工。但前提是新系統(tǒng)體系結(jié)構(gòu)——處理器——和我們?cè)舷到y(tǒng)一致,如果你想在0x86系統(tǒng)上編譯運(yùn)行在arm機(jī)上的文件系統(tǒng),那么最好是去下載源代碼包重新交叉編譯吧)                                                                                    

COPYRIGHT(C) 2011 廈門(mén)永宏亞得機(jī)電科技有限公司版權(quán)所有(閩ICP備05025945號(hào)) ALL RIGHTS RESERVED?

電話: 0592-5190891 傳真: 0592-5190720 E-Mail: E-mail:yade8895@163.com
地址: 廈門(mén)市海滄區(qū)興港六里17號(hào)2607室 郵編:361009 聯(lián)系人:翟先生