• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 297,  comments - 15,  trackbacks - 0
            文件系統(tǒng)文件存在的物理空間。在Linux系統(tǒng)中,每個(gè)分區(qū)都是一個(gè)文件系統(tǒng),都有自己的目錄層次結(jié)構(gòu)。Linux的最重要特征之一就是支持多種文件系統(tǒng),這樣它更加靈活,并可以和許多其它種操作系統(tǒng)共存。Virtual File System(虛擬文件系統(tǒng))使得Linux可以支持多個(gè)不同的文件系統(tǒng)。由于系統(tǒng)已將Linux文件系統(tǒng)的所有細(xì)節(jié)進(jìn)行了轉(zhuǎn)換,所以Linux核心的其它部分及系統(tǒng)中運(yùn)行的程序?qū)⒖吹浇y(tǒng)一的文件系統(tǒng)。Linux的虛擬文件系統(tǒng)允許用戶(hù)同時(shí)能透明地安裝許多不同的文件系統(tǒng)。虛擬文件系統(tǒng)是為L(zhǎng)inux用戶(hù)提供快速且高效的文件訪問(wèn)服務(wù)而設(shè)計(jì)的。
                隨著Linux的不斷發(fā)展,它所支持的文件格式系統(tǒng)也在迅速擴(kuò)充。特別是Linux 2.4內(nèi)核正式推出后,出現(xiàn)了大量新的文件系統(tǒng),其中包括日志文件系統(tǒng)ext3、ReiserFS、XFS、JFS和其它文件系統(tǒng)。Linux系統(tǒng)核心可以支持十多種文件系統(tǒng)類(lèi)型:JFS、 ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC等。
                下面介紹Linux下幾個(gè)最常用的文件系統(tǒng),其中包括ext、ext2、ext3、JFS、XFS、ReiserFS等。
             
            ext
                ext是第一個(gè)專(zhuān)門(mén)為L(zhǎng)inux開(kāi)發(fā)的文件系統(tǒng)類(lèi)型,叫做擴(kuò)展文件系統(tǒng)。它是1992年4月完成的,對(duì)Linux早期的發(fā)展產(chǎn)生了重要作用。但是,由于其在穩(wěn)定性、速度和兼容性上存在許多缺陷,現(xiàn)在已經(jīng)很少使用了。
             
            ext2
                ext2是為解決ext文件系統(tǒng)的缺陷而設(shè)計(jì)的可擴(kuò)展的、高性能的文件系統(tǒng),它又被稱(chēng)為二級(jí)擴(kuò)展文件系統(tǒng)。ext2是1993年發(fā)布的,設(shè)計(jì)者是Rey Card。它是Linux文件系統(tǒng)類(lèi)型中使用最多的格式,并且在速度和CPU利用率上較為突出,是GNU/Linux系統(tǒng)中標(biāo)準(zhǔn)的文件系統(tǒng)。它存取文件的性能極好,對(duì)于中、小型的文件更顯示出優(yōu)勢(shì),這主要得益于其簇快取層的優(yōu)良設(shè)計(jì)。ext2可以支持256字節(jié)的長(zhǎng)文件名,其單一文件大小和文件系統(tǒng)本身的容量上限與文件系統(tǒng)本身的簇大小有關(guān)。在常見(jiàn)的Intel x86兼容處理器的系統(tǒng)中,簇最大為4KB,單一文件大小上限為2048GB, 而文件系統(tǒng)的容量上限為6384GB。盡管Linux可以支持種類(lèi)繁多的文件系統(tǒng),但是2000年以前幾乎所有的Linux發(fā)行版都使用ext2作為默認(rèn)的文件系統(tǒng)。 
                ext2也有一些問(wèn)題。由于它的設(shè)計(jì)者主要考慮的是文件系統(tǒng)性能方面的問(wèn)題,而在寫(xiě)入文件內(nèi)容的同時(shí),并沒(méi)有寫(xiě)入文件的meta-data(和文件有關(guān)的信息,例如權(quán)限、所有者及創(chuàng)建和訪問(wèn)時(shí)間)。換句話(huà)說(shuō),Linux先寫(xiě)入文件的內(nèi)容,然后等到有空的時(shí)候才寫(xiě)入文件的meta-data。如果出現(xiàn)寫(xiě)入文件內(nèi)容之后,但在寫(xiě)入文件的meta-data之前系統(tǒng)突然斷電,就可能造成文件系統(tǒng)就會(huì)處于不一致的狀態(tài)。在一個(gè)有大量文件操作的系統(tǒng)中,出現(xiàn)這種情況會(huì)導(dǎo)致很?chē)?yán)重的后果。另外,由于目前Linux的 2.4內(nèi)核所能使用的單一分割區(qū)最大只有2048GB,盡管文件系統(tǒng)的容量上限為6384G,但是實(shí)際上能使用的文件系統(tǒng)容量最多也只有2048GB。
             
            ext3
                在講解ext3、JFS、XFS、ReiserFS日志格式文件系統(tǒng)之前,先介紹一些日志式文件系統(tǒng)基礎(chǔ)。
                日志式文件系統(tǒng)起源于Oracle、Sybase等大型數(shù)據(jù)庫(kù)。由于數(shù)據(jù)庫(kù)操作往往是由多個(gè)相關(guān)的、相互依賴(lài)的子操作組成,任何一個(gè)子操作的失敗都意味著整個(gè)操作的無(wú)效性,對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的任何修改都要恢復(fù)到操作以前的狀態(tài)。Linux日志式文件系統(tǒng)就是由此發(fā)展而來(lái)的。日志文件系統(tǒng)通過(guò)增加一個(gè)叫做日志的、新的數(shù)據(jù)結(jié)構(gòu)來(lái)解決這個(gè)“fsck”問(wèn)題。這個(gè)日志是位于磁盤(pán)上的結(jié)構(gòu)。在對(duì)元數(shù)據(jù)做任何改變以前,文件系統(tǒng)驅(qū)動(dòng)程序會(huì)向日志中寫(xiě)入一個(gè)條目,這個(gè)條目描述了它將要做些什么,所以日志文件具有可伸縮性和健壯性。在分區(qū)中保存日志記錄文件好處是:文件系統(tǒng)寫(xiě)操作首先是對(duì)記錄文件進(jìn)行操作,若整個(gè)寫(xiě)操作由于某種原因(如系統(tǒng)掉電)而中斷,則在下次系統(tǒng)啟動(dòng)時(shí)就會(huì)讀日志記錄文件的內(nèi)容,恢復(fù)到?jīng)]有完成的寫(xiě)操作,這個(gè)過(guò)程一般只需要兩三分鐘時(shí)間。
                ext3是由開(kāi)放資源社區(qū)開(kāi)發(fā)的日志文件系統(tǒng),早期主要開(kāi)發(fā)人員是Stephen Tweedie。ext3被設(shè)計(jì)成是ext2的升級(jí)版本,盡可能方便用戶(hù)從ext2向ext3遷移。ext3在ext2的基礎(chǔ)上加入了記錄元數(shù)據(jù)的日志功能,努力保持向前和向后的兼容性,也就是在保有目前ext2的格式之下再加上日志功能。和ext2相比,ext3提供了更佳的安全性,這就是數(shù)據(jù)日志和元數(shù)據(jù)日志之間的不同。ext3是一種日志式文件系統(tǒng),日志式文件系統(tǒng)的優(yōu)越性在于由于文件系統(tǒng)都有快取層參與運(yùn)作,如不使用時(shí)必須將文件系統(tǒng)卸下,以便將快取層的資料寫(xiě)回磁盤(pán)中。因此,每當(dāng)系統(tǒng)要關(guān)機(jī)時(shí),必須將其所有的文件系統(tǒng)全部卸下后才能進(jìn)行關(guān)機(jī)。如果在文件系統(tǒng)尚未卸下前就關(guān)機(jī) (如停電),那么重開(kāi)機(jī)后就會(huì)造成文件系統(tǒng)的資料不一致,故這時(shí)必須做文件系統(tǒng)的重整工作,將不一致與錯(cuò)誤的地方修復(fù)。然而,這個(gè)過(guò)程是相當(dāng)耗時(shí)的,特別是容量大的文件系統(tǒng)不能百分之百保證所有的資料都不會(huì)流失,特別在大型的服務(wù)器上可能會(huì)出現(xiàn)問(wèn)題。除了與ext2兼容之外,ext3還通過(guò)共享ext2的元數(shù)據(jù)格式繼承了ext2的其它優(yōu)點(diǎn)。比如,ext3用戶(hù)可以使用一個(gè)穩(wěn)固的fsck工具。由于ext3基于ext2的代碼,所以它的磁盤(pán)格式和ext2的相同,這意味著一個(gè)干凈卸裝的ext3文件系統(tǒng)可以作為ext2文件系統(tǒng)毫無(wú)問(wèn)題地重新掛裝。如果現(xiàn)在使用的是ext2文件系統(tǒng),并且對(duì)數(shù)據(jù)安全性要求很高,這里建議考慮升級(jí)使用ext3。
                ext3最大的缺點(diǎn)是,它沒(méi)有現(xiàn)代文件系統(tǒng)所具有的、能提高文件數(shù)據(jù)處理速度和解壓的高性能。此外,使用ext3文件系統(tǒng)要注意硬盤(pán)限額問(wèn)題,在這個(gè)問(wèn)題解決之前,不推薦在重要的企業(yè)應(yīng)用上采用ext3+Disk Quota(磁盤(pán)配額)。  
             
            JFS
                JFS是一種提供日志的字節(jié)級(jí)文件系統(tǒng)。該文件系統(tǒng)主要是為滿(mǎn)足服務(wù)器(從單處理器系統(tǒng)到高級(jí)多處理器和群集系統(tǒng))的高吞吐量和可靠性需求而設(shè)計(jì)、開(kāi)發(fā)的。JFS文件系統(tǒng)是為面向事務(wù)的高性能系統(tǒng)而開(kāi)發(fā)的。在IBM的AIX系統(tǒng)上,JFS已經(jīng)過(guò)較長(zhǎng)時(shí)間的測(cè)試,結(jié)果表明它是可靠、快速和容易使用的。2000年2月,IBM宣布在一個(gè)開(kāi)放資源許可證下移植Linux版本的JFS文件系統(tǒng)。JFS也是一個(gè)有大量用戶(hù)安裝使用的企業(yè)級(jí)文件系統(tǒng),具有可伸縮性和健壯性。與非日志文件系統(tǒng)相比,它的突出優(yōu)點(diǎn)是快速重啟能力,JFS能夠在幾秒或幾分鐘內(nèi)就把文件系統(tǒng)恢復(fù)到一致?tīng)顟B(tài)。雖然JFS主要是為滿(mǎn)足服務(wù)器(從單處理器系統(tǒng)到高級(jí)多處理器和群集系統(tǒng))的高吞吐量和可靠性需求而設(shè)計(jì)的,但還可以用于想得到高性能和可靠性的客戶(hù)機(jī)配置,因?yàn)樵?strong style="color: rgb(0, 0, 0); background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 204, 153); background-position: initial initial; background-repeat: initial initial; ">系統(tǒng)崩潰時(shí)JFS能提供快速文件系統(tǒng)重啟時(shí)間,所以它是因特網(wǎng)文件服務(wù)器的關(guān)鍵技術(shù)。使用數(shù)據(jù)庫(kù)日志處理技術(shù),JFS能在幾秒或幾分鐘之內(nèi)把文件系統(tǒng)恢復(fù)到一致?tīng)顟B(tài)。而在非日志文件系統(tǒng)中,文件恢復(fù)可能花費(fèi)幾小時(shí)或幾天。
                JFS的缺點(diǎn)是,使用JFS日志文件系統(tǒng)性能上會(huì)有一定損失,系統(tǒng)資源占用的比率也偏高,因?yàn)楫?dāng)它保存一個(gè)日志時(shí),系統(tǒng)需要寫(xiě)許多數(shù)據(jù)。
             
            ReiserFS
                ReiserFS的第一次公開(kāi)亮相是在1997年7月23日,Hans Reiser把他的基于平衡樹(shù)結(jié)構(gòu)的ReiserFS文件系統(tǒng)在網(wǎng)上公布。ReiserFS 3.6.x(作為L(zhǎng)inux 2.4一部分的版本)是由Hans Reiser和他的Namesys開(kāi)發(fā)組共同開(kāi)發(fā)設(shè)計(jì)的。SuSE Linux也對(duì)它的發(fā)展起了重大的幫助。Hans和他的組員們相信最好的文件系統(tǒng)是能夠有助于創(chuàng)建獨(dú)立的共享環(huán)境或命名空間的文件系統(tǒng),應(yīng)用程序可以在其中更直接、有效和有力地相互作用。為了實(shí)現(xiàn)這一目標(biāo),文件系統(tǒng)就應(yīng)該滿(mǎn)足使用者對(duì)性能和功能方面的需要。那樣使用者就能夠繼續(xù)直接地使用文件系統(tǒng),而不必建造運(yùn)行在文件系統(tǒng)之上(如數(shù)據(jù)庫(kù)之類(lèi))的特殊目的層。ReiserFS 使用了特殊的、優(yōu)化的平衡樹(shù)(每個(gè)文件系統(tǒng)一個(gè))來(lái)組織所有的文件系統(tǒng)數(shù)據(jù),這為其自身提供了非常不錯(cuò)的性能改進(jìn),也能夠減輕文件系統(tǒng)設(shè)計(jì)上的人為約束。另一個(gè)使用平衡樹(shù)的好處就是,ReiserFS 能夠像其它大多數(shù)的下一代文件系統(tǒng)一樣,根據(jù)需要?jiǎng)討B(tài)地分配索引節(jié),而不必在文件系統(tǒng)創(chuàng)建時(shí)建立固定的索引節(jié)。這有助于文件系統(tǒng)更靈活地適應(yīng)面臨的各種存儲(chǔ)需要,同時(shí)提供附加的空間有效率。
                ReiserFS被看作是一個(gè)更加激進(jìn)和現(xiàn)代的文件系統(tǒng)。傳統(tǒng)的Unix文件系統(tǒng)是按磁盤(pán)塊來(lái)進(jìn)行空間分配的,對(duì)于目錄和文件等的查找使用了簡(jiǎn)單的線(xiàn)性查找。這些設(shè)計(jì)在當(dāng)時(shí)是合適的,但隨著磁盤(pán)容量的增大和應(yīng)用需求的增加,傳統(tǒng)文件系統(tǒng)在存儲(chǔ)效率、速度和功能上已顯得落后。在ReiserFS的下一個(gè)版本—Reiser 4,將提供了對(duì)事務(wù)的支持。ReiserFS突出的地方還在于其設(shè)計(jì)上著眼于實(shí)現(xiàn)一些未來(lái)的插件程序,這些插件程序可以提供訪問(wèn)控制列表、超級(jí)鏈接,以及一些其它非常不錯(cuò)的功能。在http://www.namesys.com/v4/v4.html中,有Reiser 4的介紹和性能測(cè)試。
                ReiserFS一個(gè)最受批評(píng)的缺點(diǎn)是,每升級(jí)一個(gè)版本都將要將磁盤(pán)重新格式化一次,而且它的安全性能和穩(wěn)定性與ext3相比有一定的差距。因?yàn)镽eiserFS文件系統(tǒng)還不能正確處理超長(zhǎng)的文件目錄,如果創(chuàng)建一個(gè)超過(guò)768字符的文件目錄,并使用ls或其它echo命令,將有可能導(dǎo)致系統(tǒng)掛起。在http://www.namesys.com/ 網(wǎng)站可以了解關(guān)于ReiserFS的更多信息。
             
            XFS
                XFS是一種非常優(yōu)秀的日志文件系統(tǒng),它是由SGI于20世紀(jì)90年代初開(kāi)發(fā)的。XFS推出后被業(yè)界稱(chēng)為先進(jìn)的、最具可升級(jí)性的文件系統(tǒng)技術(shù)。它是一個(gè)全64位、快速、穩(wěn)固的日志文件系統(tǒng),多年用于SGI的IRIX操作系統(tǒng)。當(dāng)SGI決定支持Linux社區(qū)時(shí),它將關(guān)鍵的基本架構(gòu)技術(shù)授權(quán)于Linux,以開(kāi)放資源形式發(fā)布了他們自己擁有的XFS的源代碼,并開(kāi)始進(jìn)行移植。此項(xiàng)工作進(jìn)展得很快,目前已進(jìn)入beta版階段。作為一個(gè)64位文件系統(tǒng),XFS可以支持超大數(shù)量的文件(9000×1GB),可在大型2D和3D數(shù)據(jù)方面提供顯著的性能。XFS有能力預(yù)測(cè)其它文件系統(tǒng)薄弱環(huán)節(jié),同時(shí)提供了在不妨礙性能的情況下增強(qiáng)可靠性和快速的事故恢復(fù)。
                XFS可為L(zhǎng)inux和開(kāi)放資源社區(qū)帶來(lái)如下新特性:
                * 可升級(jí)性 XFS被設(shè)計(jì)成可升級(jí),以面對(duì)大多數(shù)的存儲(chǔ)容量和I/O存儲(chǔ)需求;可處理大型文件和包含巨大數(shù)量文件的大型目錄,以滿(mǎn)足21世紀(jì)快速增長(zhǎng)的磁盤(pán)需求。XFS有能力動(dòng)態(tài)地為文件分配索引空間,使系統(tǒng)形成高效支持大數(shù)量文件的能力。在它的支持下,用戶(hù)可使用的文件遠(yuǎn)遠(yuǎn)大于現(xiàn)在最大的文件系統(tǒng)
                * 優(yōu)秀的I/O 性能 典型的現(xiàn)代服務(wù)器使用大型的條帶式磁盤(pán)陣列,以提供達(dá)數(shù)GB/秒的總帶寬。XFS可以很好地滿(mǎn)足I/O請(qǐng)求的大小和并發(fā)I/O請(qǐng)求的數(shù)量。XFS可作為root文件系統(tǒng),并被LILO支持,也可以在NFS服務(wù)器上使用,并支持軟件磁盤(pán)陣列(RAID)和邏輯卷管理器(Logical Volume Manager,LVM)。
                由于XFS比較復(fù)雜,實(shí)施起來(lái)有一些難度(包括人員培訓(xùn)等),所以目前XFS主要應(yīng)用于Linux企業(yè)應(yīng)用的高端。
             
            其它文件系統(tǒng)
                上面介紹了六種主要文件系統(tǒng),下面簡(jiǎn)單介紹一些其它文件系統(tǒng)
                * Minix 是Linux支持的第一個(gè)文件系統(tǒng),對(duì)用戶(hù)有很多限制,性能低下,有些沒(méi)有時(shí)間標(biāo)記,文件名最長(zhǎng)l4個(gè)字符。Minix文件系統(tǒng)最大缺點(diǎn)是只能使用64MB的硬盤(pán)分區(qū),所以目前已經(jīng)沒(méi)有人使用它了。
                * Xia 是Minix文件系統(tǒng)修正后的版本,在一定程度上解決了文件名和文件系統(tǒng)大小的局限。但是沒(méi)有新的特色,目前很少有人使用。
                * ISO9660 標(biāo)準(zhǔn)CDROM文件系統(tǒng),通用的Rock Ridge增強(qiáng)系統(tǒng),允許長(zhǎng)文件名。
                * NFS Sun公司推出的網(wǎng)絡(luò)文件系統(tǒng),允許多臺(tái)計(jì)算機(jī)之間共享同一文件系統(tǒng),易于從所有這些計(jì)算機(jī)上存取文件
                * SysV 是System V/Coherent在Linux平臺(tái)上的文件系統(tǒng)
             
                除了上面這些Linux文件系統(tǒng)外,Linux也可以支持基于Windows和Netware的文件系統(tǒng),例如UMSDOS、MSDOS、VFAT、HPFS、SMB和NCPFS等。兼容這些文件系統(tǒng)對(duì)Linux用戶(hù)也是很重要的,畢竟在桌面環(huán)境下Windows文件系統(tǒng)還是很流行的,而Netware網(wǎng)絡(luò)也有許多用戶(hù),Linux用戶(hù)也需要共享這些文件系統(tǒng)的數(shù)據(jù)。
                * UMSDOS Linux下的擴(kuò)展MSDOS文件系統(tǒng)驅(qū)動(dòng),支持長(zhǎng)文件名、所有者、允許權(quán)限、連接和設(shè)備文件。允許一個(gè)普通的MSDOS文件系統(tǒng)用于Linux,而且無(wú)須為它建立單獨(dú)的分區(qū)。
                * MSDOS 是在DOS、Windows和某些OS/2操作系統(tǒng)上使用的一種文件系統(tǒng),其名稱(chēng)采用“8+3”的形式,即8個(gè)字符的文件名加上3個(gè)字符的擴(kuò)展名。
                * VFAT 是Windows 9x和Windows NT/2000下使用的一種DOS文件系統(tǒng),其在DOS文件系統(tǒng)的基礎(chǔ)上增加了對(duì)長(zhǎng)文件名的支持。
                * HPFS 高性能文件系統(tǒng)(High Performance File System,HPFS)是微軟的LAN Manager中的文件系統(tǒng),同時(shí)也是IBM的LAN Server和OS/2的文件系統(tǒng)。HPFS能訪問(wèn)較大的硬盤(pán)驅(qū)動(dòng)器,提供了更多的組織特性,并改善了文件系統(tǒng)的安全特性。
                * SMB 是一種支持Windows for Workgroups、Windows NT和Lan Manager的基于SMB協(xié)議的網(wǎng)絡(luò)操作系統(tǒng)。
                * NCPFS 是一種Novell NetWare使用的NCP協(xié)議的網(wǎng)絡(luò)操作系統(tǒng)。
                * NTFS 是Windows NT/2000操作系統(tǒng)支持的、一個(gè)特別為網(wǎng)絡(luò)和磁盤(pán)配額、文件加密等管理安全特性設(shè)計(jì)的磁盤(pán)格式
               
                下面介紹些關(guān)于嵌入式 Linux 系統(tǒng)方面的文件格式
                * JFFS/JFFS2 文件系統(tǒng)
                JFFS文件系統(tǒng)是瑞典Axis Communications AB為嵌入式系統(tǒng)開(kāi)發(fā)的日志文件系統(tǒng)
                JFFS1應(yīng)用在Linux2.2以上版木中,JFFS2在Linux2.4內(nèi)核和Ecos中。Linux的實(shí)現(xiàn)中,JFFS必須建立在MTD驅(qū)動(dòng)程序的上層。這里MTD的作用是為JFFS提供操作NAND或者NOR芯片的接口。

            文件系統(tǒng)層次圖
                JFFS是針對(duì)以閃存為存儲(chǔ)介質(zhì)的嵌入式系統(tǒng),所以充分考慮了閃存的物理局限性,使用了盡可能高效的日志系統(tǒng)。和TrueFFS以及其他中間層驅(qū)動(dòng)相比,JFFS是專(zhuān)門(mén)針對(duì)閃存的文件系統(tǒng),這個(gè)文件系統(tǒng)除了有日志功能,還包含了TrueFFS中的負(fù)載平衡、垃圾收集等功能。另外一個(gè)重要特點(diǎn)是這個(gè)文件系統(tǒng)是源代碼公開(kāi)的,方便了學(xué)習(xí)和使用。此外使用了日志系統(tǒng),使文件系統(tǒng)更加可靠。
             
                * YAFFS (Yet Another Flash File System),是一種類(lèi)似于JFFS/JFFS2的專(zhuān)門(mén)為Flash設(shè)計(jì)的嵌入式文件系統(tǒng)。與JFFS相比,它減少了一些功能,因此速度更快、占用內(nèi)存更少。
                YAFFS和JFFS都提供了寫(xiě)均衡,垃圾收集等底層操作。它們的不同之處在于:
                (1)、JFFS是一種日志文件系統(tǒng),通過(guò)日志機(jī)制保證文件系統(tǒng)的穩(wěn)定性。YAFFS僅僅借鑒了日志系統(tǒng)的思想,不提供日志機(jī)能,所以穩(wěn)定性不如JFFS,但是資源占用少。
                (2)、JFFS中使用多級(jí)鏈表管理需要回收的臟塊,并且使用系統(tǒng)生成偽隨機(jī)變量決定要回收的塊,通過(guò)這種方法能提供較好的寫(xiě)均衡,在YAFFS中是從頭到尾對(duì)塊搜索,所以在垃圾收集上JFFS的速度慢,但是能延長(zhǎng)NAND的壽命。
                (3)、JFFS支持文件壓縮,適合存儲(chǔ)容量較小的系統(tǒng);YAFFS不支持壓縮,更適合存儲(chǔ)容量大的系統(tǒng)
                YAFFS還帶有NAND芯片驅(qū)動(dòng),并為嵌入式系統(tǒng)提供了直接訪問(wèn)文件系統(tǒng)的API,用戶(hù)可以不使用Linux中的MTD和VFS,直接對(duì)文件進(jìn)行操作。NAND Flash大多采用MTD+YAFFS的模式。MTD( Memory Technology Devices,內(nèi)存技術(shù)設(shè)備)是對(duì)Flash操作的接口,提供了一系列的標(biāo)準(zhǔn)函數(shù),將硬件驅(qū)動(dòng)設(shè)計(jì)和系統(tǒng)程序設(shè)計(jì)分開(kāi)。
             
                * cramfs 在嵌入式的環(huán)境之下,內(nèi)存和外存資源都需要節(jié)約使用。如果使用RAMDISK方式來(lái)使用文件系統(tǒng),那么在系統(tǒng)運(yùn)行之后,首先要把外存(Flash)上的映像文件解壓縮到內(nèi)存中,構(gòu)造起RAMDISK環(huán)境,才可以開(kāi)始運(yùn)行程序。但是它也有很致命的弱點(diǎn)。在正常情況下,同樣的代碼不僅在外存中占據(jù)了空間(以壓縮后的形式存在),而且還在內(nèi)存中占用了更大的空間(以解壓縮之后的形式存在),這違背了嵌入式環(huán)境下盡量節(jié)省資源的要求。
                使用 cramfs 就是一種解決這個(gè)問(wèn)題的方式。cramfs是一個(gè)壓縮式的文件系統(tǒng),它并不需要一次性地將文件系統(tǒng)中的所有內(nèi)容都解壓縮到內(nèi)存之中,而只是在系統(tǒng)需要訪問(wèn)某個(gè)位置的數(shù)據(jù)的時(shí)侯,馬上計(jì)算出該數(shù)據(jù)在cramfs中的位置,將其實(shí)時(shí)地解壓縮到內(nèi)存之中,然后通過(guò)對(duì)內(nèi)存的訪問(wèn)來(lái)獲取文件系統(tǒng)中需要讀取的數(shù)據(jù)。cramfs中的解壓縮以及解壓縮之后的內(nèi)存中數(shù)據(jù)存放位置都是由cramfs文件系統(tǒng)本身進(jìn)行維護(hù)的,用戶(hù)并不需要了解具體的實(shí)現(xiàn)過(guò)程,因此這種方式增強(qiáng)了透明度,對(duì)開(kāi)發(fā)人員來(lái)說(shuō),既方便,又節(jié)省了存儲(chǔ)空間。
                cramfs擁有以下一些特性:
                采用實(shí)時(shí)解壓縮方式,但解壓縮的時(shí)侯有延遲。
                cramfs的數(shù)據(jù)都是經(jīng)過(guò)處理、打包的,對(duì)其進(jìn)行寫(xiě)操作有一定困難。所以cramfs不支持寫(xiě)操作,這個(gè)特性剛好適合嵌入式應(yīng)用中使用Flash存儲(chǔ)文件系統(tǒng)的場(chǎng)合。
                在cramfs中,文件最大不能超過(guò)16MB。
                支持組標(biāo)識(shí)(gid),但是mkcramfs只將gid的低8位保存下來(lái),因此只有這8位是有效的。
                支持硬鏈接。但是cramfs并沒(méi)有完全處理好,硬鏈接的文件屬性中,鏈接數(shù)仍然為1.
                cramfs的目錄中,沒(méi)有“.”和“..”這兩項(xiàng)。因此,cramfs中的目錄的鏈接數(shù)通常也僅有一個(gè)。
                cramfs中,不會(huì)保存文件的時(shí)間戳(timestamps)信息。當(dāng)然,正在使用的文件由于inode保存在內(nèi)存中,因此其時(shí)間可以暫時(shí)地變更為最新時(shí)間,但是不會(huì)保存到cramfs文件系統(tǒng)中去。
                當(dāng)前版本的cramfs只支持PAGE_CACHE_SIZE為4096的內(nèi)核。因此,如果發(fā)現(xiàn)cramfs不能正常讀寫(xiě)的時(shí)侯,可以檢查一下內(nèi)核的參數(shù)設(shè)置。
             
            察看Linux文件類(lèi)型
                不同版本的Linux所支持的文件系統(tǒng)類(lèi)型和種類(lèi)都有所不同,如何知道自己使用的Linux發(fā)行版的文件系統(tǒng)類(lèi)型呢?下面以筆者使用的Mandrake Linux 8.2為例,講解如何操作。
                以超級(jí)用戶(hù)權(quán)限登陸Linux,進(jìn)入/Lib/modules/2.4.18-6mdk/kernel/fs目錄,執(zhí)行下面命令:#ls
                注意,不同Linux發(fā)行版本的fs目錄的位置可能有些不同。/Lib/modules/2.4.18-6mdk/kernel/fs中會(huì)顯示當(dāng)前系統(tǒng)所支持的文件系統(tǒng)種類(lèi)。 
                Mandrake Linux 8.2支持的文件系統(tǒng)非常多,系統(tǒng)核心支持十多種文件系統(tǒng)類(lèi)型:JFS、ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC等。 
                文件系統(tǒng)是操作系統(tǒng)用于明確磁盤(pán)或分區(qū)上文件的方法和數(shù)據(jù)結(jié)構(gòu),即在磁盤(pán)上組織文件的方法。文件系統(tǒng)是整個(gè)操作系統(tǒng)中重要的組成部分,是操作系統(tǒng)正常運(yùn)行的基本條件。了解Linux文件系統(tǒng)對(duì)于深入學(xué)習(xí)、研究Linux是非常重要的。
            from:
            posted on 2010-01-26 15:34 chatler 閱讀(476) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): storageFileSystem
            <2010年5月>
            2526272829301
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            常用鏈接

            留言簿(10)

            隨筆分類(lèi)(307)

            隨筆檔案(297)

            algorithm

            Books_Free_Online

            C++

            database

            Linux

            Linux shell

            linux socket

            misce

            • cloudward
            • 感覺(jué)這個(gè)博客還是不錯(cuò),雖然做的東西和我不大相關(guān),覺(jué)得看看還是有好處的

            network

            OSS

            • Google Android
            • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
            • os161 file list

            overall

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            亚洲国产成人久久精品影视| 欧美熟妇另类久久久久久不卡 | 开心久久婷婷综合中文字幕| 一本色道久久综合亚洲精品| 久久精品成人免费观看97| 亚洲AV日韩AV天堂久久| 少妇久久久久久被弄到高潮| 国产精品对白刺激久久久| 久久人人爽人人爽人人av东京热| 国产香蕉97碰碰久久人人| 狠狠色丁香久久综合婷婷| 97香蕉久久夜色精品国产 | 久久国产亚洲精品| 国产精品亚洲美女久久久| 99久久久国产精品免费无卡顿| 久久中文字幕人妻熟av女| 久久精品国产99久久丝袜| 久久青草国产精品一区| 久久精品www人人爽人人| 亚洲女久久久噜噜噜熟女| 久久精品国产男包| 伊人 久久 精品| 久久影院亚洲一区| 久久精品国产72国产精福利| 国产激情久久久久影院小草| 久久精品麻豆日日躁夜夜躁| 亚洲AV无码久久精品成人| 亚洲中文字幕无码一久久区| 久久亚洲sm情趣捆绑调教| 免费无码国产欧美久久18| 精品久久久久久久国产潘金莲| 伊人久久一区二区三区无码| 热RE99久久精品国产66热| 久久久久免费视频| 亚洲国产成人精品久久久国产成人一区二区三区综 | 伊人色综合久久天天网| 久久亚洲色一区二区三区| 欧美国产成人久久精品| 亚洲人AV永久一区二区三区久久| 日本久久中文字幕| 伊人久久一区二区三区无码|