第7章 系統(tǒng)(初稿).pptx_第1頁
第7章 系統(tǒng)(初稿).pptx_第2頁
第7章 系統(tǒng)(初稿).pptx_第3頁
第7章 系統(tǒng)(初稿).pptx_第4頁
第7章 系統(tǒng)(初稿).pptx_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第7章 文件系統(tǒng),提綱,1、嵌入式文件系統(tǒng)介紹 2、嵌入式Linux文件系統(tǒng)框架 3、JFFS2嵌入式文件系統(tǒng) 4、根文件系統(tǒng),1、嵌入式文件系統(tǒng)介紹,文件系統(tǒng)是文件的數(shù)據(jù)結(jié)構(gòu)或組織方法,是操作系統(tǒng)中最直觀的部分,用戶通過文件直接地和操作系統(tǒng)交互。操作系統(tǒng)需要為計(jì)算機(jī)提供數(shù)據(jù)計(jì)算和數(shù)據(jù)存儲(chǔ)的功能,這些數(shù)據(jù)也是通過文件系統(tǒng)直觀地存儲(chǔ)在介質(zhì)上,操作系統(tǒng)則按照自己的數(shù)據(jù)格式管理這些文件。,嵌入式文件系統(tǒng)介紹,嵌入式文件系統(tǒng)就是在嵌入式系統(tǒng)中應(yīng)用的文件系統(tǒng)。嵌入式文件系統(tǒng)是嵌入式系統(tǒng)的一個(gè)重要組成部分,隨著嵌入式系統(tǒng)硬件設(shè)備的廣泛應(yīng)用和價(jià)格的不斷降低以及嵌入式系統(tǒng)應(yīng)用范圍的不斷擴(kuò)大,嵌入式文件系統(tǒng)的重

2、要性顯得更加突出。,嵌入式文件系統(tǒng)介紹,嵌入式操作系統(tǒng)的文件系統(tǒng)的設(shè)計(jì)目標(biāo) (1)使用簡單方便 (2)安全可靠 (3)實(shí)時(shí)響應(yīng) (4)接口標(biāo)注的開放性和可移植性 (5)可伸縮性和可配置性 (6)開放的體系結(jié)構(gòu) (7)資源有效性 (8)功能完整性 (9)熱插拔 (10)支持多種文件類型,嵌入式文件系統(tǒng)介紹,一些流行的嵌入式文件系統(tǒng) 國外的流行嵌入式操作系統(tǒng)產(chǎn)品基本上都有成熟的文件系統(tǒng),以下是除了Linux以外幾個(gè)主流的嵌入式操作系統(tǒng)的文件系統(tǒng)組件的概況 QNX VxWorks,嵌入式文件系統(tǒng)介紹,Linux文件系統(tǒng)簡介 Linux初期形成的文件系統(tǒng)有ext、ext2、xia、VFAT、Minix

3、、msdos、umsdos、proc、smb、ncp、iso9660、sysv、HPFS、AFFS和UFS等15種 現(xiàn)今Linux常用的文件系統(tǒng)包括Linux基本文件系統(tǒng)ext(extended file system)和DOS文件系統(tǒng)msdos、 Window文件系統(tǒng)VFAT和CD-ROM文件系統(tǒng)iso9660,嵌入式文件系統(tǒng)介紹,Linux初期的基本文件系統(tǒng)是Minix 1992年開發(fā)了Linux專用的文件系統(tǒng)ext(Extended File System) 1993年增加了ext2(Extended File System 2) 存儲(chǔ)文件系統(tǒng)的設(shè)備為block設(shè)備(block devi

4、ce),2、嵌入式Linux文件系統(tǒng)框架,現(xiàn)代操作系統(tǒng)都提供多種訪問存儲(chǔ)設(shè)備的方法,嵌入式Linux文件系統(tǒng)框架,設(shè)備驅(qū)動(dòng)提供用戶空間設(shè)備API去直接控制硬件設(shè)備 用戶的進(jìn)程就可以繞過操作系統(tǒng)而直接讀寫磁盤上的內(nèi)容 操作系統(tǒng)難以保證自身數(shù)據(jù)的完整性,其數(shù)據(jù)區(qū)中的內(nèi)容很有可能會(huì)被用戶空間的程序覆蓋,使得系統(tǒng)的穩(wěn)定性也大大地降低,嵌入式Linux文件系統(tǒng)框架,大部分操作系統(tǒng)都是由文件管理器來使用設(shè)備API,而對(duì)上層用戶空間的應(yīng)用程序提供文件API 在特殊的環(huán)境下才允許用戶通過設(shè)備API訪問硬件設(shè)備,嵌入式Linux文件系統(tǒng)框架,在Unix操作系統(tǒng)中,磁盤上的文件大致是按照樹的形式來組織 系統(tǒng)中通過

