Abo
  • IT-Karriere:

Linux: Kernel-Hacker wollen Yaml zur Hardware-Beschreibung nutzen

Device Tree Sources (DTS) werden im Linux-Kernel zum Beschreiben von Hardware genutzt und sollen sich künftig auch im Yaml-Format definieren lassen. Das bringe einige Vorteile, sagen Kernel-Entwickler.

Artikel veröffentlicht am , Kristian Kißling/Linux Magazin
Damit Linux auf den meisten ARM-Rechnern bootet, braucht es Device Trees.
Damit Linux auf den meisten ARM-Rechnern bootet, braucht es Device Trees. (Bild: flickr.com, osde8info/CC-BY 2.0)

Das Konzept Device Trees wird im Linux-Kernel genutzt, um Hardware zu beschreiben, die andernfalls nicht entdeckt würde. Die Informationen zu dieser Hardware landen dann in einer Baumstruktur. Wichtig ist das zum Beispiel für ARM-Boards. Auf dem Kernel Summit in Prag stellte nun die amerikanische Consulting-Gruppe Konsulko ihren Vorschlag zur Diskussion, das Format für diese Device Trees auf Yaml zu ändern. Das sei eine radikale Änderung, die sich aber aufgrund einige Vorteile durchaus lohnen könne.

Status Quo ist kompliziert

Stellenmarkt
  1. Dataport, verschiedene Standorte
  2. eXXcellent solutions GmbH, Ulm, München, Stuttgart, Darmstadt, Berlin

Der Umgang mit Device Trees folgt auf Linux-Systemen üblicherweise einem festen Schema. Aus den sogenannten Device Tree Source Files generiert ein Compiler dynamisch einen In-Memory Tree. Diese Baumstruktur im Speicher wird dann serialisiert ("flatten"), um ein Device Tree Blob zu erzeugen (DTB). Diese Datei landet auf dem entsprechenden Gerät selbst. Zugleich erfährt der Bootloader, wo er es findet, etwa auf einem Dateisystem oder im nichtflüchtigen Speicher.

Der Bootloader holt das DTB und reicht es entweder unverändert an das Betriebssystem weiter oder nimmt davor kleine Änderungen vor. Er modifiziert etwa die Boot-Kommandozeile. Das Betriebssystem deserialisiert das Binärobjekt wieder und verwendet dafür ein für diesen Zweck geschaffenes Interface. Es erzeugt einen weiteren In-Memory Tree, unter Umständen mit den Änderungen des Bootloaders.

Der gestartete Kernel nutzt diese Baumstruktur, die dann auch als "live-tree" bezeichnet wird. Das Betriebssystem scannt die Struktur, initialisiert und konfiguriert das zugehörige Gerät. Dazu muss es alle Nodes und Eigenschaften des aktiven Nodes kennen, weil die Zugriffsmethoden diese Informationen brauchen. Das ist aber ein Punkt, an dem potenziell Fehler ins Spiel kommen, weil etwa die Type-Informationen verloren gehen.

Wo es hakt

Das eben beschriebene Szenario gilt hauptsächlich für einzelne Maschinen. Kommt etwa ein einzelnes Image für verschiedene, aber sehr ähnliche Plattformen zum Einsatz, müssen dennoch für jede unterstützte Plattform eigene Device Tree Blobs (DTB) her. Auch wenn die Änderungen nur minimal ausfallen. FPGAs oder Expansion Boards brauchen Änderungen am Device Tree zur Laufzeit und nutzen dafür Device Tree Overlays. Die funktionieren subtil anders als die In-Memory Trees.

Damit Device Trees reibungslos funktionieren, müssen am Ende zudem verschiedene Komponenten (Compiler, Bootloader, Betriebssystem) ohne Fehler zusammenarbeiten. Dass dies nicht immer funktioniert, liegt unter anderem am bisher genutzten Format, das noch einige Ungereimtheiten in sich trägt. Werden Eigenschaften zum Beispiel als einzelne Werte oder Sequenz von Werten definiert, gehen ihre Type-Informationen verloren. Fehler im Umgang mit Device Trees fallen aber erst spät auf, nämlich wenn der Rechner versucht, das System zu booten. Dann hängt es sich in der Regel einfach auf, ohne einen Hinweis auf die Ursache zu geben.

Yaml soll helfen

