Nov 29, 2024; Defence
Echtzeit-AGEntwicklung einer initialen USB-Unterstützung für das L4Re Betriebssystem-Framework
USB ist ein weit verbreiteter Datenübertragungs-Bus zum Verbinden externer Peripheriegeräte an Rechner, Laptops und Smartphones. Er unterstützt eine Vielzahl unterschiedlicher Geräteklassen, und ist aufgrund seines großen Umfangs ebenso nützlich wie aufwändig in der Umsetzung. Seine Verwendung durch ein Betriebssystem erfordert einen USB-Stack mit Treibern für USB-Host-Controller und USB-Geräten.
Diese Arbeit umfasst den Entwurf eines nativen USB-Stacks für L4Re. Gemäß dem Mikrokern-Ansatz folgt er einer Client/Server-Architektur, in welcher alle Gerätetreiber als Clients eines zentralen USB-Servers implementiert sind. Die Verwendung der L4-IPC-Mechanismen erlaubt über Capabilities eine flexible Zugriffskontrolle auf Ebene der USB-Geräte-Interfaces. Der Entwurf ist auf eine zukünftige Erweiterung der verfügbaren Host-Controller-Treiber ausgelegt, und erlaubt per Design eine einfache Anbindung weiterer USB-Gerätetreiber. Die Verwendung einer generischen Gerätetreiber-API erlaubt dabei die freie Wahl zwischen eigener Implementation und Portierung.
Im Zuge der praktischen Umsetzung erfolgt die Entwicklung eines OHCI-Treibers, einer zentralen Geräteverwaltung mit Hardwarezugriff über den L4Re-IO-Server, einer Gerätetreiber-API, sowie eines HID-Treibers. Eine Anbindung letzteren an das L4Re-Event-Interface erlaubt das Verarbeiten von USB-Maus- und -Tastatureingaben im L4Re-GUI Multiplexer Mag.
Durch eine Latenzmessung wird der Einfluss der einzelnen Komponenten untersucht. Eine niedrige Gesamtlatenz des USB-Stacks von circa sechs Mikrosekunden bestätigt dabei eine zeiteffiziente Implementation.
Als zukünftige Arbeitsfelder wurden die Durchführung einer Durchsatz-Messung mithilfe eines Massenspeicher- oder Netzwerktreibers, eine Funktionserweiterung der praktischen Umsetzung, sowie die Unterstützung weiterer Host-Controller und USB-Geräteklassen identifiziert.