Andreas Polze, Daniel Richter, Uwe Hentschel
Andreas Polze; Daniel Richter; Uwe Hentschel (Hrsg.)

Embedded Operating System Projects

ISBN: 978-3-86956-296-4
87 Seiten
Erscheinungsjahr 2015

Reihe: Technische Berichte des Hasso-Plattner-Instituts für Softwaresystemtechnik an der Universität Potsdam , 90

0,00 

Heutzutage sind eingebettete Systeme allgegenwärtig. Allerdings unterscheiden sie sich in vielen Aspekten von traditionellen Desktop-System – dazu gehören vorhersagbares Zeitverhalten („Echtzeit“), die Verwaltung von knappen Ressourcen (Speicher, Netzwerk), zuverlässige Kommunikationsprotokolle, Energiemanagement, spezialisierte Benutzungsschnittstellen („headless“), Systemkonfiguration, Programmiersprachen (zur Unterstützung von Software-Hardware-Co-Design) und Modellierungstechniken. In diesem technischen Bericht präsentieren die Autoren Ergebnisse aus der Vorlesung „Betriebssysteme für Embedded Computing“, die von der Fachgruppe „Betriebssysteme und Middleware“ am HPI in Wintersemester 2013/14 angeboten wurde. Schwerpunkte der Vorlesung und der begleitenden Projekte waren Prinzipien von Echtzeit-Computing. Die Studenten hatten die Möglichkeit, praktische Erfahrungen mit einer Reihe von verschiedenen Betriebssystemen und Anwendungen zu sammeln und präsentieren ihre Erfahrungen mit hardwarenaher Programmierung. Die Projekte adressieren das gesamte Spektrum von der Bare-Metal-Programmierung über die Nutzung eines Echtzeitbetriebssystem bis zur Anwendung des vollen Software-Hardware-Co-Design-Zyklus‘. Drei herausragende Projekte sind das Herzstück dieses technischen Berichts. Projekt 1 konzentriert sich auf die Entwicklung eines Bare-Metal-Betriebssystems für LEGO Mindstorms EV3. Obwohl es ein Spielzeug ist, kommt es mit einem leistungsstarken ARM-Prozessor, 64 MB Hauptspeicher und Standardschnittstellen wie Bluetooth und einem Netzwerkprotokollstapel. Auf dem EV3 läuft spezielle Linux-Version – die Quellen sind auf der Lego-Website verfügbar. Allerdings sind viele Geräte und deren Treiber-Software urheberrechtlich geschützt und nicht gut dokumentiert. Die Entwicklung eines neuen Bare-Metal-Betriebssystem für den EV3 erfordert ein Verständnis des EV3-Bootvorgangs. Da keine Standard-Ein-/Ausgabegeräte zur Verfügung stehen, sind anfängliche Debug-Schritte mühsam. Nach dem Absolvieren dieser ersten Schritte war das Projekt in der Lage, Gerätetreiber für einige Lego-Geräte anzupassen um einen Demonstrator (die Segway-Anwendung) erfolgreich auf dem neuen Betriebssystem laufen zu lassen. Projekt 2 befasst sich mit dem EV3 aus einer anderen Perspektive. Der EV3 wird mit einer üblichen EV3 Linux-Version betrieben – im Prinzip kann der RT_PREEMPT-Patch jedes Linux-System in ein Echtzeitbetriebssystem verwandeln, indem er das Verhalten einer Anzahl von Synchronisationskonstrukten im Herzen des Betriebssystems anpasst. Priority Inversion ist ein Problem, das durch Protokolle wie Prioritätsvererbung oder Priority Ceiling gelöst wird. Heutige Echtzeit-Betriebssysteme implementieren mindestens eines dieser Protokolle. Die zentrale Idee des Projekts war der Vergleich der Nicht-Echtzeit und Echtzeit-Varianten von Linux auf der EV3-Hardware. Ein Task-Set, das die Auswirkungen der Prioritätsumkehr auf Standard-EV3 Linux zeigt, würde ohne Probleme auf der Linux-Version mit dem RT_PREEMPT-Patch betrieben werden können. Wenn nur das Patchen Lego-Version von Linux war so einfach wäre… Projekt 3 nimmt den Begriff des Echtzeit-Computing ernst. Das Anwendungsszenario wurde um unsere Carrera Digital 132 Bahn angeordnet. Das Sammeln von Positionsinformationen, die Steuerung einzelner Fahrzeuge, die Erfassung und Änderung des Carrera Digital-Protokolls erfordert die Konzeption und Umsetzung von spezialisierter Controller-Hardware. Die zentrale Fragestellung dieses Projekts war, was in Hardware, in Firmware oder in der Anwendungssoftware zu implementieren ist.