Das Yaml-Format soll hier laut Konsulko Abhilfe schaffen. Es decke nicht nur alle DTS-Eigenschaften ab, sondern sei von Menschen leichter lesbar, einfach zu parsen und nachträglich zu verändern. Yaml ist außerdem weit verbreitet, ausgereift und hat deshalb eine gute Unterstützung in verschiedenen Werkzeugen. Es unterstützt Referenzen, Anker sowie Typen für Eigenschaften und begleitet den kompletten Kompiliervorgang mit nützlichen Fehlermeldungen. Auch lasse sich Yaml wie Object Files als Zwischenformat verwenden, um das finale Linken auf einen späteren Zeitpunkt zu vertagen. Nicht zuletzt sei Yaml zukunftssicher, denn die Daten lassen sich einfach in künftige Formate konvertieren.

Der Plan der Ideengeber scheint zu sein, traditionelle DTS-Dateien nach und nach durch Yaml-Dateien abzulösen. Ob alle Kernel-Entwickler mit dem Vorschlag einverstanden sind, muss sich zeigen. In dem Workshop schien es aber keine grundlegenden Vorbehalte zu geben. Json und XML als Formate lehnten die Entwickler im Workshop ab. XML sei zu sperrig. Json unterstütze Yaml nicht, während Yaml aber Json unterstützt. Offene Fragen werfen aber unter anderem noch das Diffing und die Versionierung auf.



Anzeige
Top-Angebote
  1. 99,00€
  2. (u. a. 49-Zoll-TV für 399,99€, High-Resolution-Kopfhörer für 159,99€, Alpha 5100...
  3. (u. a. Bluetooth-Lautsprecher für 29,99€, Over Ear Kopfhörer für 37,99€, Wireless Earbuds...
  4. (u. a. D24f FHD/144 Hz für 149€ + Versand statt 193,94€ im Vergleich)

Hello_World 07. Nov 2017

Das bezweifle ich. Angenommen, ich will den Inhalt des -Elements im namespace http://bar...

daydreamer42 01. Nov 2017

Beim Start: "usb 3-2: device descriptor read/64, error -71" "usb usb3-port2: unable to...

Thaodan 30. Okt 2017

Als um das Umstrukturierren. Verstehe nicht ganz wieso man das so kompliziert macht also...


Folgen Sie uns
       


Ikea-Symfonisk-Lautsprecher im Test

Wir haben Ikeas erste beiden Symfonisk-Lautsprecher getestet. Sie sind vollständig Sonos-kompatibel und können mit anderen Sonos-Lautsprechern verbunden werden. Klanglich liefern sie gute Ergebnisse und das zu einem niedrigeren Preis als die Modelle von Sonos direkt.

Ikea-Symfonisk-Lautsprecher im Test Video aufrufen
IT-Arbeitsmarkt: Jobgarantie gibt es nie
IT-Arbeitsmarkt
Jobgarantie gibt es nie

Deutsche Unternehmen stellen weniger ein und entlassen mehr. Es ist zwar Jammern auf hohem Niveau, aber Fakt ist: Die Konjunktur lässt nach, was Arbeitsplätze gefährdet. Auch die von IT-Experten, die überall gesucht werden?
Ein Bericht von Peter Ilg

  1. Homeoffice Wenn der Arbeitsplatz so anonym ist wie das Internet selbst
  2. Bundesagentur für Arbeit Informatikjobs bleiben 132 Tage unbesetzt
  3. IT-Headhunter ReactJS- und PHP-Experten verzweifelt gesucht

Indiegames-Rundschau: Epische ASCII-Abenteuer und erlebnishungrige Astronauten
Indiegames-Rundschau
Epische ASCII-Abenteuer und erlebnishungrige Astronauten

In Stone Story RPG erwacht ASCII-Art zum Leben, die Astronauten in Oxygen Not Included erleben tragikomische Slapstick-Abenteuer, dazu kommen Aufbaustrategie plus Action und Sammelkartenspiele: Golem.de stellt neue Indiegames vor.
Von Rainer Sigl

  1. Indiegames-Rundschau Von Bananen und Astronauten
  2. Indiegames-Rundschau Verloren im Sonnensystem und im Mittelalter
  3. Indiegames-Rundschau Drogen, Schwerter, Roboter-Ritter

Google Game Builder ausprobiert: Spieldesign mit Karten statt Quellcode
Google Game Builder ausprobiert
Spieldesign mit Karten statt Quellcode

Bitte Bild wackeln lassen und dann eine Explosion: Solche Befehle als Reaktion auf Ereignisse lassen sich im Game Builder relativ einfach verketten. Der Spieleeditor des Google-Entwicklerteams Area 120 ist nicht nur für Einsteiger gedacht - sondern auch für Profis, etwa für die Erstellung von Prototypen.
Von Peter Steinlechner

  1. Spielebranche Immer weniger wollen Spiele in Deutschland entwickeln
  2. Aus dem Verlag Neue Herausforderungen für Spieler und Entwickler

    •  /