<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    海上月明

    editer by sun
    posts - 162, comments - 51, trackbacks - 0, articles - 8
       :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理

    [轉]NVFS概述

    Posted on 2008-12-19 15:33 pts 閱讀(359) 評論(0)  編輯  收藏 所屬分類: Others

    NVFS概述(T5,TE2,TX,LD,Treo650,Z22)+DBCacheTool


    轉貼自NCDIGI

    為什么需要NVFS

    自從2004年底PalmOne推出第一只NVFS機器??Tungsten T5以來,后續機型無一例外地采用了NVFS系統,象LifeDrive,Tungsten E2。等到回歸Palm的時候,又有T|X,Z22。當然,少不了Treo650。
    NVFS是什么?為什么需要NVFS?
    基本的幾點,NVFS,全名Non-Volatile File System(非揮發性文件系統):
    1:提供了對非揮發性閃存式內存的支持(原來僅有ROM采用)
    2:提供了完整的本地文件系統(以前Palm一直被人詬病為內存混亂)
    3:提供了內置驅動器(支持充分利用超大容量的內存)

    NVFS特征:

    Palm OS 5.4.x(Garnet)

    Palm OS 5.4.5:Tungsten T5,LifeDrive,Treo 650
    Palm OS 5.4.8:升級過的上述三件,還有Tungsten E2
    Palm OS 5.4.9:T|X,Z22,升級過的Treo650
    (版本號不能一一檢查,希望各位胖友指正)


    NVFS基本結構

    以前的OS1-4,OS5,OS5.2都是采用同樣的架構:
    1:一塊NOR Flash,用于儲存Palm OS
    2:一塊SDRAM,分為
      存儲堆(Storage Heap)用于儲存用戶程序和數據
      動態內存堆(Dynamic Heap)用于儲存程序執行中的臨時數據

    這時,一旦電力失去時間過長,基于SDRAM本身屬性,它上面的所有數據都會被擦除。

    于是,產生了NVFS的必要性。斷電雖然罕見,但是一旦發生,對用戶造成的損傷是很大的。NVFS解決了這個問題。

    對于一臺NVFS機器,,同樣有兩部分:
    (下文用ROM指代一般的不可寫區域,rom指代OS)
    1:一塊NAND Flash,包括:
      引導區
      rom標記
      Overflow(超溢區,是壓縮的rom)
      存儲堆標記
      存儲堆(storage heap),包括虛擬RAM區(RescoExplorer中的A盤)和磁盤(內置驅動器,可選,如T5的INTERNAL和LD的LIFEDRIVE。 在RescoExplorer中,為B盤。注意插卡后的其他Palm卡是B盤,但有內置驅動器的插卡后卡是C盤)
      其他部分為壞道保留。
    2:一塊DRAM,包括(DRAM也就是動態隨機存儲,SDRAM是DRAM的一種)
      ROM(在RescoExplorer中為ROM)
      數據庫緩存(DBCache)
      動態內存堆(Dynamic Heap)
      還有一些混合內容。
    注意:在Soft Reset開始時,DRAM是清空的。


    以前Palm的啟動過程(Hard Reset):
    引導區直接引導NOR Flash中的Palm OS,Palm OS清空RAM并寫入一些文件,并繼續引導SDRAM中的程序。Soft Reset時不修改RAM。

    NVFS-Palm的啟動過程(Hard Reset):
    首 先進行Soft Reset但是自動格式化存儲堆(storage heap)。然后引導區將NAND Flash中Overflow(壓縮的rom)解壓,并且按需要,釋放到存儲堆(storage heap)和ROM。然后ROM開始執行,并引導storage heap中的程序。

    這解釋了現在Palm機器CPU越來越強重啟越來越 慢的奇怪現象。以前的Palm重啟速度非常快,一般瞬間-5s即可。然而由于要處理很多數據,NVFS-Palm重啟很慢,象LD大概要兩分鐘(我沒用過 LD,是道聽途說的,希望有LD的朋友指正)。同時,硬啟后T5,LD在內在磁盤里有文件,就是Overflow里釋放出來的。

    同是Flash(閃存),有什么區別?
    NOR Flash是XIP(就地執行)式的,任何一個字節均能被直接訪問。
    NAND Flash則相反,必須512Byte一起讀出和寫入。無法直接執行。

    所以,才不辭勞苦地把rom壓縮起來(節約空間),然后釋放到DRAM執行。雖然多了一步,但工業上NAND Flash產能高,質量好,容量大。為了提高容量,需要采用NAND Flash。

    我們以Treo 650和Tungsten T5(未升級)為例,具體說明內存分布情況:
    Treo 650:
    NAND Flash 32MB
    引導區……………………<1MB
    超溢區(壓縮rom)……8MB
    存儲堆??虛擬RAM……24MB
    存儲堆??內有磁盤……無

    Tungsten T5:
    NAND Flash 256MB
    引導區……………………<1MB
    超溢區(壓縮rom)……14MB
    存儲堆??虛擬RAM……64MB
    存儲堆??內有磁盤……176MB(實際為161MB)

    兩者的
    DRAM 32MB
    ROM………………………16MB
    DBCache…………………10MB(升級后的T5為14.8MB)
    Dynamic Memory…………6MB(實際為4MB)

    NVFS中的數據存儲與程序執行:

    基于NAND Flash糟糕的512B限制,使得空間出現了大量浪費。
    尤 其在OS 5.4.5中,每個數據庫的每個記錄(pdb/prc,prc其實是特殊pdb。每個pdb由一個文件頭和一系列record(記錄)組成)必須至少占據 512B。如果一個1K的文件,由100個10B的記錄組成,那么實際消耗為100*512=51.2KB。當然這是極端情況,但一般會增大2-3倍。

    在OS 5.4.8/9中,指向記錄的方法作了改進。每個512B區塊最多包含16個32B的sector(選擇子)。如果記錄一個<32B的數據,只需要 一塊,剩下的空間仍然可用其他sector(選擇子)訪問。如果有一個大小為N的數據,那么系統會找到一個恰比N大的2的冪,并消耗這么大一個空間。譬 如,128<188<256,系統將分配8個sector給188B的一個記錄,消耗256B空間。剩余256B仍然可用。此時,上面1K的 文件將占據100*32B=3.2K。浪費被縮小了很多。不過,系統仍然要讀出512B的內容到內存,然后從內存中尋找對應數據。這樣開銷又大了些。不過 是值得的。

    要執行一個程序,必須先把程序刷進DBCache里。否則,由于不能直接訪問任意字節,程序無法執行。所 以,SoftReset后第一次啟動程序會比較慢,因為程序從NAND Flash拷貝到DBCache。之后,由于程序(可能還有一些必須數據庫)一直留在DRAM里,啟動速度就絲毫不比以前的Palm慢了。

    寫數據庫的命令實際上都寫在DBCache中。只有當DmSyncDatabase執行后,DBCache中的修改才會寫入Storage Heap。同時把不用的數據庫清除。

    (下面用RAM指代RAM虛擬區)

    針對NVFS的問題:
    核心問題:DBCache

    每個程序執行必須先進入DBCache。

    DBCache 一般只有10-11MB(即使是最大的TT5,在Warm Reset時也只有11MB剩余),正常情況還要被系統用去一部分(Hard Reset后的升級T5的是8.5MB)。裝上軟件后,由于啟動時,系統會向RAM中所有程序發出軟啟運行指令,DBCache又被耗了一些。我的TT5 正常開機是5.2MB。

    由于有的程序在正常執行時和軟啟運行時狀態不一樣,DBCache還會被繼續消耗。當從卡上運行時,程序會直接拷入DBCache。

    如 果DBCache不夠但仍然向其中拷入文件時,會導致Fatal Exception??我想用過最新的Palm的胖友都知道這個著名畫面吧,一個黑框,標題Fatal Exception,內容Fatal Exception ,下面有Reset字樣。還有一個較為罕見的錯誤,就是DmQueryDatabase。在SuperMiner中,DBCache不足會產生這個錯誤。 另外,有些程序包含一些不兼容的內容(尤其是Hack),在操作DBCache時也會出現錯誤。

    尤其是OS 5.4.5,由于系統不會自動清理(也就是DmSyncDataBase),導致DBCache迅速耗盡。在程序調穩定之后,找到DBCacheTool 之前,大約使用時間12h必須軟啟一次??因為馬上要Fatal Exception了。這就是TT5,Treo650老死機的根源。至于網上有篇文章說要刪除shim_logs,其實完全不必。因為這個文件是很正常 的。缺了這個T5容易進入按開機鍵出現palmOne logo然后黑屏的情況。只要用DBCacheTool,問題基本可以解決。

    對于OS 5.4.7以上版本,系統會自動用DmSyncDatabase清理,一般DBCache不會消耗很快。尤其是運行卡上的程序不會造成DBCache損耗。DBCacheTool一般也不用了。

    然而對OS 5.4.8,有的程序會把數據庫一直標記為使用中(其實不用了)導致DmSyncDatabase對它們失效,所以DBCacheTool Dm模式還是有效的。OS 5.4.9可以識別這些數據庫并去掉標記。

    解決DBCache不足的辦法有幾個,這里有兩個小軟件:
    DBCacheTool: 由McFile作者開發。這里是0.2a版。它可以通過兩種方式釋放DBCache:Sync(使用DmSyncDatabase)和Dm(由軟件逐個分 析DBCache中的數據庫,如認為不會再用便刷回NAND Flash然后刪掉)。還可以在軟啟時自動進行清理(不過推薦不要用,可能導致循環死機,不如進入Launcher后自己操作)

    它帶有一個DA文件,具有方便查看剩余DBCache和選擇清理的功能。
    Sync模式基本瞬時,除非垃圾太多了會需要1-2s。Dm模式清理速度為20-40s一次。

    RLock: 由Resco公司開發的。可以“鎖住”程序??把程序強行放在Dynamic Memory中,騰出DBCache。這可以釋放DBCache(因為動態內存不大會不夠),而且有的程序由于不兼容,會直接把DBCache搞糟,鎖住 后程序會操作動態內存而不是DBCache,就不會再出問題。程序幫助中有必須鎖的程序列表。

    還有,如上所述,DBCache的大小和 RAM中的程序是有關系的。如Picsel Brownser和Flash Player就是DBCache殺手??每個消耗2MB。而且從開機就開始。Novii Remote視數據庫數,會消耗1M。各種Launcher都會消耗x00KB。TCPMP會消耗800KB-1M。Repligo有 300-500KB。Documents To Go 和CJKOS都是大戶,尤其是字體文件。不過這兩個東西大家應該留在RAM里的,只要CJKOS不要裝太多字體就好了??尤其是GB/GBK 24*24字體。


    運行一些程序的說明:

    特別吃DBCache的如Classics(大約8-9M),SharkAttack,Snails(大約7.5-8M),Arvalva(4-6M,估計運行中會增加),Edge(4-5M),My Little Tanks(4.2M)
    Classics未升級的T5是基本上不能運行的(Warm Reset下只有8.1M)

    >6M的程序如果不用Warm Reset??按住向上鍵Reset,是難以運行的。不過Warm Reset后,由于驅動沒有加載,五向鍵會失效,這是一件麻煩的事情。

    LJP和Firestorm,在NVFS機器上用UDMH也可能內存不足。這是因為DBCache的原因。Warm Reset配合UDMH或許是個好主意。

    RescoExplorer在備份/導入時會逐漸消耗DBCache。推薦大家備份/導入30-40%左右就停止,然后繼續。因為停止時RescoExplorer會自動釋放剛才占用的內存。(其實港版OS5.4.5 TT5配合RescoExplorer是可以備份的)

    文件系統:

    肯定有胖友注意過RescoExplorer中有一個A:,下面有一個文件夾PALM_DM,里面的文件和RAM一模一樣(如果RescoExplorer版本太低會顯示權限不足無法訪問),而且屬性后面有個RAM值。這就是虛擬RAM的文件系統。
    在高版本RescoExplorer中RAM中文件屬性有個NVFS Size,就是在文件系統中的大小??如前所述,由于糟糕的512B,文件大小比內容大。

    而且,PALM_DM中的文件無法刪除??被虛擬RAM系統給鎖定了。
    (PS: 有時這個文件夾下會出現ExgLocalFile_文件,這是RescoExplorer從卡向內存拷文件時中斷的垃圾文件。一般在誤點了卡中一大文件, 然后發現Palm失去響應,就Reset,會出現這種情況。到Options->General->Tap on name ="Open",把前面勾去掉就好。如果你的內存莫名其妙消失一大片而RAM里沒多東西,一般問題就是這個。)

    作為過渡,TT5的A:基本只有PALM_DM和Blazer臨時文件。那些系統可以不依賴外接卡(如桌面圖案)調用的在INTERNAL里面。
    T|X已經在A:下面放了不少文件夾,象Blazer,媒體和Pocket Tunes都在下面有文件可操作(圖片,歌曲,網頁)。桌面圖案也移到了這里。可見,內部文件系統正在逐漸成熟并進入應用。



    后記:花了4個小時,終于寫好了。
    當初二我看到Dell Axim50廣告知道了有PPC這種東西。于是很心動。準備上大學了去買一只。
    然后在我同學那里見到了Palm m135,被上面Warfare華麗的效果震撼了。
    于是知道了世界上有Palm這種東西。
    快到高三,由于急需圖形計算器,又不甘心TI-92+和TI Voyage 200的昂貴價格和糟糕的可擴展性,準備找只Palm或PPC來。
    然后找到了TomPDA。然后知道了Palm和PPC的恩恩怨怨。
    然 后我去PalmSource和Microsoft找了些技術文檔來比較。當看到了Zen of Palm的時候,立刻,我被Palm征服了,它完全改造了我的想法。之后我毫不猶豫地研究了Palm的機型,最后在2005的暑假入了一只TT5。很不 幸,由于在這里不夠認真,沒發現T5的非升級是只Bug機。
    不過很慶幸TT5是Bug機。為了擺弄它,才把Palm OS好好研究了一遍。現在才發現,方便好用才是重要的。
    又很慶幸于Palm優良的服務。這個月初,由于底部筆尖漂移,送修了。花了43.5元郵費,修好了。寄出后4天從總部發出,12天后到家。當初接線員還說要15-21工作日呢。真是保險過頭。

    盡 管Palm OS現在被人說成江河日下,今天又在電腦報上看到它把TT5內存寫成16M,還有“菲菲說‘Palm的發展落后于PDA’”。實在是很惱火。現在除了 Skype,Palm沒有什么弱于PPC的多媒體應用了。PIM更是Palm強項,LifeBalance實在是好用。用過hp iPAQ rz1919,一個1800的PPC,居然內存只有32M可用,分辨率只有320*240,主頻只有200MHz。性價比不敢恭維。
    Palm上手比PPC絲毫不差。我買來后一天就把內置程序全部學會了。三天配置的軟件基本上夠用了。雖然調穩定花了三個月??不過不買bug機不會有這種問題。

    ALU已經出來了。不知為什么還沒有使用的計劃。去年LD出來不用OS6時我很懷疑Palm是否準備用OS6??確實到今天還沒有。原以為Palm遲遲不發OS6是等待ALU,結果等來今年Nelson想賣掉Palm的消息。祝Palm一路走好。

    不得不說多媒體、廣告和配置對新手是最看中的。Palm偏偏缺了這些??或說被人這么認為。

    最 后批評一下中國的廣告數碼市場和這么容易被廣告誤導的消費群體。《讀者》上鋪天蓋地的EJP廣告就是明證。好記星e8000,和Palm IIIxe相當的性能賣1280(估計是廣告費占成本大頭);e百分反應慢的象蝸牛,要1200;這兩樣居然銷量還很好……不得不說好記星的造型相對文曲 星來說酷多了,對某些追求時髦的學生殺傷力太大。結果性價比低的變態的產品誕生了。現在學生中盲目攀比的風氣實在太重。性能強的手機主要功能是游戲。性能 強的EJP還是游戲。完全是游戲機了,還不如NDS和GBA性價比高。MP4亦是不如PSP。更新換代也太快。我自己已經淘汰了一只文曲星 PC200,PC2000c,一只Nokia 8210(現在是6230)。自己想想也忒浪費了。要不是為了TT5的藍牙我不會去換6230。但現在除了轉存短信,拍照-傳照片,藍牙就不用了。wap 上網還是小屏的手機方便。其實沒有這些關系也不大。現在我才明白什么叫夠用就好,尤其是方便好用。買東西不是買自己口袋能承受的,而是買自己手上能用的。 超出使用范圍的,就叫做炫耀和攀比了。

    頂端 Posted:2006-05-17 09:31 | [樓 主]
    主站蜘蛛池模板: 免费大学生国产在线观看p| www.黄色免费网站| 亚洲国产精品一区二区第一页免| 精品亚洲456在线播放| 思思re热免费精品视频66| 亚洲理论片在线中文字幕| 最近中文字幕电影大全免费版| 亚洲大片在线观看| 一级毛片免费观看| 亚洲欧洲日产国产最新| 国产免费AV片在线播放唯爱网| 亚洲国产最大av| 国产高清视频在线免费观看| 青草久久精品亚洲综合专区| 亚洲电影日韩精品 | 亚洲人成网站色在线观看| 毛片免费观看的视频在线| 亚洲av无码专区亚洲av不卡| 九月婷婷亚洲综合在线| 91成人免费观看在线观看| 中文字幕亚洲色图| 大香人蕉免费视频75| 污视频网站免费在线观看| 国产亚洲美女精品久久久| 在线成人爽a毛片免费软件| 四虎亚洲精品高清在线观看| 亚洲中文字幕视频国产| 免费无码中文字幕A级毛片| 亚洲jjzzjjzz在线观看| 四虎永久成人免费| 国产精品区免费视频| 亚洲熟女乱色一区二区三区| 亚洲毛片网址在线观看中文字幕| 久久国产精品免费视频| 亚洲色无码国产精品网站可下载| 亚洲人成影院在线无码观看| 99re6热视频精品免费观看| 亚洲AV无码国产一区二区三区| 国产亚洲真人做受在线观看| 999国内精品永久免费观看| 视频一区二区三区免费观看|