日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Cramfs、JFFS2、YAFFS2的全面对比

發(fā)布時間:2024/6/21 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Cramfs、JFFS2、YAFFS2的全面对比 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Cramfs、JFFS2、YAFFS2的全面對比? http://blog.csdn.net/daofengdeba/article/details/7721340

  由于嵌入式系統(tǒng)自身存在一些特殊要求,使得一些傳統(tǒng)的文件系統(tǒng)(如FAT、EXT2等) 并不十分適合。專用的嵌入式文件系統(tǒng)應(yīng)有一些自身的特性,如文件系統(tǒng)面對的儲存介質(zhì)特殊性、文件系統(tǒng)應(yīng)具有的跨平臺的安全性,以及整個系統(tǒng)的即時性等。本文介紹了3種源碼開放的嵌入式文件系統(tǒng)Cramfs、JFFS2、YAFFS2,詳細(xì)分析比較了這3種文件系統(tǒng)的主要性能,并根據(jù)分析結(jié)果指出了各自的適用領(lǐng)域。

Cramfs、JFFS2、YAFFS2是3種性能優(yōu)越,專用于嵌入式系統(tǒng)的文件系統(tǒng)。本文通過對這3種文件系統(tǒng)的設(shè)計原理和主要性能進(jìn)行分析與比較,歸納出各自的選型依據(jù)據(jù)和適用領(lǐng)域。 三種嵌入式文件系統(tǒng)主要性能分析與比較 資料安全、運(yùn)行速度、占用資源、使用范圍等是嵌入式文件系統(tǒng)的主要性能指標(biāo)。下面從這幾個方面入手,對這三種嵌入式文件系統(tǒng)進(jìn)行分析與比較。 資料安全 當(dāng)前的嵌入式系統(tǒng)主要使用固態(tài)Flash晶片作為儲存設(shè)備。由于Flash設(shè)備自身的特點(diǎn)以及嵌入式系統(tǒng)工作環(huán)境的復(fù)雜多樣性,如何保證資料的安全是嵌入式文件系統(tǒng)首先要考慮的問題。資料安全主要包括資料冗余和掉電保護(hù)等部分。 資料冗余

  Cramfs文件系統(tǒng)是一種只讀文件系統(tǒng),文件系統(tǒng)內(nèi)容不可更改,設(shè)計思想遵循「只儲存最少的信息」;甚至沒有時間戳之類的信息,除了資料包的CRC校驗(yàn)信息外,幾乎沒有別的資料冗余。

?

  JFFS2文件系統(tǒng)是典型的日志結(jié)構(gòu)的文件系統(tǒng),它儲存的資料是日志式資料信息。JFFS2在Flash上??只有兩種類型的資料實(shí)體:j.ffs2_raw_inode和jffs2_raw dirent。前者包含文件的管理信息,后者用于描述文件在文件系統(tǒng)中的位置真正的資料信息就保持在jffs2_raw_inode節(jié)點(diǎn)的后面,大部分管理的信息都是在系統(tǒng)掛載之后建立起來的。兩種資料實(shí)體有著公共的文件頭結(jié)構(gòu)jffs2 _ unknown_node。在這個結(jié)構(gòu)里,有個jint32 _t類型的hdr_crc變量,它代表文件頭部中其他域的CRC校驗(yàn)值。這說明JFFS2文件系統(tǒng)使用的是CRC循環(huán)冗余校驗(yàn)碼。[文件管理信息 + 文件在文件系統(tǒng)中的位置 + 真正的資料]

?

  YAFFS2文件系統(tǒng)是一種類日志文件系統(tǒng),專用于NAND型Flash設(shè)備。其儲存資料的基本單位是chunk,相當(dāng)于Flash的頁。Chunk中的資料包括兩部分:一部分是資料區(qū),占用Flash的一頁;另一部分是文件信息及冗余資料區(qū),占用Flash頁的OOB區(qū)。其冗余資料主要是ECC校驗(yàn)資料,對于小頁(每頁512位元組)的Flash,每頁有6位元組的ECC資料;對于大頁(每頁2048位元組)的Flash,每頁有24位元組的ECC資料。[專用于nand, 真正的資料放在flash頁, 文件信息和冗余資料放在Flash頁的OOB區(qū)]

