# OSEK

OSEK (offiziell: OSEK/VDX) steht für "Offene Systeme und deren Schnittstellen für die Elektronik im Kraftfahrzeug" und war ein industrielles Standardisierungsgremium.

## Hintergrund

Das 1993 gegründete Gremium besteht aus verschiedenen Kfz-Herstellern, deren Zulieferern und Software-Häusern. Gründungsmitglieder waren BMW AG, Daimler-Benz AG (heute Mercedes-Benz AG), Adam Opel AG, Volkswagen, Robert Bosch GmbH, Siemens AG und das Institut für industrielle Informationstechnik der Universität Karlsruhe (TH).
Im Jahr 1994 schloss man sich mit der 1988 gegründeten französischen VDX-Initiative (Vehicle Distributed Executive) bestehend aus PSA (Peugeot, Citroën) und Renault zusammen. Seitdem lautet die offizielle Bezeichnung OSEK/VDX.
Die Wortmarke OSEK/VDX wurde 1997 von der Siemens Aktiengesellschaft beim USPTO registriert, später an die Siemens Automotive VDO AG und final an die Continental AG übertragen.
Die Arbeiten der OSEK-Gremien finden ihre Fortsetzung im 2003 gestarteten AUTOSAR-Konsortium. Z. B. bildet das OSEK-OS die Grundlage für das AUTOSAR OS der CLASSIC PLATFORM.

## Konzept & Standards

Wesentliche Teile der OSEK/VDX-Spezifikationen wurden in die ISO-Normen ISO 17356-[1-6] überführt. Diese Normen umfassen die Spezifikationen OSEK/VDX-OS 2.2.2, OSEK/VDX-COM 3.0.3, OSEK/VDX-NM 2.5.3 und OSEK/VDX-OIL 2.5, sowie die so genannte Binding Specification 1.4.2, die das Zusammenwirken der einzelnen Teile beschreibt.
Der wichtigste Standard, den dieses Gremium geschaffen hat, ist OSEK-OS. Das -OS steht hier für Operating System oder zu Deutsch Betriebssystem. Es handelt sich dabei um eine spezielle Spezifikation eines Echtzeitbetriebssystems für eingebettete Komponenten, die wie die anderen Standards auch, hauptsächlich für die Verwendung von Echtzeitsystemen im Bereich Automobilelektronik abzielt.
Die folgenden Standards wurden geschaffen:
* ISO 17356-1:2005: Generelle Definitionen, Struktur etc.
* ISO 17356-2:2005: Spezifikation, welche OS, NM und COM kombiniert
* OSEK-OS (ISO 17356-3:2005) ist die Spezifikation für das Echtzeitbetriebssystem.
* OSEK-COM (ISO 17356-4:2005) beschreibt die Kommunikation zwischen Programmteilen. Diese Programmteile können sowohl auf einem als auch auf unterschiedlichen Steuergeräten implementiert sein, die miteinander durch ein Netzwerk verbunden sind.
* OSEK-NM (ISO 17356-5:2006) beschreibt unter anderem, wann sich Steuergeräte innerhalb eines Autos abschalten dürfen. NM steht dabei für Network Management. Hintergrund ist, dass alle aktiven Steuergeräte im Auto Strom verbrauchen. Viele dieser Steuergeräte müssen auch bei abgezogenem Zündschlüssel noch arbeiten, damit man beispielsweise auch dann noch das (elektrische) Schiebedach schließen kann. Wenn diese Steuergeräte aber ständig aktiv bleiben, wird die Batterie des Fahrzeugs leer sein, wenn es längere Zeit abgestellt war. Daher werden diese Steuergeräte nach Abstellen des Fahrzeugs über das Netzwerk abgeschaltet. Des Weiteren ist OSEK-NM für alle Aufgaben zuständig, die sich mit der Verwaltung des Netzwerkes, das die Steuergeräte verbindet, sehr oft ein CAN-Bus, beschäftigen. Hierüber wird dem einzelnen Steuergerät beispielsweise mitgeteilt, welche Rolle er im vorhandenen Netzwerk besitzt, und wer seine Nachbarn sind etc.
* OSEK-OIL (ISO 17356-6:2006) stellt eine Auszeichnungssprache dar. OIL steht für OSEK Implementation Language. In dieser Sprache werden Betriebssystemobjekte angelegt und beschrieben, wie z. B. Tasks, Interrupts, Ressourcen und Alarme. OIL bietet eine normierte Möglichkeit, für eine Applikation erforderliche Betriebssystemdienste zu beschreiben. Damit soll der Wechsel zwischen verschiedenen OSEK-OS-konformen Betriebssystemen erleichtert werden.
Weitere Spezifikationen:
* OSEK-TIME (keine eigene ISO) auch geschrieben als "OSEKtime" spezifiziert einen Standard für ein "zeitgesteuertes (getriggerte) Betriebssystem und eine fehlertolerante Kommunikationsschicht". OSEK-TIME Callback-Funktionen werden mit höherer Priorität bearbeitet als die in OSEK-OS konfigurierten Tasks.
* OSEK-ORTI (keine eigene ISO) oder OSEK RunTime Interface definiert die Kommunikation eines OSEK-OS-Betriebssystems mit einem Debugger. ORTI bedeutet OSEK RunTime Interface. Ein Debugger wird damit in die Lage versetzt, interne Zustände des Betriebssystems, wie z. B. die Zustände von Tasks, anzuzeigen. Es existieren die Spezifikationen A und B.
Da die offizielle, damalige Webseite nicht mehr erreichbar ist, können die alten Spezifikationen teils nur noch über inoffizielle Bezugsquellen im Internet bezogen werden, bzw. es gelten die aktuellen ISO-Normen.

## Stand der Technik

Es besteht weiterhin ein aktiver Pool an Anbietern für OSEK/VDX-Lösungen (meist kommerziell, aber auch Open Source – siehe auch Liste von Betriebssystemen), jedoch wird in den meisten Fällen vom Nachfolger, der AUTOSAR Architektur, gesprochen.
Ebenfalls existiert in geringem Umfang noch Forschung z. B. im Bereich von Systems Engineering und OSEK/VDX RTOS oder in Bezug auf die Kompatibilität zwischen OSEK und AUTOSAR.
In einem 48-seitigen Gutachten aus dem Jahr 2003 des Software Engineering Institute (SEI) der Carnegie Mellon University (CMU) wurden die Spezifikationen untersucht und mögliche Schwächen in den Bereichen der Alarm- und Ereignismechanismen mit Lösungsansätzen aufgezeigt. Ebenfalls wurde das Potential von OSEK erwähnt.