| 在軟件工程中,內核設計是最令人激動(dòng)的一種事情。在80年代的8位和16位服務(wù)于Psion和PDA的內核設計后,EKA2是對32位Symbian內核結構的重構。 Psion’s Organiser發(fā)行于1984年,它基于8位處理器,并且僅支持內置的應用程序。對于這樣的設備而言,必需的內核用于系統引導和系統設備管理,而且在8位內核和中間件或應用程序間,也沒(méi)有清晰的區別。 1986年,Psion發(fā)行了8位的提供基于交互式OPL語(yǔ)言擴展的Organiser II。這時(shí)候,提供足夠高效的內存管理對OS就變得重要起來(lái),比如支持交互式語(yǔ)言。 主要的變革開(kāi)始于90年代,Psion發(fā)行了一系列的新版本,包括Laptop,Clamshell Organizer和Industrial Organizer,它們都是基于單操作系統的。16位的EPOC內核被綁定到Intel 8086結構,并且支持擴展,編寫(xiě)這些應用程序不僅可以使用OPL語(yǔ)言,而且也可以使用EPOC OS上的原生C API——它開(kāi)放了OS以支持任何第三方應用的編寫(xiě)。 這種開(kāi)放取代了對內核的更多要求,比如,它形成了文檔并向第三方開(kāi)發(fā)人員提供。假如有些應用寫(xiě)得很糟糕:內核將必須提供內存保護,以使它們產(chǎn)生的Bug不影響其他的程序,更要保證它們不對整個(gè)OS產(chǎn)生影響。開(kāi)放性減少了這種糟糕情況的發(fā)生。有限的可用設備必須高效地在資源受到嚴格管理的系統上運轉,所有的這些都是基于8086的分段式內存模型,同時(shí)還要面對PC程序員不太珍惜內存的習慣。 因此,16位的EPOC內核必須處理今天的EKA2仍然也要處理的大量請求,因為它的配置介于嵌入式實(shí)時(shí)系統和傳統的比如Windows桌面系統之間。它類(lèi)似于嵌入式RTOS,但比RTOS更大,因為它支持豐富的功能并且對第三方應用開(kāi)放。同時(shí),它類(lèi)似于桌面型系統(開(kāi)放的、也使用8086結構),但它又更小,因為它可用的內存和電源等資源比桌面型系統更少。 對于EKA2的誕生,兩個(gè)更深遠的變革是必需的。 1997年發(fā)布于的Psion’s Series5 PDA中的EPOC32,形成于1994年。它的內核采用EKA1的配置,繼承了16位EPOC內核的優(yōu)良品質(zhì),同時(shí)還修正了它的幾個(gè)重要問(wèn)題。首先,EKA1完全是32位的,由于采用8086的分段內存結構,EPOC32可以盡量避免EPOC中因為過(guò)于笨重而產(chǎn)生的崩潰。其次,EKA1內核從最開(kāi)始的設計就一直考慮到了硬件的種類(lèi)多樣化及發(fā)展,這使它與被綁定到80186芯片組上的16位EPOC不同?;谶@些原則,使得很多的實(shí)現細節發(fā)生了改變,但EKA1與16位的EPOC還是有本質(zhì)上的相似性。 EKA1幾乎在EPOC32發(fā)布的相同時(shí)期誕生。 顯然,EKA1并不是故事的終結。Symbian OS對事件驅動(dòng)編程的支持相當徹底,但它不提供實(shí)時(shí)的保證。它的內核設計得很強大——以支持處理個(gè)人數據的PDA產(chǎn)品。當Symbian OS開(kāi)始專(zhuān)注于處理移動(dòng)電話(huà)的需求時(shí),提供實(shí)時(shí)處理的支持就顯得很重要了。 還有其他的一些因素在影響著(zhù)EKA2。在EKA1的環(huán)境下進(jìn)行實(shí)時(shí)硬件移植的經(jīng)驗表明,EKA1模塊的邊界不太好確定,這就給移植工作帶來(lái)了困難。有些端口,只需要很小的一點(diǎn)驅動(dòng)上的改變,但在實(shí)現上,卻要求通過(guò)內核的重構來(lái)實(shí)現。 所以,新的內核結構在設計之初就區別于最初的32位EPOC內核,它被命名為EKA2(EPOC Kernel Architecture 2),這個(gè)命名暗示了EKA1是它的先驅。 EKA2的設想形成于1998年,而且漸漸地被推向市場(chǎng)。到2003年,Symbian主要的授權用戶(hù)和半導體供應商都承諾在未來(lái)的產(chǎn)品中采用EKA2。 |