日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

Linux使用啟動加載中文件系統(tǒng)

出處:互聯(lián)網(wǎng)    發(fā)布于:2011-09-04 12:24:15

    Linux 操作系統(tǒng)是UNIX 操作系統(tǒng)的一種克隆系統(tǒng)。它誕生于1991 年的10 月5 日(這是次正式向外公布的時間)。以后借助于Internet 網(wǎng)絡(luò),并經(jīng)過全世界各地計算機愛好者的共同努力下,現(xiàn)已成為今天世界上使用多的一種UNIX 類操作系統(tǒng),并且使用人數(shù)還在迅猛增長.Linux 操作系統(tǒng)的誕生、發(fā)展和成長過程始終依賴著以下五個重要支柱:UNIX 操作系統(tǒng)、MINIX 操作系統(tǒng)、GNU 計劃、POSIX 標(biāo)準(zhǔn)和Internet 網(wǎng)絡(luò) 。

    Linux是的自由電腦操作系統(tǒng)內(nèi)核。它是一個用C語言和匯編語言寫成,符合POSIX標(biāo)準(zhǔn)的類Unix操作系統(tǒng)。Linux早是由芬蘭黑客林納斯.托瓦茲(Linus B. Torvalds)為嘗試在英特爾x86架構(gòu)上提供自由的類Unix操作系統(tǒng)而開發(fā)的。該計劃開始于1991年,林納斯·托瓦茲當(dāng)時在Usenet新聞組comp.os.minix登載帖子,這份的帖子標(biāo)示著Linux計劃的正式開始。在計劃的早期有一些Minix黑客提供了協(xié)助,而今天無數(shù)程序員正在為該計劃無償提供幫助。   技術(shù)上說Linux是一個內(nèi)核?!皟?nèi)核”指的是一個提供硬件抽象層、磁盤及文件系統(tǒng)控制、多任務(wù)等功能的系統(tǒng)軟件。一個內(nèi)核不是一套完整的操作系統(tǒng)。一套基于Linux內(nèi)核的完整操作系統(tǒng)叫作Linux操作系統(tǒng),或是GNU/Linux。

  大家看了上面Linux 操作系統(tǒng)應(yīng)該對它有一定的了解,現(xiàn)在就讓我來介紹Linux啟動過程中文件系統(tǒng)的加載是怎樣實現(xiàn)的。一些初學(xué)者可以看看,這也是我不在嵌入式那個版上發(fā)文的原因。對于高手來說,如果你們不吝嗇時間的話,希望也能幫我看看,指點一下其中的錯誤。這也是我到這里來和大家交流的目的。

   在完成了模塊驅(qū)動后,就要掛載文件系統(tǒng)了。我一直以為 :

  我編譯的內(nèi)核是采用了initrd的模式,設(shè)備是在RAM DISK文件系統(tǒng)下的/linuxrc腳本程序加載的,因此在這上面浪費了很多時間。不過對initrd算是有了比較深的理解,這個等一下再說。

  其實,內(nèi)核掛載的個文件系統(tǒng)就是nand flash中的root.cramfs,關(guān)于掛載相關(guān)的代碼mount_root()在文件/fs/super.c里面。隨后將devcie文件系統(tǒng)掛載到/dev目錄下面,代碼為mount_devfs_fs()。因為采用了noninitrd的模式,因此文件系統(tǒng)的掛載就完畢了,init進程繼續(xù)往下走到一直到運行:

  if (execute_command)execve(execute_command,argv_init,envp_init);這里init切換成另外一個線程,運行程序在execute_command中定義。execute_command是vivi傳進來的命令行,啟動過程中可以看到:

  Kernel command line: noinitrd root=/dev/bon/2 init=/linuxrc console=ttyS0因此execute_command對應(yīng)/linuxrc,因此程序運行根目錄下的腳本linuxrc,在我的系統(tǒng)中他對應(yīng):

  #!/bin/shecho "mount /etc as ramfs"/bin/mount -n -t ramfs ramfs /etc/bin/cp -a /mnt/etc/* /etcecho "re-create the /etc/mtab entries"/bin/mount -f -t cramfs -o remount,ro /dev/mtdblock/3 //bin/mount -f -t ramfs ramfs /etcexec /sbin/init這個就不解釋了(是啟動bash),大家可以在linux下把root.cramfs掛載到/mnt下面看看內(nèi)容就知道了:

  mount –t cramfs –o loop root.cramfs /mnt/cramfs這里其實想告訴大家,我們?nèi)绾螌崿F(xiàn)開機自動加載一些運行程序,現(xiàn)在應(yīng)該很明白了吧,寫個腳本就OK了。(其實是我以前一直在yy這個問題)講一下initrd(initail ram disk)原理我就不說了,陳詞濫調(diào)了,網(wǎng)上多的很。我將一點我的理解,initrd包含了部分module的驅(qū)動,從一定程度上分擔(dān)了內(nèi)核的大小,因為啟動的時候這兩者還是要同時被load到memory中去的;因此更重要的是它可以保證內(nèi)核的可移植性,對不同的硬件平臺,只要提供不同的initrd文件系統(tǒng),而內(nèi)核可以保持不變。因此,initrd的主要作用是加載一些復(fù)雜的與平臺相關(guān)的硬件,如SCSI硬盤驅(qū)動,網(wǎng)卡驅(qū)動(像無盤工作站,使用nfs)等。



  

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機號碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時間周一至周五
9:00-17:30

關(guān)注官方微信號,
第一時間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動力!意見一經(jīng)采納,將有感恩紅包奉上哦!