Symbian OS Kernel Architecture

Vortrag über das grobe Design des Symbian OS Microkernels, inklusive seiner Geschichte.

Zusammenfassung

Der Kernel von Symbian OS ist dafür konzipiert, auf batteriebetriebenen, mobilen Endgeräten mit knappen Ressourcen eine desktopartige Nutzererfahrung zu ermöglichen. Zugleich liessen die Entwickler bereits beim Design des Kernels auch die Anforderungen der Hardware-Hersteller nicht ausser acht: Durch die Echzeitfähigkeit und eine Kompatibilätsschicht zu anderen Echtzeitbetriebssystemen schufen sie die Möglichkeit, die Produktionskosten durch Single-Chip Designs zu senken und bereits getätigte Investitionen in z.B. GSM-Stacks zu erhalten.

Der Kernel EKA2 - EPOC Kernel Architecture 2 - ist modular aufgebaut, was es nicht nur ermöglicht, unbenötigte Komponenten wegzulassen, sondern auch die Entwicklungszeit durch nur sehr selten notwendige Neukompilierung des gesamten Systems verringert. Das gesamte Betriebssystem ist ein Single-User-System, bietet aber durch das Platform Security-Konzept über "Capabilities" die Möglichkeit, den Zugriff auf Systemfunktionen mittels zentralisierter Signierung von Objektcode fein granuliert einzuschränken. Hierdurch wird auch die Sicherheit gegen böswilligen Code gewährleistet.

Um Echtzeitbedingungen einhalten zu können, ist nur eine Interrupt Service Routine pro Interrupt erlaubt - und es dürfen jedem Prozess maximal 16 virtuelle Adressbereiche zugeordnet werden. Der Kernel unterstützt In-Place Execution, wenn er von einem ROM ausgeführt wird. Er ist portabel - es sind Implementierungen für die ARM- sowie x86-Architektur vorhanden - und benötigt nicht zwingend eine MMU. Alles Wissen über die konkrete Speicherverwaltung liegt in einer einheitlichen Komponente, dem Memory Model. Das Betriebssystem beinhaltet zwar einen grundlegenden WindowServer zur Ansprache von Displays und Keyboards, bietet aber keine standardisierte Widget- und Support-Library. Hier schufen Nokia, Sony Ericsson und NTT DoCoMo eigene Lösungen, die sich stark voneinander unterscheiden.

Symbian OS wird mit einem Emulator ausgeliefert, der den Entwickler seine gewohnten Debugging-Tools verwenden lässt. Hierzu wird lediglich ein kleiner Teil des Kernels gegen eine Win32-Implementierung ausgetauscht, und das "emulator"-Memory-Model genutzt, das sich einige Meta-Informationen, z.B. welches Image welchen Prozess erzeugt hat, zusätzlich merkt. Für den Emulator kompilierte Programme liegen als Windows PE Exe-Dateien vor.

Seit dem 4. Februar 2010 ist Symbian OS als "Symbian Platform" komplett Open Source unter der Eclipse Public License, und unter www.symbian.org für jeden frei zugänglich. Die Symbian Platform beinhaltet Teile der Series 60 und anderer Plattformen, um die Entwicklung neuer Endgeräte zu vereinfachen und die Applikationsentwicklung zu vereinheitlichen.

Quellen

  • Sales, J. 2005. Symbian OS Internals: Real-time Kernel Programming. Wiley & Sons. [1]
  • Jipping, M.J. 2007. Smartphone Operating System Concepts with Symbian OS. Wiley & Sons. [2]
  • Morris, B. 2007. The Symbian OS Architecture Sourcebook: Design and Evolution of a Mobile Phone OS. Wiley & Sons. [3]