?

掉電保護(hù):

  Cramfs文件系統(tǒng)將文件系統(tǒng)內(nèi)容解壓到記憶體中,由于其不能寫入,文件系統(tǒng)的內(nèi)容無法更改,因此不存在掉電保護(hù)的問題。[無掉電保護(hù)] JFFS2是一種日志結(jié)構(gòu)文件系統(tǒng),因此不論電源以何種方式在哪個時刻停止供電,JFFS2都能保持資料完整性。當(dāng)系統(tǒng)遭受不正常斷電后重新啟動時,JFFS2自動將系統(tǒng)恢復(fù)到斷電前最后一個穩(wěn)定狀態(tài)。需要注意的是,文件系統(tǒng)在最后一個穩(wěn)定狀態(tài)之后發(fā)生的任何改變,都無法進(jìn)行恢復(fù)。 [斷電重啟后恢復(fù)到上一個穩(wěn)定狀態(tài)]
YAFFS2是一種類日志文件系統(tǒng),可以在意外掉電重啟后自動提供可靠的資料記錄,防止文件系統(tǒng)的崩潰。它使用獨(dú)立的日志文件跟蹤文件系統(tǒng)內(nèi)容的變化。舉例來說:當(dāng)應(yīng)用程式需要寫Flash的某一頁時,它首先修改的是存放于文件日志中的一塊鏡像;只有當(dāng)日志中的鏡像復(fù)制到文件系統(tǒng)中后,資料才真實(shí)地寫到該頁上。當(dāng)發(fā)生意外掉電重啟后,YAFFS2沒有像JFFS2那樣,使用舊文件完全代替新寫文件,而是選擇用新文件完全代替舊的文件,或者已寫部分使用新文件,未寫部分使用舊文件。這種方式增強(qiáng)了掉電時未完全寫入文件的安全性能,特別是當(dāng)意外掉電發(fā)生在資料區(qū)時,意外掉電時的文件幾乎被完好地保存下來。[斷電重啟后,用新?lián)Q舊] 運(yùn)行速度
  運(yùn)行速度可以從以下幾個方面考察:文件系統(tǒng)掛載速度,讀文件速度,寫文件速度等。這里預(yù)設(shè)的儲存介質(zhì)是NAND Flash。 一般而言,壓縮的、只讀的文件系統(tǒng)在啟動時需要將文件系統(tǒng)解壓到SDRAM中,這在一定程度上會減緩文件系統(tǒng)掛載速度。但是,Cramfs文件系統(tǒng)在設(shè)計時充分考慮了系統(tǒng)掛載的時間,并沒有一次性地把文件系統(tǒng)的所有內(nèi)容都解壓到記憶體中,而只是在系統(tǒng)需要訪問某個位置的資料時,迅速計算出該資料在Cramfs中的位置,將其解壓縮到記憶體之中,再進(jìn)行訪問操作。由于其讀文件速度只是找出文件位址以及訪問記憶體的操作,所以無論是掛載速度,還是讀文件速度, Cramfs文件系統(tǒng)都比JFFS2和YAFFS2文件系統(tǒng)要快。 JFFS2文件系統(tǒng)的掛載可以分為以下幾個步驟進(jìn)行:???