5、連接將“樹”上的“葉子”連接到其他的“葉子”或者“分支處”,嵌入式Linux文件系統(tǒng)框架,Linux文件系統(tǒng)的組織框架有兩條獨(dú)立控制設(shè)備驅(qū)動(dòng)的途徑通過設(shè)備驅(qū)動(dòng)的接口,另一條是通過文件管理器接口。 在Unix系統(tǒng)或在Linux系統(tǒng)中,設(shè)備驅(qū)動(dòng)的接口API都是從文件管理器API中繼承下來的,所以這些設(shè)備API都有open()、close()、read()、write()、lseek()和ioctl()等與文件API類似的接口。,嵌入式Linux文件系統(tǒng)框架,嵌入式Linux中三種常用的塊驅(qū)動(dòng)程序 (1)Blkmem驅(qū)動(dòng)層 (2)RamDisk驅(qū)動(dòng)層 (3)MTD驅(qū)動(dòng)層,3、JFFS2嵌入式文件系統(tǒng)

6、,JFFS2是RedHat公司基于JFFS開發(fā)的閃存文件系統(tǒng) JFFS2克服了JFFS中的以下缺點(diǎn): (1)使用了基于哈希表的日志節(jié)點(diǎn)結(jié)構(gòu),大大加快了對(duì)節(jié)點(diǎn)的操作速度。 (2)支持?jǐn)?shù)據(jù)壓縮。 (3)提供了“寫平衡”支持。 (4)支持多種節(jié)點(diǎn)類型(數(shù)據(jù)I節(jié)點(diǎn),目錄I節(jié)點(diǎn)等)。 (5)提高了對(duì)閃存的利用率,降低了內(nèi)存的消耗。,JFFS2嵌入式文件系統(tǒng),JFFS2 是一個(gè)日志結(jié)構(gòu)(log-structured)的文件系統(tǒng),包含數(shù)據(jù)和元數(shù)據(jù)(meta-data)的節(jié)點(diǎn)在閃存上順序的存儲(chǔ) JFFS2中定義了多種節(jié)點(diǎn),但是每種節(jié)點(diǎn)都包含下面的信息:,JFFS2嵌入式文件系統(tǒng),JFFS2將文件系統(tǒng)的數(shù)據(jù)和元

7、數(shù)據(jù)以節(jié)點(diǎn)的形式存儲(chǔ)在閃存上。 JFFS2數(shù)據(jù)結(jié)構(gòu)內(nèi)存表示,JFFS2嵌入式文件系統(tǒng),magic的最左邊兩位用來表示節(jié)點(diǎn)類型,作為對(duì)nodetype的補(bǔ)充,表示的類型包括: (1)JFFS2_FEATURE_INCOMPAT (2)JFFS2_FEATURE_ROCOMPAT (3)JFFS2_FEATURE-RWCOMPAT_DELETE (4)JFFS2_FEATURE_RWCOMPAT_COPY:,JFFS2嵌入式文件系統(tǒng),JFFS2 定義了三種節(jié)點(diǎn)類型 (1)JFFS2_NODETYPE_INODE (2)JFFS2_NODETYPE_DIRENT (3)JFFS2_NODETYPE_

