浅谈Windows Phone 7的体系结构 - [WP开发文档翻译系列]
決定把更多的精力放在自己所感興趣的技術領域上,做自己喜歡做的事情才沒有那么大的壓力。收集了一些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硬件組件構成一覽:
- ARMv7處理器
- 硬件加速(滿足了DirectX 應用編程接口的需要)
- 電容觸摸屏
- 攝像頭
- 藍牙與Wifi連接
- FM收音機
- A-GPS
- 加速器,指南針,閃光燈,距離傳感器等
(省略一小段關于硬件的介紹)
WP7軟件組件構成一覽:
WP7軟件部分由內核(kernel-mode)與用戶(user-mode)組成。關于軟件部分以及WP7的安全性及啟動,關閉進程的討論請見下部分章節的說明。二、Windows Phone 7 內核:
WP7的內核提供了一些基本的系統服務,例如內存管理,進程/線程的調度等。在分配1GB的虛擬內存空間的時候,它一秒鐘內能同時運行32,000個進程。WP7內核的設計應該滿足下面幾點要求:
- 提高系統性能
- 提高安全性
- 增加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)
未完待續
?
轉載于:https://www.cnblogs.com/wpdev/archive/2011/08/23/2151208.html
總結
以上是生活随笔為你收集整理的浅谈Windows Phone 7的体系结构 - [WP开发文档翻译系列]的全部內容,希望文章能夠幫你解決所遇到的問題。