1.檢查每個節(jié)點(diǎn)CRC校驗(yàn)碼的合法性,在記憶體中為每個節(jié)點(diǎn)每個節(jié)點(diǎn)分配必需的相關(guān)的結(jié)構(gòu);???
2.掃瞄每個i節(jié)點(diǎn)的物理節(jié)點(diǎn)鏈表,建立鏈接;???
3.釋放掃瞄過程中使用的臨時信息。
可以看出這個過程還是很復(fù)雜的,更重要的是,在JFFS2文件系統(tǒng)被掛載時,需要對整個Flash儲存區(qū)域進(jìn)行掃瞄,這就耗費(fèi)了大量的時間,因此JFFS2文件系統(tǒng)的開機(jī)速度非常緩慢。與JFFS2相比,YAFFS2減少了一些功能,掛載時只需掃瞄Flash記憶體的空閑區(qū),根據(jù)從OOB(備份資料區(qū))中讀取的yaffs_tags信息判讀是文件頭頁面還是資料頁面,再根據(jù)相應(yīng)信息在記憶體中為每個文件建立一個對??應(yīng)的yaffs_object對象。由于YAFFS2在系統(tǒng)載入時只需掃瞄各個頁面的OOB區(qū),即可建立起整個文件系統(tǒng)的結(jié)構(gòu),而不需要像JFFS2那樣掃瞄整個Flash設(shè)備,因此大大加快了文件系統(tǒng)的啟動速度。但是,YAFFS2仍然要求對整個Flash設(shè)備所有頁的空閑進(jìn)行掃瞄,這就導(dǎo)致當(dāng)Flash設(shè)備儲存空間變大時,系統(tǒng)掃瞄時間會直線上升。   在文件系統(tǒng)運(yùn)行時,JFFS2需要維護(hù)幾個鏈表來管理擦寫塊。根據(jù)擦寫塊上的內(nèi)容,一個擦寫塊可能會在不同的鏈表上。具 體來說,當(dāng)一個擦寫塊上都是合法(valid)的節(jié)點(diǎn)時,它會在clean_list上;當(dāng)一個擦寫塊包含至少一個過時(obsolete)的節(jié)點(diǎn)時,它 會在dirty_list上;當(dāng)一個擦寫塊被擦寫完畢,并被寫入Cleanmarker節(jié)點(diǎn)后,它會在free_list上。正是以這些鏈表為基礎(chǔ), JFFS2文件系統(tǒng)才可以實(shí)現(xiàn)垃圾回收、損耗平衡等性能。文件系統(tǒng)掛載時YAFFS2在記憶體中建立一個層次結(jié)構(gòu)的索引,可以看作是一個文件樹。樹的最底層指向?qū)嶋H存放文件的頁面,高層則是一層層的索引目錄。文件樹是通過一個聯(lián)合結(jié)構(gòu)的節(jié)點(diǎn)來實(shí)現(xiàn)的。聯(lián)合結(jié)構(gòu)是固定大小(32位元組),當(dāng)它處于最底層時, 由16個2位元組入口來查找頁面ID;當(dāng)處于其它層時,由8個4位元組指針指向其他更低層的節(jié)點(diǎn)。每個文件對應(yīng)一個文件樹,便于檢索。在以NAND Flash為儲存介質(zhì)的嵌入式系統(tǒng)中,YAFFS2的文件讀寫性能都優(yōu)于JFFS2。[YAFFS2JFFS2啟動速度快,讀寫性能也更優(yōu)]

?

