Symbian OS進階開發核心篇之EKA2

來源:互聯網
上載者:User

EKA2(Kernel Architecture 2)是Symbian OS中最主要的硬體及核心服務模組,它管理著手機的CPU、記憶體資源,並為裝置驅動提供一個架構,使其對相應的硬體資源進行管理。Symbian OS的核心是分層結構,這使得其可以移植到不同的硬體平台,移植時必須要實現ASSP/Variant,這一層為核心提供最基本的專用硬體服務。核心還允許建立附加層,稱為個人化,用來類比傳統的即時作業系統,從而使得這些作業系統的程式可以在Symbian OS上運行。

 

EKA2包括以下幾部分: Nanokernel: 主要用來處理最基本的線程調度、同步及時鐘功能。 Symbian OS kernel: 利用Nanokernel提供的服務給Symbian OS提供系統要求的核心功能,包括線程、進程、記憶體塊、進程內通訊等作業系統對象。 Memory model: 為每個進程提供地址空間以及進程內的資料轉送、記憶體配置及映射。它封裝了對硬體記憶體管理單元(MMU)的訪問,從而使得Nanokernel和Symbian OS kernel不依賴MMU。 Variant DLL:提供了Kernel所需的硬體相關服務,例如時鐘脈衝中斷和系統時鐘訪問。系統基於ASSP(application-specific standard product,專用標準產品),並有一個ASSP DLL來分擔Variant Dll 的職責。板載支援包BSP為相關硬體提供Variant庫。 擴充及裝置驅動:用來對外設進行控制,並提供外設和Symbian OS之間的介面。

 

下圖顯示了這些部分在系統中的位置:

圖1 核心架構關係圖(源:SDL)

 

這些部分的代碼實現分為硬體無關的和硬體相關的。硬體相關的代碼又分為不同的層次以助於移植。這些層次包括獨立層(Independent)、平台層(Platform)、模型層(Model)、CPU層及兩個外設層ASSP和Variant。其中獨立層(Independent)提供了60%的Nanokernel和Symbian OS Kernel的基本代碼;平台層(Platform)主要是模擬器或實際裝置的可執行鏡像,這一層只有Memory model,其中分為模擬器和實際裝置兩類;模型層(Model)為每個進程的記憶體提供支援;CPU層根據OS中處理器的不同提供不同的代碼,Nanokernel、Memory model、Symbian OS Kernel在這一層都有代碼,彙編代碼屬於這一層。如下圖所示:

 

圖2:核心源碼分層圖(源:SDL)

 

從上圖可以看出,Nanokernel代碼實現一部分在Independent層,一部分在CPU層;Symbian OS Kernel代碼實現一部分在Independent 層,另一部分也在CPU層;而Memory model在Platform、Model、CPU三層均有實現。

 

另外,Nanoknernel在CPU層包含大部分核心CPU架構的實現,諸如異常/中斷處理、環境切換機制等。還包括一些概念上是獨立層功能的東西,但處於效能考慮在這一層以彙編實現,如延遲調用(DFC)處理和基於ARM的時鐘處理。Memory model在CPU層的實現是為CPU專用而實現。

 

Variant提供了NanoKernel和Symbian OS Kernel所期望的控制專用硬體實現。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.