文章目錄
- WP7硬體組件構成一覽:
- WP7軟體組件構成一覽:
- 記憶體模型與管理
- 核心記憶體映射(Kernel Memory Map)
- 進程空間映射(Process-Space Mapping)
決定把更多的精力放在自己所感興趣的技術領域上,做自己喜歡做的事情才沒有那麼大的壓力。收集了一些Wp開發的書籍,幾乎都是英文的,突然想著把它們嘗試著翻譯一下,既鍛煉自己,同時某一程度上也方便其他人的快速入門。
第一份文檔選擇了《Architecture Guide for Windows Phone OS 7.0》,相對簡單些,也是WP開發入門應該去瞭解的東西。
這份文檔主要包括以下幾個大的方面:
- Windows Phone 7體繫結構的介紹
- Windows Phone 7 核心
- BSP for Widows Phone 7
- Windows Phone 7的圖形渲染技術
- Windows Phone 7的網路連接
- Windows Phone 7的檔案系統
- Windows Phone 7手機升級
- Windows Phone 7的使用者-模式組件
- Windows Phone 7的安全性
- Windows Phone 7的啟動與關閉
一、Windows Phone 7體繫結構的介紹:
這份文檔提供了有關Windows Phone 7的一些基本的技術資訊。為了滿足使用者的體驗要求,WP7把特殊的硬體與軟體整合成為新的平台,在這個平台上使用者可以提出不同的效能、品質要求以及硬體上的差異化等等。
這份文檔從更高層次的視角去描述了WP7的核心體繫結構組件,包括:
- 硬體組件;
- 軟體組件,包括處於核心模式,處於使用者模式(例如核心,主版支援包?,驅動程式,OEM適配層,其他系統層等);
- 安全性,WP7的啟動與關閉進程。
WP7的體繫結構是基於Windows Embedded CE 6.0核心(譯者註:但之前看文章說是另外一個核心的,得考證一下!),邏輯上主要可以分為以下三個層次:核心模式、使用者模式(軟體層),以及硬體構成。如所示:
WP7硬體組件構成一覽:
- ARMv7處理器
- 硬體加速(滿足了DirectX 應用編程介面的需要)
- 電容觸控螢幕
- 網路攝影機
- 藍芽與Wifi串連
- FM收音機
- A-GPS
- 加速器,指南針,閃光燈,距離感應器等
(省略一小段關於硬體的介紹)
WP7軟體組件構成一覽:
WP7軟體部分由核心(kernel-mode)與使用者(user-mode)組成。關於軟體部分以及WP7的安全性及啟動,關閉進程的討論請見下部分章節的說明。
二、Windows Phone 7 核心:
WP7的核心提供了一些基本的系統服務,例如記憶體管理,進程/線程的調度等。在分配1GB的虛擬記憶體空間的時候,它一秒鐘內能同時運行32,000個進程。WP7核心的設計應該滿足下面幾點要求:
下面的這個圖簡略地說明了WP7核心設計的構架:
WP7通過一個統一的(unified)核心去管理,而其他子系統通過載入為DLL的形式去實現其功能。因為這些子系統實現的功能不需要跨進程,所以這種統一核心的設計能提高整個系統的功能。下面這個表格解釋了在核心空間中每個組件函數的功能:
而接下來則會更加詳細的向讀者解釋WP7中關於核心的一些概念:例如記憶體模型及管理,進程/線程,系統調用等等。
記憶體模型與管理
WP7是32位的作業系統,其中內建4GB的虛擬位址空間(virtual address space)。從設計的角度來看,2GB的空間被分配到核心,其中包括了檔案系統以及核心狀態下的裝置驅動管理器。另外2GB被分配給正在執行中的進程,例如進程代碼,使用者狀態下的DLL檔案,記憶體對應檔等等,下面這個圖指明了WP7的記憶體架構:
WP7的虛存的管理需要達到下面的目的:
- 每個進程儘可能分配到更多虛擬記憶體;
- No limit on the preset number of processes(不是很明白這個意思)
- 使用者模式上進程之間的記憶體配置策略
- 運行代碼最小程度上對CPU資源的依賴性
- 更加有效分配虛擬記憶體
注意:在這種記憶體管理員模式下只有一個進程在某個時候與記憶體產生映射關係,正處於活動狀態的進程完全支配著1GB的記憶體空間,同時不允許其他進程訪問這個空間。如果想瞭解更多關於進程間共用記憶體的資訊,請接著查看下面的內容。
核心記憶體映射(Kernel Memory Map)
下面的圖表描述了核心記憶體的分配與映射關係:
核心空間映射包含下面四個方面:
- System trap area
- Kernel VM-核心、服務以及驅動共用這部分的虛擬記憶體
- Kernel XIP DLLs-XIP表示Execute in place.
- Direct physical address mappings
進程空間映射(Process-Space Mapping)
未完待續