EKA2

Short description: Real-time operating system kernel

EKA2Developer| Psion
Symbian Ltd.
Symbian Foundation
Nokia
Accenture

|

Written in| Assembly language, C, then C++
OS family| EPOC (Symbian)
Working state| Discontinued
Source model| Proprietary and Open source
Initial release| 2005; 21 years ago (2005)
Yes|Final release|Latest release}}| 10.1 / October 2, 2012; 13 years ago (2012-10-02)
Marketing target| Mobile phones
Available in| English
Platforms| ARM
Kernel type| Microkernel Real-time
License| Eclipse Public
Preceded by| EKA1
Official website| developer.symbian.org/wiki/index.php/Category:Kernel_&_Hardware_Services

EKA2 (EPOC Kernel Architecture 2) is the second-generation Symbian platform real-time operating system kernel,[1] which originated in the earlier operating system EPOC.

EKA2 began with a proprietary software license. In October 2009, it was released as free and open-source software under an Eclipse Public License.[2] In April 2011, it was reverted to a proprietary license.

Like its predecessor, EKA1, it has preemptive multithreading and full memory protection. The main differences are:

* Real-time guarantees: each application programming interface (API) call is fast, but more importantly, time-bound
* Multiple threads inside the kernel, and outside
* Pluggable memory models, allowing better support for later generations of ARM instruction set architecture.
* A nanokernel which provides the most basic OS facilities upon which other personality layers can be built

The user 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 signalling protocol stacks. Previously, on Symbian phones, these had to run on a separate central 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 allows personality 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 a null idle thread). EKA2 allows many threads. This makes it much easier to write device drivers that involve complex finite-state machines, such as those for SD card memory sticks or USB flash drives. Interrupts are handled with an interrupt service routine, which may request an immediate deferred function call (called as soon as the interrupts are processed), or a deferred 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 and peripherals to sleep, after having requested a wake-up whenever the next timer is due to expire.

EKA2 runs on ARM architecture CPUs and the WINS emulator. Unofficial ports exist for other CPUs. On the emulator, EKA2 provides somewhat better emulation than EKA1, more so for the `RProcess` APIs which Symbian OS uses to represent processes. 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]

## See also

* Nanokernel

## References

1. ↑ "Symbian OS Internals". http://wiki.forum.nokia.com/index.php/Symbian_OS_Internals.
2. ↑ Blandford, Rafe (October 22, 2009). "Symbian Foundation opensources EKA2 microkernel". Symbian Foundation. http://www.allaboutsymbian.com/news/item/10641_Symbian_Foundation_opensources.php.
3. ↑ Dennis May - United Kingdom | LinkedIn. Uk.linkedin.com. Retrieved on 2013-12-09.

## External links

* https://web.archive.org/web/20091025051019/http://developer.symbian.org/wiki/index.php/Category:Kernel_&_Hardware_Services
* https://web.archive.org/web/20090717151501/http://wiki.forum.nokia.com/index.php/EPOC_Kernel_Architecture_2
* http://media.wiley.com/product_data/excerpt/47/04700252/0470025247.pdf

* v
* t
* e

Microkernels-nanokernels

Kernels|

* ADEOS
* EPOC
* EKA1
* EKA2
* Eumel
* Exec
* ExecSG
* EROS
* K42
* L3
* L4
* Little Kernel
* Mac OS nanokernel
* Mach
* GNU Mach
* MicroEmpix
* µ-velOSity
* nucleus
* NuKernel
* Off++
* Opus
* PowerUP
* Quark
* TI-RTOS kernel
* Vanguard
* WarpOS
* Zircon

Operating
systems|

* AmigaOS
* Amoeba
* AROS
* AspireOS
* Broadway
* Icaros Desktop
* ARX
* BeRTOS
* ChibiOS/RT
* ChorusOS
* Copland
* Cosmos
* EROS
* FreeRTOS
* Fuchsia
* Genode
* GNOSIS
* GNU Hurd
* HelenOS
* Hydra
* Integrity
* JX
* JavaOS
* KeyKOS
* Lites
* Classic Mac OS (PowerPC kernel)
* MachTen
* MacMach
* MeikOS
* MERT
* µC/OS
* Midori
* MINIX
* Minix-vmd
* MINIX 3
* MkLinux
* MorphOS
* MQX
* NLTSS
* Nucleus RTOS
* NuttX
* OS2000
* OSE
* Phantom OS
* PikeOS
* QNX
* RC 4000
* Redox
* REX OS
* RIOT
* SharpOS
* Singularity
* SPIN
* Spring
* Symbian
* Taligent OS
* ThreadX
* TI-RTOS
* Tinix
* UNICOS
* V
* Verve
* VRTX
* VSTa
* Wombat OS
* Workplace OS
* Zephyr

* v
* t
* e

Real-time operating systems (RTOS)

* Comparison of real-time operating systems

Open-source|

* BeRTOS
* ChibiOS/RT
* Contiki
* eCos
* ERIKA Enterprise
* FreeRTOS
* Fuchsia
* FunkOS
* Mynewt OS
* Nano-RK
* NuttX
* RIOT
* RTAI
* RTEMS
* RTLinux
* RT-Thread
* seL4
* TI-RTOS
* TRON
* Wombat OS
* Xenomai
* Zephyr

Proprietary|

* 4690 OS
* DioneOS
* embOS
* Integrity
* Junos OS
* LynxOS
* µC/OS-II
* MQX
* Nucleus RTOS
* OpenComRTOS
* OSE
* OS-9
* OS2000
* PikeOS
* QNX
* REAL/32
* REX OS
* ScreenOS
* ThreadX
* TPF
* VRTX
* VxWorks
* Windows Embedded Compact

Historic|

* 4680 OS
* Concurrent DOS
* DNIX
* DSOS
* EROS
* FlexOS
* MERT/UNIX-RT
* Multiuser DOS
* pSOS
* RMX
* RSX-11
* RT-11
* Sintran III
* Symbian
* THEOS
* UNOS

* Category

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/EKA2. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Software:EKA2&oldid=801658"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template