8、CLEANMARKER,JFFS2嵌入式文件系統(tǒng),目錄節(jié)點(diǎn)的定義,JFFS2嵌入式文件系統(tǒng),數(shù)據(jù)節(jié)點(diǎn),JFFS2嵌入式文件系統(tǒng),可靠性支持 如果在對(duì)閃存進(jìn)行擦寫操作的時(shí)候突然掉電,可能會(huì)出現(xiàn)有部分?jǐn)?shù)據(jù)沒有被擦寫干凈的情況。為了解決這個(gè)問題,JFFS2對(duì)塊操作的時(shí)候,如果操作成功,會(huì)在塊的開始做上標(biāo)記,通過這個(gè)標(biāo)記表明塊內(nèi)的數(shù)據(jù)處于一致狀態(tài)。,JFFS2嵌入式文件系統(tǒng),內(nèi)存使用 JFFS2中I節(jié)點(diǎn)的信息并沒有全部存放在內(nèi)存里面。mount操作時(shí),會(huì)為節(jié)點(diǎn)建立映射表,但是這個(gè)映射表并不全部存放在內(nèi)存里面,存放在內(nèi)存中的節(jié)點(diǎn)信息是一個(gè)縮小尺寸的jffs2_raw_inode結(jié)構(gòu)體jffs2_raw_

9、node_ref,JFFS2嵌入式文件系統(tǒng),jffs2_raw_node_ref,JFFS2嵌入式文件系統(tǒng),Jffs2_raw_node_ref信息在內(nèi)存中通過jffs2_inode_cache結(jié)構(gòu)進(jìn)行管理,JFFS2嵌入式文件系統(tǒng),內(nèi)存中jffs2_inode_cache和jffs2_raw_node_ref的關(guān)系如圖所示,JFFS2嵌入式文件系統(tǒng),JFFS2使用了多個(gè)級(jí)別的待回收塊隊(duì)列。垃圾收集有這樣幾步: (1)先看bad_used_list鏈表中是否有節(jié)點(diǎn),如果有,先回收這個(gè)鏈表的節(jié)點(diǎn),因?yàn)檫@個(gè)鏈表中的節(jié)點(diǎn)由于閃存的物理原因很快要失效了。 (2)做完了bad_used_list鏈表的回

10、收,然后回收dirty_list鏈表。,JFFS2嵌入式文件系統(tǒng),寫平衡 寫平衡策略是在垃圾收集中實(shí)現(xiàn)的,垃圾收集的時(shí)候會(huì)讀取系統(tǒng)時(shí)間,使用這個(gè)系統(tǒng)時(shí)間產(chǎn)生一個(gè)偽隨機(jī)數(shù)。利用這個(gè)偽隨機(jī)數(shù)結(jié)合不同的待回收鏈表選擇要進(jìn)行回收的鏈表。使用了這個(gè)平衡策略以后能提供較好的寫平衡效果。,JFFS2嵌入式文件系統(tǒng),JFFS2的不足之處 (1)掛載時(shí)間過長 (2)磨損平衡的隨意性 (3)很差的擴(kuò)展性,JFFS2嵌入式文件系統(tǒng),JFFS3簡介 JFFS3的設(shè)計(jì)目標(biāo)是支持大容量閃存(1TB)的文件系統(tǒng)。JFFS3與JFFS2在設(shè)計(jì)上根本的區(qū)別在于,JFFS3將索引信息存放在閃存上,而 JFFS2將索引信息保存在內(nèi)存中。,4、根文件系統(tǒng),Linux啟動(dòng)時(shí),第一個(gè)必須掛載的是根文件系統(tǒng);若系統(tǒng)不能從指定設(shè)備上掛載根文件系統(tǒng),則系統(tǒng)會(huì)出錯(cuò)而退出啟動(dòng)。之后可以自動(dòng)或手動(dòng)掛載其他的文件系統(tǒng)。因此,一個(gè)系統(tǒng)中可以同時(shí)存在不同的文件系統(tǒng)。,根文件系統(tǒng),什么是根文件系統(tǒng) 系統(tǒng)掛載的第一個(gè)文件系統(tǒng) 本質(zhì)來說,根文件系統(tǒng)就是一種目錄結(jié)構(gòu) 根文件系統(tǒng)和普通的文件系統(tǒng)的區(qū)別在于,根文件系統(tǒng)要包括Linux啟動(dòng)時(shí)所必需的目錄和關(guān)鍵性的文件,根文件系統(tǒng),根文件系統(tǒng)頂層目錄,根文件系統(tǒng),建立JFFS2根文件系統(tǒng) J

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論