占用資源 在嵌入式系統(tǒng)中,記憶體和外部記憶體資源匱乏,需要節(jié)約使用。因此占用的記憶體和外部記憶體資源量也是衡量嵌入式文件系統(tǒng)的一個重要指標(biāo)。 如果使用RAMDISK方式運(yùn)行文件系統(tǒng),那么在系統(tǒng)運(yùn)行之后,首先要把Flash上??的映像文件解壓到記憶體中,才可以開始運(yùn)行程序。這樣,同樣的程式碼不僅在外部記憶體中占據(jù)了空間,而且由于解壓縮,還在記憶體中占用了更大的空間。Cramfs雖然是一個壓縮式的文件系統(tǒng),但前面已介紹過,它并不需要一次性地將所有內(nèi)容解壓到記憶體之中。由于其對文件內(nèi)容的壓縮,因此無論是外部記憶體還是記憶體, Cramfs都比JFFS2和YAFFS2占用更少的資源。   JFFS2將文件系統(tǒng)的資料和原資料以節(jié)點(diǎn)的形式儲存在Flash上??,其冗余資料只是節(jié)點(diǎn)頭部的CRC校驗(yàn)碼,并且在儲存時對節(jié)點(diǎn)的資料進(jìn)行了壓縮。與之相比,YAFFS2不僅儲存了頁資料的ECC校驗(yàn)碼,并且沒有Flash設(shè)備OOB區(qū)儲存資料,而是用來儲存頁節(jié)點(diǎn)信息。其映像也是由若干個頁面組成,沒有對資料進(jìn)行壓縮,因此YAFFS2文件系統(tǒng)映像大大超過了JFFS2文件系統(tǒng)映像。實(shí)驗(yàn)表明,普通YAFFS2映像的大小約為同樣JFFS2映像大小的2倍。當(dāng)文件系統(tǒng)在記憶體中運(yùn)行時,JFFS2在記憶體中定義了若干鏈表,YAFFS2在記憶體中為每個文件創(chuàng)建一個文件樹。盡管為每個文件建立一個文件樹需要消耗掉不少的記憶體,但是比起維護(hù)JFFS2所需的鏈表消耗的記憶體,還是少一些。在實(shí)際運(yùn)行中,YAFFS2占用的記憶體要小于JFFS2文件系統(tǒng)。[jffs2在儲存時對節(jié)點(diǎn)的資料進(jìn)行了壓縮,系統(tǒng)映像會大于yaffs2的,但是運(yùn)行時JFFS2維護(hù)的鏈表比yaffs的樹更占內(nèi)存] 使用范圍   要使用Cramfs或JFFS2文件系統(tǒng),離不開MTD驅(qū)動程式層的支援。MTD(Memory Technology Device)是Linux中的一個儲存設(shè)備通用界面層。雖然也可以建立在RAM上,但它是專為基于Flash的設(shè)備而設(shè)計的。MTD包含特定Flash 晶片的驅(qū)動程式, Flash晶片驅(qū)動向上層提供讀、寫、擦除等基本的Flash操作方法。MTD對這些操作進(jìn)行封裝后向用戶層提供MTD char和MTD block類型的設(shè)備。MTD char類型的設(shè)備包括/dev/mtd0等,可以對Flash的原始字元訪問;MTD block類型的設(shè)備包括/dev/mtdblock0等,將Flash類比成塊設(shè)備,這樣就可以在這些塊設(shè)備上創(chuàng)建Cramfs或JFFS2等格式的文件系統(tǒng)。在對用戶層的界面上, Cramfs或JFFS2文件系統(tǒng)還需要作業(yè)系統(tǒng)VFS(虛擬文件系統(tǒng))的支援。  同樣,YAFFS2文件系統(tǒng)支援使用MTD驅(qū) ??動層和VFS層,這也是一般在嵌入式Linux或者μClinux作業(yè)系統(tǒng)中使用YAFFS2文件系統(tǒng)的常用方法。除此之外,YAFFS2還帶有NAND Flash晶片驅(qū)動,并為嵌入式系統(tǒng)提供了直接訪問文件系統(tǒng)的API,用戶可以不使用Linux中的MTD和VFS,直接對文件進(jìn)行操作。[cramfs和jffs要利用mtd和vfs的支持, 而yaffs2可用可不用, 但在linux中通常都要用]   圖1?為嵌入式系統(tǒng)的文件系統(tǒng)結(jié)構(gòu)。 AFFS2中的YAFFS2 Direct提供了直接的文件系統(tǒng)界面,因此在那些沒有VFS層的嵌入式系統(tǒng)中也可使用YAFFS2。YAFFS2文件系統(tǒng)的使用范圍要比Cramfs和JFFS2文件系統(tǒng)廣泛;但是需要注意的是,YAFFS2只能用在NAND Flash儲存設(shè)備上。 結(jié)論 這3種嵌入式文件系統(tǒng)在嵌入式系統(tǒng)中的應(yīng)用非常廣泛,但是又具有各自的特點(diǎn)。表2?比較了3種文件系統(tǒng)的主要性能,并歸納出各自最適用的領(lǐng)域。

