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)利。
- ARM技術(shù)架構(gòu)與應(yīng)用開發(fā)實踐指南2026/1/6 10:40:19
- 嵌入式實時操作系統(tǒng)(RTOS)選型與移植技術(shù)指南2025/12/31 10:42:31
- 工業(yè)嵌入式系統(tǒng):通信接口技術(shù)選型與抗干擾設(shè)計實踐2025/12/15 14:36:53
- 深入解析嵌入式 OPENAMP 框架:開啟異核通信新時代2025/7/22 16:27:29
- 一文快速了解OPENWRT基礎(chǔ)知識2025/7/14 16:59:04
- 高速PCB信號完整性(SI)設(shè)計核心實操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護設(shè)計
- 連接器耐腐蝕性能測試方法
- PCB電磁兼容(EMC)設(shè)計與干擾抑制核心實操規(guī)范
- 用于相位噪聲測量的低通濾波器設(shè)計與本振凈化技術(shù)
- MOSFET在高頻開關(guān)中的EMI問題
- 電源IC在便攜式設(shè)備中的設(shè)計要點
- 連接器結(jié)構(gòu)設(shè)計常見問題分析









