Am zweiten Tag des FOSDEM-Kongresses bekamen Teilnehmer verschiedener Themen zu sehen. Neben einer Einführung in Secure Boot unter Nutzung quelloffener Systeme demonstrierte man eine in MicroPython gehaltene 3D-Engine für den ESP 32.
FPGAs als „Garant der reinen Lehre“.
Der an der Carnegie Mellon-Universität tätige Gabriel Somlo demonstriert einen FPGA samt Softcore (siehe https://fosdem.org/2023/schedule/event/rv_selfhosting_all_the_way_down/), der zum Durchstarten von Fedora Linux befähigt war – ob der äquivalenten Taktrate von nur rund 50 MHz war dies naturgemäß ein Prozess, der einige Zeit in Anspruch nahm.
Als Sinn präsentierte man dabei die „komplette Kontrolle“ über die Compute-Infrastruktur.
(Bildquelle alle: Autor, via FOSDEM oder https://www.instagram.com/tam.hanna/)
Spezifischerweise sprach Somlo von einem probeweise durchgeführten Exploit, der einem Chip-Hersteller ein modifiziertes Schaltbild unterschob – eine Gruppe von Widerständen und ein Kondensator sorgten dann dafür, dass eine bestimmte Gruppe „unprivilegierter „Assembler-Befehle ausreichte, um den Chip in den Privileged Mode zu versetzen. Mit FPGAs sind diese Angriffe schon deshalb schwieriger, weil der Designer des Chips am Ende nicht weiß, „welche“ Zelle des Halbleiters von welchem Teil des Bitstroms des Endanwenders konfiguriert werden wird.
Secure Boot mit quelloffener Software
TPM und Co. wurden von der Open Source-Entwicklerschaft lange Zeit als Inkarnation des Teufels angesehen. Tomasz Żyjewski präsentierte mit Overview of Secure Boot state in the ARM-based SoCs (siehe https://fosdem.org/2023/schedule/event/arm_secure_boot_2/) einen Überblick darüber, wie die – insbesondere im Embedded-Bereich immer wichtiger werdende -Technologie mit quelloffenen oder zumindest mit nicht unter NDA stehenden Werkzeugen implementierbar gemacht werden kann.
Besonders interessant ist dabei die in der Abbildung gezeigte „Support-Matrix“, die über den Unterstützungsgrad der verschiedenen Architekturen informiert.
Lobenswert war beim Vortrag neben der Einführung in die Art des Funktionierens von Secure Boot, dass eine Auflistung der von den verschiedenen Halbleiter-Herstellern implementierten Verfahren samt den in ihnen enthaltenen Schwachstellen erfolgte.
Manche verbreitete Familien weisen „von Haus aus“ nämlich Schwächen auf, die das umgehen von Secure Boot ermöglichen – dass man bei einem der Chips durch „Ausbrennen“ der USB-Datenleitungen Sicherheit wiederherstellen kann, ist ein interessantes Detail am Rande.
Neues Futter für Java-Entwickler.
Die Nutzung von Java am Raspberry Pi ist – auch wenn man es auf den ersten Blick nicht glaubt – durchaus verbreitet. Das für das Anbieten einer „frei lizenzierbare“ JVM bekannte Unternehmen Azul bietet mit der in der Abbildung gezeigten Webseite seit einiger Zeit eine Art „Anlaufstelle“ an, die – analog zu JaxCenter im Desktopbereich – alle Informationen der Community zu bündeln sucht (siehe auch https://fosdem.org/2023/schedule/event/pi/).
Bildquelle: Screenshot von https://pi4j.com/
Neben Unterstützung für Kotlin arbeitet die Community auch daran, die JDK-Verwaltung SDKMan am RasberryPI zum Laufen zu bringen. Lohn der Mühen ist, dass an einer JVM interessierte Nutzer so mit weniger Aufwand aus den zur Verfügung stehenden Implementierungen wählen können.
3D-Engine für ESP32 zeigt Möglichkeiten zur Performance-Steigerung von MicroPython.
Dass Kongress-Teilnehmer seit einiger Zeit aus Platinen bestehende „Name Tags“ bekommen, ist per se nichts Neues. Mat Booth fühlte sich durch seinen ESP 32-Tag allerdings dazu animiert, auf diesem eine 3-D-Engine zum Laufen zu bringen (siehe https://fosdem.org/2023/schedule/event/python_hacking_esp32/).
Während der Erfolg der Engine – wohl auch ob der Nutzung von MicroPython – unterm Strich überschaubar bleibt, gilt, dass Booth im Rahmen der Arbeiten Informationen über die Optimierung der Performance von in der MicroPython-Runtime lebenden Systemen sammeln konnte. Wer die „optimale“ Leistung aus einem MicroPython-System herausholen möchte, sollte beispielsweise darauf achten, „häufige“ Python-Performance-fressen nach Maßgabe der Möglichkeit zu umschiffen.
Maximale Performance lässt sich dadurch erreichen, dass man der MicroPython-Runtime ein natives Modul einschreibt. Hier gibt es allerdings der Wege zwei – während ein einkombiniertes natives Modul für den Entwickler einfach zu verwalten ist, muss der Endanwender die schon vorhandene MicroPython-Firmware durch die modifizierte Variante ersetzen. Dynamisch „nachladbare“ Module machen dem Anwender weniger Arbeit, sind aber im Bereich der Erzeugung wesentlich komplizierter von der Handhabung.
Zu guter Letzt sei darauf hingewiesen, dass der Quellcode der Engine als Ganzes unter der URL https://github.com/mbooth101/tidal3d/ bereitsteht. Wer sich in die diversen mathematischen Transformationen einlesen möchte, bereut einen Besuch nicht.
Für MicroPython-Anfänger interessant ist auch der unter der URL https://fosdem.org/2023/schedule/event/python_micropython_intro/ bereitstehende Vortrag von Wouter van Ooijen – während „erfahrene“ MicroPython-User in ihm absolut nichts Neues lernen, können Quereinsteiger den einen oder anderen wertvollen Hinweis mitnehmen.
RISCV als Werkzeug der Lehre.
Nicht erst seit Adolf Melenzineks Klassiker zur Ingenieur-Pädagogik gilt, dass sich über die beste Art zur Vermittlung technischer Kenntnisse hervorragend diskutieren lässt. An der technischen Universität zu Prag entwickelt man mit QtRVSim aus diesem Grund einen „Emulator“, der auf Basis der RISCV-Architektur die Visualisierung der in Prozessoren bei der Abarbeitung verschiedener Algorithmen auftretenden Prozesse ermöglicht.
Besonders interessant ist, dass das Produkt quelloffen ist – wer sich den Quellcode des Emulators ansehen möchte, kann dies beispielsweise unter der URL https://fosdem.org/2023/schedule/event/rv_qtrvsim/ tun.
Emulatoren als Quell der „Fortbildung“.
Emulatoren werden primär als Werkzeug zur Erhaltung von Spielen vorgesehen, die nicht oder nur schwer portierenbar sind.
Der Vortrag von
Neil Coffey – oberflächlich beschäftigte er sich unter dem Thema Emulator development in Java mit der Nutzung von Java zur Erzeugung von Emulatoren – ist nicht nur aufgrund der Emulator-Entwicklung interessant: Bei der Arbeit mit Emulatoren lernt man auch diverse Methoden der Bildverarbeitung und des performancekritischen Rechnens (siehe https://fosdem.org/2023/schedule/event/oak/).
Neben diesem Vortrag gab es auch eine ganze Gruppe weiterer Präsentationen zum Thema Emulatoren, die – teilweise – ebenso lehrreich – hier schon aus Platzgründen nur erwähnt werden müssen.
Cutting Room Floor – das übrig gebliebene!
Obwohl der zweite Tag der vor dem etwas weniger Events für Embeddedentwickler mitbrachte, galt auch diesmal, dass die gut zwei Dutzend parallel laufenden Tracks jede Menge Platz für „Kollisionen“ lieferten. Hier deshalb abermals eine Liste von besonders interessanten Vorträgen.
Uwe Kleine-König zeigte in Pulse-Width-Modulation (PWM) is easy, isn’t it? (siehe https://fosdem.org/2023/schedule/event/pwm/) verschiedene PWM-Implementierungen.
Christophe Ponsard präsentierte einen Vortrag zum Bull Gamma 3 (siehe https://fosdem.org/2023/schedule/event/gamma/) – ein antiker Computer aus der elektromechanischen Zeit, der – witzigerweise – von der Architektur her modernen Systemen gar nicht so unähnlich ist.
German Gomez präsentierte in I made a GameBoy emulator (siehe https://fosdem.org/2023/schedule/event/gb_arm/) ebenfalls Informationen zur Arbeit mit Emulatoren. Zu guter Letzt zeigt Andre Almeida in Hacking the Linux Kernel to get moar FPS (siehe https://fosdem.org/2023/schedule/event/kernel_fps/) die „Rolle“ der Computerspiele – der Talk geht darauf ein, „wie“ Computerspiele die Performance von Teilen des Linux-Kernels erhöht haben.
Lowlevel-Entwicklung ist nicht unbedingt attraktiv – ein Problem, dass die Linux-Community bemerkt. Zur „Lösung“ hat man sich für die Erzeugung des Kernel Development Learning Pipeline entschieden, der von Joel Savitz in seinem Vortrag ohne Teil vorgestellt wurde (siehe https://fosdem.org/2023/schedule/event/kdlp_kernel_devel_learning_pipeline/).
Ein weiteres „interessantes“ Problem betrifft eine Neuauflage des Jahr-2000-Problems, das mit 32-bittigen Datentypen im Januar 2038 auftreten wird. In Fixing Year 2038 (siehe https://fosdem.org/2023/schedule/event/fixing_2038/) nahm man sich dieses Themas an.
Der KiCad – Entwickler Seth Hillbrand bot mit Donation Page Design (siehe https://fosdem.org/2023/schedule/event/donation_page_design/) derweil einen Vortrag an, der erklärte, wie man eine Spenden-Sammel-Webseite technisch optimal aufbaut.
Blockbasierte Programmiersprachen waren ebenfalls Thema. Einerseits präsentierte man MicroBlocks (siehe https://fosdem.org/2023/schedule/event/microblocks/), andererseits ging man auf Möglichkeiten zu „Erweiterung“ von Snap ein (siehe https://fosdem.org/2023/schedule/event/snap/).
Zuerst erschienen bei Mikrocontroller.net News
Quelle: Read More