Abo
  • Services:
Anzeige
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)

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

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)

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.

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.

Anzeige

Status Quo ist kompliziert

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.


eye home zur Startseite
Hello_World 07. Nov 2017

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

Themenstart

daydreamer42 01. Nov 2017

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

Themenstart

Thaodan 30. Okt 2017

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

Themenstart

Kommentieren



Anzeige

Stellenmarkt
  1. Siemens Postal, Parcel & Airport Logistics GmbH, Düsseldorf
  2. NORD-MICRO GmbH & Co. OHG, Frankfurt am Main
  3. Robert Bosch GmbH, Abstatt
  4. Robert Bosch GmbH, Leonberg


Anzeige
Spiele-Angebote
  1. (-50%) 4,99€
  2. (-60%) 19,99€
  3. (-57%) 12,99€

Folgen Sie uns
       


  1. Smartphones

    Huawei installiert ungefragt Zusatz-App

  2. Android 8.0

    Oreo-Update für Oneplus Three und 3T ist da

  3. Musikstreaming

    Amazon Music für Android unterstützt Google Cast

  4. Staingate

    Austauschprogramm für fleckige Macbooks wird verlängert

  5. Digitale Infrastruktur

    Ralph Dommermuth kritisiert deutsche Netzpolitik

  6. Elektroauto

    VW will weitere Milliarden in Elektromobilität investieren

  7. Elektroauto

    Walmart will den Tesla-Truck

  8. Die Woche im Video

    Ausgefuchst, abgezockt und abgefahren

  9. Siri-Lautsprecher

    Apple versemmelt den Homepod-Start

  10. Open Routing

    Facebook gibt interne Plattform für Backbone-Routing frei



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Windows 10 Version 1709 im Kurztest: Ein bisschen Kontaktpflege
Windows 10 Version 1709 im Kurztest
Ein bisschen Kontaktpflege
  1. Windows 10 Microsoft stellt Sicherheitsrichtlinien für Windows-PCs auf
  2. Fall Creators Update Microsoft will neues Windows 10 schneller verteilen
  3. Windows 10 Microsoft verteilt Fall Creators Update

Orbital Sciences: Vom Aufstieg und Niedergang eines Raketenbauers
Orbital Sciences
Vom Aufstieg und Niedergang eines Raketenbauers
  1. Astronomie Erster interstellarer Komet entdeckt
  2. Jaxa Japanische Forscher finden riesige Höhle im Mond
  3. Nasa und Roskosmos Gemeinsam stolpern sie zum Mond

Ideenzug: Der Nahverkehr soll cool werden
Ideenzug
Der Nahverkehr soll cool werden
  1. 3D-Printing Neues Druckverfahren sorgt für bruchfesteren Stahl
  2. Autonomes Fahren Bahn startet selbstfahrende Buslinie in Bayern
  3. High Speed Rail Chinas Züge fahren bald wieder mit 350 km/h

  1. Re: Unpassender Vergleich

    Theoretiker | 13:26

  2. Re: heißt die app

    Theoretiker | 13:24

  3. Re: Wir wäre es denn mit einer Abfrage?

    tribal-sunrise | 13:23

  4. Re: Kann man sich da auch für einzelne Personen...

    Theoretiker | 13:23

  5. Re: Was passiert mit nicht angenommenen Paketen?

    Theoretiker | 13:22


  1. 11:55

  2. 11:21

  3. 10:43

  4. 17:14

  5. 13:36

  6. 12:22

  7. 10:48

  8. 09:02


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel