This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed. Find sources: "EKA2" – news ·newspapers ·books ·scholar ·JSTOR(May 2007) (Learn how and when to remove this message) |
Developer | Psion Symbian Ltd. Symbian Foundation Nokia Accenture |
---|---|
Written in | Assembly language,C, thenC++ |
OS family | EPOC (Symbian) |
Working state | Discontinued |
Source model | Proprietary andOpen source |
Initial release | 2005; 20 years ago (2005) |
Final release | 10.1 / October 2, 2012; 12 years ago (2012-10-02) |
Marketing target | Mobile phones |
Available in | English |
Platforms | ARM |
Kernel type | MicrokernelReal-time |
License | Eclipse Public |
Preceded by | EKA1 |
Official website | developer |
EKA2 (EPOC Kernel Architecture 2) is the second-generationSymbian platformreal-time operating systemkernel,[1] which originated in the earlier operating systemEPOC.
EKA2 began with aproprietary software license. In October 2009, it was released asfree and open-source software under anEclipse Public License.[2] In April 2011, it was reverted to a proprietary license.
Like its predecessor,EKA1, it haspreemptive multithreading and full memory protection. The main differences are:
Theuser interface of EKA2 is almost fully compatible with EKA1. EKA1 was not used after Symbian OS version 8.1, and was superseded in 2005.
The main advantage of EKA2 was its ability to run full telephone signallingprotocol stacks. Previously, on Symbian phones, these had to run on a separatecentral processing unit (CPU). Such signalling stacks are very complex and rewriting them to work natively on Symbian OS is typically not an option.[citation needed] EKA2 thus allowspersonality layers to emulate the basic primitives of other operating systems, thus allowing existing signalling stacks to run largely unchanged.
Real-time guarantees are a prerequisite of signalling stacks, and also help with multimedia tasks. However, as with any RTOS, a full analysis of all threads is needed before any real-time guarantees can be offered to anything except the highest-priority thread; because higher priority threads may prevent lower-priority threads from running. Any multimedia task is likely to involve graphics, storage and/or networking activity, all of which are more likely to disrupt the stream than the kernel is.
Inside the kernel, EKA1 only allowed one thread (plus anull idle thread). EKA2 allows many threads. This makes it much easier to writedevice drivers that involve complexfinite-state machines, such as those forSD card memory sticks orUSB flash drives. Interrupts are handled with aninterrupt service routine, which may request animmediate deferred function call (called as soon as the interrupts are processed), or adeferred function call, which is queued to run on a kernel thread. Either may in turn communicate with user-side threads.
Power management in EKA2 was largely unchanged from EKA1. The exact scheme varies between phones, but generally the null thread puts the CPU andperipherals to sleep, after having requested a wake-up whenever the next timer is due to expire.
EKA2 runs onARM architecture CPUs and theWINS emulator. Unofficial ports exist for other CPUs. On the emulator, EKA2 provides somewhat better emulation than EKA1, more so for theRProcess
APIs which Symbian OS uses to representprocesses. In EKA1 they didn't work at all on the emulator, which runs as a single Windows process.
Much of the credit for EKA2 goes to a single Symbian kernel engineer, who began the project as an experiment many years before it became an official part of Symbian OS.[3]