EKA2
Encyclopedia
EKA2 is the second-generation Symbian
Symbian
Symbian is a mobile operating system and computing platform designed for smartphones and currently maintained by Accenture. The Symbian platform is the successor to Symbian OS and Nokia Series 60; unlike Symbian OS, which needed an additional user interface system, Symbian includes a user...

 platform kernel.

Like its predecessor, EKA1
EKA1
EKA1 is the first-generation kernel for Symbian OS. It offers pre-emptive multitasking and memory protection, but no real-time guarantees and a single-threaded device driver model. It has now largely been superseded by EKA2....

, it has pre-emptive multithreading and full memory protection. The main differences are:
  • Real-time guarantees (each API call is quick, but more importantly, time-bound)
  • Multiple threads inside the kernel as well as outside
  • Pluggable memory models
    Memory model (computing)
    In computing, a memory model describes the interactions of threads through memory and specifies the assumptions the compiler is allowed to make when generating code for segmented memory or paged memory platforms.-History and significance:...

    , allowing better support for later generations of ARM
    ARM architecture
    ARM is a 32-bit reduced instruction set computer instruction set architecture developed by ARM Holdings. It was named the Advanced RISC Machine, and before that, the Acorn RISC Machine. The ARM architecture is the most widely used 32-bit ISA in numbers produced...

     instruction set
    Instruction set
    An instruction set, or instruction set architecture , is the part of the computer architecture related to programming, including the native data types, instructions, registers, addressing modes, memory architecture, interrupt and exception handling, and external I/O...

    .
  • A "nanokernel" which provides the most basic OS facilities upon which other "personality layers" can be built


The user-side interface of EKA2 is almost completely compatible with EKA1
EKA1
EKA1 is the first-generation kernel for Symbian OS. It offers pre-emptive multitasking and memory protection, but no real-time guarantees and a single-threaded device driver model. It has now largely been superseded by EKA2....

 - though EKA1 has not been used since Symbian OS v8.1 (which was superseded in 2005)

The main advantage of EKA2 was its ability to run full telephone signalling stacks
Protocol stack
The protocol stack is an implementation of a computer networking protocol suite. The terms are often used interchangeably. Strictly speaking, the suite is the definition of the protocols, and the stack is the software implementation of them....

. Previously, on Symbian phones, these had to run on a separate CPU. Such signalling stacks are extremely complex and rewriting them to work natively on Symbian OS is typically not an option. EKA2 therefore 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 pre-requisite of signalling stacks, and also help with multimedia tasks. However, as with any real-time operating system, a full analysis of all threads is required before any real-time guarantees can be offered to anything except the highest-priority thread. (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 a single thread (plus a 'null' idle thread). EKA2 allows many threads. This makes it much easier to write device drivers that involve complex state machines, such as those for memory stick
Memory Stick
Memory Stick is a removable flash memory card format, launched by Sony in October 1998, and is also used in general to describe the whole family of Memory Sticks...

s or USB. 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
ARM architecture
ARM is a 32-bit reduced instruction set computer instruction set architecture developed by ARM Holdings. It was named the Advanced RISC Machine, and before that, the Acorn RISC Machine. The ARM architecture is the most widely used 32-bit ISA in numbers produced...

 CPUs and the "WINS" emulator. (Unofficial ports exist for other CPUs). On the emulator, EKA2 provides somewhat better emulation than EKA1, in particular for the RProcess APIs which Symbian OS uses to represent processes
Process (computing)
In computing, a process is an instance of a computer program that is being executed. It contains the program code and its current activity. Depending on the operating system , a process may be made up of multiple threads of execution that execute instructions concurrently.A computer program is a...

. 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.

External links

  • http://developer.symbian.org/wiki/index.php/Category:Kernel_&_Hardware_Services
  • http://www.allaboutsymbian.com/news/item/10641_Symbian_Foundation_opensources.php
  • http://wiki.forum.nokia.com/index.php/EPOC_Kernel_Architecture_2
  • http://media.wiley.com/product_data/excerpt/47/04700252/0470025247.pdf
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK