• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于WinCE的嵌入式系統注冊表的研究

    基于WinCE的嵌入式系統注冊表的研究

    作者: 時間:2012-03-21 來源:網絡 收藏

    0 引言

    嵌入式操作系統 和桌面操作系統一樣使用(Registry)來保存應用程序、驅動程序和用戶的設定以及其他一些配置信息,通常還存儲著操作系統調用程序的狀態信息,所以起著非常重要的作用,它是 操作系統的核心。在沒有的情況下,操作系統將不能獲得必需的信息來運行和控制附屬的設備和應用程序及正確響應用戶的輸入[1][2]。

    1 注冊表簡介

    Windows CE的注冊表結構和其他版本的Windows操作系統的注冊表結構是類似的。注冊表是一個包括主關鍵字子樹的集合,它和文件目錄樹一樣具有層次結構。每個子樹又由更低層的子樹、鍵以及鍵值組成。鍵相當于文件系統的目錄,每個鍵包含若干鍵值項。而鍵值項相當于文件系統末端的文件,它由鍵值名、數據類型和鍵值組成。鍵值就是注冊表存儲的數據。

    Windows CE對注冊表的值有一些限制:鍵或者鍵值項的名字最多為255個字符,數據最大為4K,鍵嵌套層次最多為16層。所以在使用注冊表編程時,要盡量使鍵和鍵值項占用最小的空間。另外,需要注意的是,在注冊表中,鍵值項比鍵值占用更大的存儲空間。

    Windows CE注冊表包括4個根鍵[2],如表1所示。

    根鍵名

    鍵值內容

    HKEY_LOCAL_MACHINE

    硬件及驅動程序配置數據

    HKEY_CURRENT_USER

    用戶配置數據

    HKEY_CLASSES_ROOT

    OLE和文件類型匹配配置數據

    HKEY_USERS

    適用于所有用戶的存儲數據

    表1 Windows CE注冊表根鍵

    Table1 The root key of Windows CE register

    2 Windows CE注冊表類型

    由于嵌入式系統的特點,一些嵌入式設備是沒有外存的。因此Windows CE的注冊表提供了兩種實現方式:基于對象存儲的注冊表(RAM-Based Registry)和基于Hive的注冊表(Hive-Based Registry)[3]。我們可以在Windows CE中使用任何一種注冊表,注冊表類型對于用戶和應用程序來說都是透明的。基于RAM的注冊表在經常熱啟動的設備上是非常高效的,而在經常冷啟動的設備上,性能卻很令人失望,最適合有電池后備的個人電子消費類產品。對于經常冷啟動或者不怎么使用熱啟動方式的設備來說,基于hive的注冊表是非常高效的,最適合永久性的存儲器和多用戶環境下使用。

    2.1 基于RAM的注冊表

    顧名思義,基于RAM的注冊表把整個注冊表作為一個對象存儲堆放在RAM中。這就意味著如果系統中斷對RAM的電池供電,對注冊表的所有改動都會丟失。也就是說,它們的有效性和RAM中數據的有效性是一致的。但是使用RAM注冊表,對注冊表的讀寫訪問操作非常的快速高效。在舊版本的Windows CE中,大量應用了基于RAM的注冊表。如果有外存且需要經常冷啟動的設備采用基于RAM的注冊表,則需要在系統斷電的時候對注冊表進行保存,等系統再次啟動時對保存的注冊表進行還原。

    2.2 基于的注冊表

    系統包含了不屬于任何用戶信息的系統設置。系統由OEM層調用。通常hive文件為System.hv,但是它的存儲位置可能隨著平臺而變化。這種存儲方式使系統在斷電前后無須備份和恢復注冊表數據,這使得系統冷啟動時速度更快。

    基于HIVE結構的注冊表被分為兩部分存儲:系統HIVE,存儲所有的系統數據;用戶HIVE,存儲對特定用戶的所有相關數據。一個多用戶系統將包括幾個用戶HIVE。當一個用戶登錄時,相應的用戶HIVE就會被激活,當用戶退出時,相應的用戶HIVE也會被撤銷。所有的用戶HIVE都用 USER.hv來命名,并且被放在不同的用戶目錄中,每個目錄都是以它屬于的用戶的用戶名來命名的。

    注冊表中的HKEY_LOCAL_MACHINEinitBootVars下的鍵值項ProfileDir存儲著所有用戶目錄的位置。 HKEY_LOCAL_MACHINEinitBootVars下的鍵值項SystemHive存儲著系統HIVE的文件路徑和文件名。


    上一頁 1 2 3 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 米林县| 福清市| 周宁县| 云林县| 盘锦市| 三都| 汉阴县| 垫江县| 卢龙县| 江阴市| 华宁县| 永清县| 三河市| 慈溪市| 信丰县| 庆云县| 北安市| 石河子市| 阳曲县| 太仆寺旗| 名山县| 保靖县| 林西县| 寻乌县| 新闻| 桐梓县| 巴里| 宁波市| 汕头市| 秦皇岛市| 靖州| 平阴县| 绿春县| 乌什县| 海兴县| 逊克县| 临澧县| 苏尼特左旗| 阿鲁科尔沁旗| 凉山| 柳林县|