各自最適用的領(lǐng)域具體分析如下:???
1. Cramfs是最早的一種嵌入式文件系統(tǒng),它只儲存了最少的信息,對文件內(nèi)容進(jìn)行了壓縮,運(yùn)行速度比較???
快。但是由于其不能寫入,不支援超過16 MB大小的文件,因此廣泛地應(yīng)用于儲存空間小、文件系統(tǒng)內(nèi)容???
較少并且不需要用戶寫入的嵌入式系統(tǒng)中。??
2. JFFS2是一種較早的Flash專用文件系統(tǒng)。目前已有很多JFFS2應(yīng)用于μClinux以及嵌入式Linux的例子。事???
實(shí)上,它已經(jīng)成為新版Linux中的一種標(biāo)準(zhǔn)文件系統(tǒng)。??
同時它對NOR Flash和NAND Flash提供支援,針對兩種Flash設(shè)備共同的特性,提供掉電保護(hù)和損耗平衡等???
功能,可供用戶讀寫,十分適合于同時用到這兩種Flash設(shè)備的嵌入式系統(tǒng)。??
3. YAFFS2是專為NAND Flash設(shè)計的文件系統(tǒng),它充分考慮了NAND Flash設(shè)備的特性,支援ECC校驗(yàn),提???
供掉電保護(hù)和損耗平衡功能,運(yùn)行和掛載速度都比JFFS2要快。它支援作業(yè)系統(tǒng)廣泛,包括常見的嵌入???
式Linux、WinCE、μClinux。由于它提供Direct界面,因此稍加修改也可使用在沒有作業(yè)系統(tǒng)的嵌入式???
系統(tǒng)中。目前,被廣泛應(yīng)用于使用NAND Flash作為儲存設(shè)備的嵌入式系統(tǒng)中。 針對具體應(yīng)用,可以在考察各種文件系統(tǒng)特點(diǎn)的基礎(chǔ)上,選擇更適合自身系統(tǒng)的一種文件系統(tǒng)解決方案。比如在許多以NAND Flash為儲存介質(zhì)的應(yīng)用系統(tǒng)中,都用到「Cramfs YAFFS2」文件系統(tǒng)。以Cramfs作為根文件系統(tǒng),既提高了啟動速度,也能保護(hù)根文件不受破壞;使用YAFFS2作為用戶文件系統(tǒng),在保證用戶可以自由讀寫文件的基礎(chǔ)上,提高了文件系統(tǒng)的安全性和運(yùn)行速度,不失為一種優(yōu)良的嵌入式文件系統(tǒng)解決方案。 擴(kuò)展: 嵌入式: jffs2,yaffs2,logfs,ubifs文件系統(tǒng)性能分析? http://blog.chinaunix.net/uid-23381466-id-3411483.html Linux支持多種文件系統(tǒng),包括ext2、ext3、vfat、ntfs、 iso9660、jffs、romfs和nfs等,為了對各類文件系統(tǒng) 進(jìn)行統(tǒng)一管理,Linux引入了虛擬文件系統(tǒng)VFS(Virtual File System),為各類文件系統(tǒng)提供一個統(tǒng)一的操作界面和應(yīng)用編程接口。

Linux啟動時,第一個必須掛載的是根文件系統(tǒng);若系統(tǒng)不能從指定設(shè)備上掛載根文件系統(tǒng),則系統(tǒng)會出錯而退出啟動。之后可以自動或手動掛載其他的文件系統(tǒng)。因此,一個系統(tǒng)中可以同時存在不同的文件系統(tǒng)。

1. 基于FLASH的文件系統(tǒng)
(1) Jffs2: 日志閃存文件系統(tǒng)版本2 (Journalling Flash FileSystem v2)
(2) yaffs:Yet Another Flash File System
(3) Cramfs:Compressed ROM File System
?? ?Cramfs映像通常是放在Flash中,但是也能放在別的文件系統(tǒng)里,使用loopback 設(shè)備可以把它安裝別的文件系統(tǒng)里。
(4) Romfs
  傳統(tǒng)型的Romfs文件系統(tǒng)是一種簡單的、緊湊的、只讀的文件系統(tǒng),不支持動態(tài)擦寫保存,按順序存放數(shù)據(jù),因而支持應(yīng)用程序以 XIP(eXecute In Place,片內(nèi)運(yùn)行)方式運(yùn)行,在系統(tǒng)運(yùn)行時,節(jié)省RAM空間。uClinux系統(tǒng)通常采用Romfs文件系統(tǒng)。
  其他文件系統(tǒng):fat/fat32也可用于實(shí)際嵌入式系統(tǒng)的擴(kuò)展存儲器(例如PDA, Smartphone, 數(shù)碼相機(jī)等的SD卡),這主要是為了更好的與最流行的Windows桌面操作系統(tǒng)相兼容。ext2也可以作為嵌入式Linux的文件系統(tǒng),不過將它用于 FLASH閃存會有諸多弊端。