Heutzutage sind eingebettete Systeme allgegenwärtig. Allerdings unterscheiden sie sich in vielen Aspekten von traditionellen Desktop-System – dazu gehören vorhersagbares Zeitverhalten („Echtzeit“), die Verwaltung von knappen Ressourcen (Speicher, Netzwerk), zuverlässige Kommunikationsprotokolle, Energiemanagement, spezialisierte Benutzungsschnittstellen („headless“), Systemkonfiguration, Programmiersprachen (zur Unterstützung von Software-Hardware-Co-Design) und Modellierungstechniken. In diesem technischen Bericht präsentieren die Autoren Ergebnisse aus der Vorlesung „Betriebssysteme für Embedded Computing“, die von der Fachgruppe „Betriebssysteme und Middleware“ am HPI in Wintersemester 2013/14 angeboten wurde. Schwerpunkte der Vorlesung und der begleitenden Projekte waren Prinzipien von Echtzeit-Computing. Die Studenten hatten die Möglichkeit, praktische Erfahrungen mit einer Reihe von verschiedenen Betriebssystemen und Anwendungen zu sammeln und präsentieren ihre Erfahrungen mit hardwarenaher Programmierung. Die Projekte adressieren das gesamte Spektrum von der Bare-Metal-Programmierung über die Nutzung eines Echtzeitbetriebssystem bis zur Anwendung des vollen Software-Hardware-Co-Design-Zyklus‘. Drei herausragende Projekte sind das Herzstück dieses technischen Berichts. Projekt 1 konzentriert sich auf die Entwicklung eines Bare-Metal-Betriebssystems für LEGO Mindstorms EV3. Obwohl es ein Spielzeug ist, kommt es mit einem leistungsstarken ARM-Prozessor, 64 MB Hauptspeicher und Standardschnittstellen wie Bluetooth und einem Netzwerkprotokollstapel. Auf dem EV3 läuft spezielle Linux-Version – die Quellen sind auf der Lego-Website verfügbar. Allerdings sind viele Geräte und deren Treiber-Software urheberrechtlich geschützt und nicht gut dokumentiert. Die Entwicklung eines neuen Bare-Metal-Betriebssystem für den EV3 erfordert ein Verständnis des EV3-Bootvorgangs. Da keine Standard-Ein-/Ausgabegeräte zur Verfügung stehen, sind anfängliche Debug-Schritte mühsam. Nach dem Absolvieren dieser ersten Schritte war das Projekt in der Lage, Gerätetreiber für einige Lego-Geräte anzupassen um einen Demonstrator (die Segway-Anwendung) erfolgreich auf dem neuen Betriebssystem laufen zu lassen. Projekt 2 befasst sich mit dem EV3 aus einer anderen Perspektive. Der EV3 wird mit einer üblichen EV3 Linux-Version betrieben – im Prinzip kann der RT_PREEMPT-Patch jedes Linux-System in ein Echtzeitbetriebssystem verwandeln, indem er das Verhalten einer Anzahl von Synchronisationskonstrukten im Herzen des Betriebssystems anpasst. Priority Inversion ist ein Problem, das durch Protokolle wie Prioritätsvererbung oder Priority Ceiling gelöst wird. Heutige Echtzeit-Betriebssysteme implementieren mindestens eines dieser Protokolle. Die zentrale Idee des Projekts war der Vergleich der Nicht-Echtzeit und Echtzeit-Varianten von Linux auf der EV3-Hardware. Ein Task-Set, das die Auswirkungen der Prioritätsumkehr auf Standard-EV3 Linux zeigt, würde ohne Probleme auf der Linux-Version mit dem RT_PREEMPT-Patch betrieben werden können. Wenn nur das Patchen Lego-Version von Linux war so einfach wäre… Projekt 3 nimmt den Begriff des Echtzeit-Computing ernst. Das Anwendungsszenario wurde um unsere Carrera Digital 132 Bahn angeordnet. Das Sammeln von Positionsinformationen, die Steuerung einzelner Fahrzeuge, die Erfassung und Änderung des Carrera Digital-Protokolls erfordert die Konzeption und Umsetzung von spezialisierter Controller-Hardware. Die zentrale Fragestellung dieses Projekts war, was in Hardware, in Firmware oder in der Anwendungssoftware zu implementieren ist.