2. 基于RAM的文件系統(tǒng)
  (1) Ramdisk
?? ?Ramdisk是將一部分固定大小的內(nèi)存當(dāng)作分區(qū)來使用。它并非一個實(shí)際的文件系統(tǒng),而是一種將實(shí)際的文件系統(tǒng)裝入內(nèi)存的機(jī)制,并且可以作為根 文件系統(tǒng)。將一些經(jīng)常被訪問而又不會更改的文件(如只讀的根文件系統(tǒng))通過Ramdisk放在內(nèi)存中,可以明顯地提高系統(tǒng)的性能。
?? ?在Linux的啟動階段,initrd提供了一套機(jī)制,可以將內(nèi)核映像和根文件系統(tǒng)一起載入內(nèi)存。
?? ?
?? ?(2)ramfs/tmpfs
  Ramfs是Linus Torvalds開發(fā)的一種基于內(nèi)存的文件系統(tǒng),工作于虛擬文件系統(tǒng)(VFS)層,不能格式化,可以創(chuàng)建多個,在創(chuàng)建時可以指定其最大能使用的內(nèi)存大小。
  Ramfs/tmpfs文件系統(tǒng)把所有的文件都放在RAM中,所以讀/寫操作發(fā)生在RAM中,可以用ramfs/tmpfs來存儲一些臨時性或經(jīng)常要修改的數(shù)據(jù),例如/tmp和/var目錄,這樣既避免了對Flash存儲器的讀寫損耗,也提高了數(shù)據(jù)讀寫速度。
  Ramfs/tmpfs相對于傳統(tǒng)的Ramdisk的不同之處主要在于:不能格式化,文件系統(tǒng)大小可隨所含文件內(nèi)容大小變化。
  Tmpfs的一個缺點(diǎn)是當(dāng)系統(tǒng)重新引導(dǎo)時會丟失所有數(shù)據(jù)。

3. 網(wǎng)絡(luò)文件系統(tǒng)NFS (Network File System)
  NFS是由Sun開發(fā)并發(fā)展起來的一項(xiàng)在不同機(jī)器、不同操作系統(tǒng)之間通過網(wǎng)絡(luò)共享文件的技術(shù)。在嵌入式Linux系統(tǒng)的開發(fā)調(diào)試階段,可以利用該技術(shù)在主機(jī)上建立基于NFS的根文件系統(tǒng),掛載到嵌入式設(shè)備,可以很方便地修改根文件系統(tǒng)的內(nèi)容。

  以上討論的都是基于存儲設(shè)備的文件系統(tǒng)(memory-based file system),它們都可用作Linux的根文件系統(tǒng)。實(shí)際上,Linux還支持邏輯的或偽文件系統(tǒng)(logical or pseudo file system),例如procfs(proc文件系統(tǒng)),用于獲取系統(tǒng)信息,以及devfs(設(shè)備文件系統(tǒng))和sysfs,用于維護(hù)設(shè)備文件。

  不同的文件系統(tǒng)類型有不同的特點(diǎn),因而根據(jù)存儲設(shè)備的硬件特性、系統(tǒng) 需求等有不同的應(yīng)用場合。在嵌入式Linux應(yīng)用中,主要的存儲設(shè)備為 RAM(DRAM, SDRAM)和ROM(常采用FLASH存儲器),常用的基于存儲設(shè)備的文件系統(tǒng)類型包括:jffs2, yaffs, cramfs, romfs, ramdisk, ramfs/tmpfs等。

?

轉(zhuǎn)載于:https://www.cnblogs.com/mylinux/p/5754716.html

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的Cramfs、JFFS2、YAFFS2的全面对比的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。