Künstliche Intelligenz
Waveguides erklärt: So funktioniert das Display in Smart Glasses und AR-Brillen
Waveguides oder Wellenleiter, wie man sie auf Deutsch nennt, kann man sich als Bahnen vorstellen, die Licht, Radiowellen oder Schall gezielt von einem Ort zum nächsten führen. Die Waveguide-Displays in Smart Glasses und AR-Brillen sind eine spezielle Form von Waveguides, die für die präzise Führung von Licht entwickelt wurden. Daher spricht man in diesem Zusammenhang auch von optischen Waveguides.
Optische Waveguides sind eine weitverbreitete Form von Wellenleitern: In Gestalt von Glasfasernetzen etwa bilden sie die Grundlage für das Internet und die moderne Telekommunikation. Während Glasfasern kabelartig und biegsam sind und moduliertes Infrarotlicht über weite Strecken transportieren, sind die optischen Waveguides in Smart Glasses und AR-Brillen flach und starr und leiten sichtbares Licht über wenige Zentimeter direkt ins Auge.
So funktionieren Waveguide-Displays
Ein Waveguide-Brillendisplay besteht im Wesentlichen aus zwei Bausteinen: der Light Engine, die meist im vorderen Bereich des Brillenbügels nahe dem Scharnier sitzt, und dem Waveguide selbst, der die Linse oder einen Teil dieser bildet.
Die Light Engine hat zwei zentrale Funktionen: Zum einen liefert sie die Lichtquelle und erzeugt ein winziges Bild mithilfe eines Mikrodisplays, wobei je nach Produkt unterschiedliche Technologien wie LCoS, Micro-OLED oder MicroLED zum Einsatz kommen. Zum anderen richtet sie die Lichtstrahlen aus und führt sie im erforderlichen Winkel in den Waveguide ein.
Der Waveguide selbst besteht aus einem Substrat mit möglichst hohem Brechungsindex. Meist handelt es sich um speziell angefertigtes Glas oder Kunststoff. Der Waveguide hat drei wichtige Aufgaben: Er koppelt das Licht der Light Engine ein, führt es entlang der Linse an seinen Bestimmungsort und koppelt es dort wieder aus, sodass es gezielt ins Auge des Brillenträgers gelangt.
Auf dem Bild gut zu sehen: Beidseitige Light Engines und Waveguides.
(Bild: Schott)
Auf seinem Weg durch den Waveguide bleibt das Licht durch ein physikalisches Phänomen namens Totalreflexion im Substrat eingeschlossen und bewegt sich darin wie in einem Spiegelkorridor. Totalreflexion tritt auf, wenn Licht aus einem Medium mit höherem Brechungsindex (Waveguide-Substrat) auf ein Medium mit niedrigerem Brechungsindex (meistens Luft oder eine umgebende Trägerlinse aus Glas oder Kunststoff) trifft. Ob es im Substrat bleibt, hängt vom Einfallswinkel ab: Überschreitet dieser den sogenannten kritischen Winkel, wird das Licht vollständig reflektiert. Je größer der Unterschied zwischen den Brechungsindizes ist, desto größer ist auch der Winkelbereich, in dem das Licht im Substrat gehalten werden kann. Dadurch verbessert sich die Effizienz der Lichtführung, und die Waveguides können dünner und kompakter konstruiert werden.
Beim Auskoppeln des Lichts schließlich wird das ursprünglich winzige Bild der Light Engine vom Waveguide aufgefächert und erzeugt so den Eindruck einer im Raum schwebenden Bildfläche, die kleinere oder größere Teile des Sichtfelds füllt.
Letzten Endes muss ein Waveguide-Display zweierlei leisten: Es führt künstliches Licht gezielt ins Auge und damit ins Sichtfeld, während es zugleich natürliches Licht durch seine Oberfläche passieren lässt, sodass die Umgebung sichtbar bleibt. Aus der Kombination beider Lichtquellen ergeben sich digitale Einblendungen, die die physische Welt überlagern und erweitern.
Das Funktionsprinzip eines Diffractive Waveguide: Einkopplung, Führung und Auskopplung des Lichts bei gleichzeitiger Transparenz zur Außenwelt.
(Bild: Schott)
Die Transparenz ist eine entscheidende Eigenschaft: Sie unterscheidet Waveguide-Displays von klassischen Displays in Mixed-Reality-Headsets wie der Meta Quest 3 oder Apple Vision Pro. Dort sitzt ein LCD- oder OLED-Bildschirm direkt vor den Augen, der den Blick auf die Außenwelt vollständig blockiert. Das reale Umfeld wird von Kameras aufgenommen und als Videobild wiedergegeben: eine Technik, die „Passthrough“ genannt wird und sich grundlegend vom „Seethrough“ optischer Display-Systeme wie Waveguides unterscheidet. Schaltet sich ein Mixed-Reality-Headset aus, sitzt man im Dunkeln. Fällt dagegen ein Waveguide-Display aus, bleibt die Umgebung weiterhin sichtbar. Die Lichtdurchlässigkeit kann jedoch von Waveguide zu Waveguide variieren.
Es gibt unterschiedliche Waveguide-Displays
Es gibt verschiedene Arten von Waveguides, die sich primär darin unterscheiden, wie sie Licht ein- und auskoppeln. Die häufigste Sorte sind Diffractive Waveguides, die das Licht der Light Engine mithilfe von ins Waveguide-Substrat eingeprägten Nanostrukturen beugen („Diffraction“ ist das englische Wort für Beugung). Diffractive Waveguides kommen in vielen bekannten Geräten wie Hololens, Magic Leap, den aktuellen Snap Spectacles sowie Metas Orion-Prototyp zum Einsatz.
Eine weitere, im Aufkommen begriffene Art von Waveguide-Display sind Geometric Reflective Waveguides, deren Entwicklung maßgeblich vom Waveguide-Pionier Lumus vorangetrieben wird. Diese Sorte von Waveguide kommt in der Meta Ray-Ban Display zum Einsatz. Ihren Namen tragen diese Waveguides, weil sie auf klassischen geometrischen Lichtwegen mit Spiegeln und Prismen basieren, im Gegensatz zu Diffractive Waveguides, die das Licht durch Beugung lenken. Statt Nanostrukturen leiten hier Schichten semitransparenter Spiegelchen das Licht ins Auge. „Die Bildqualität ist über die geometrische Anordnung dieser Spiegelchen definiert“, erklärt Rüdiger Sprengard, Head of Augmented Reality beim deutschen Spezialglashersteller und Lumus-Partner Schott, der Waveguides beider Arten fertigt.
In der Meta Ray-Ban Display lässt sich die erste Spiegelreihe noch erkennen, die restlichen bleiben unsichtbar.
(Bild: Lumus / Meta)
Beide Waveguide-Sorten erfordern unterschiedliche Fertigungsprozesse mit jeweils eigenen Herausforderungen, die die Ausbeute beeinträchtigen können. Bei Diffractive Waveguides müssen Strukturen im Nanometerbereich über linsenartige Flächen hinweg mit nahezu null Defekten eingeprägt werden. Geometric Reflective Waveguides wiederum erfordern ein äußerst präzises Beschichten und Anordnen halbspiegelnder Oberflächen auf Glas, wobei schon kleinste Abweichungen Helligkeitsunterschiede oder Farbstörungen verursachen können.
Ein schematischer Vergleich zwischen Diffractive und Geometric Reflective Waveguides.
(Bild: tobe)
Lange war unklar, ob Geometric Reflective Waveguides überhaupt jemals in großen Stückzahlen produziert werden können. Inzwischen hat Schott die Serienfertigung gemeistert. Und laut Metas Technikchef Andrew Bosworth ist es Schott, das die Waveguides für die Meta Ray-Ban Display in Malaysia fertigt.
Licht beugen oder reflektieren: Stärken und Schwächen
Die Vor- und Nachteile der beiden Waveguide-Sorten lassen sich gut an Metas Brillenmodellen ablesen. Vor einem Jahr präsentierte Meta den technisch eindrucksvollen AR-Brillenprototyp Orion, der Diffractive Waveguides nutzt. Diesen Monat folgte die Ankündigung der marktreifen Smart Glasses Meta Ray-Ban Display, die stattdessen auf ein Geometric Reflective Waveguide setzt. Hat Meta binnen eines Jahres die Waveguide-Sorte gewechselt? Keineswegs, denn die Modelle gehören unterschiedlichen Produktkategorien mit jeweils eigenen Anforderungen an.
Orion stellt den Versuch dar, eine vollwertige AR-Brille mit möglichst schlankem Formfaktor zu entwickeln: Sie bietet ein besonders weites Sichtfeld für digitale Einblendungen, kann die Umgebung räumlich erfassen und digitale Objekte darin verankern. Neben Blick- und Handerfassung ist sie potenziell auch in der Lage, 3D-Grafik anstelle bloßer Bildflächen darzustellen. Bis zur technologischen und kommerziellen Reife von Metas AR-Vision dürften allerdings noch ein paar Jahre vergehen.
Das Diffractive Waveguide in Meta Orion ermöglicht ein weites Sichtfeld.
(Bild: Meta)
Mit der Meta Ray-Ban Display verfolgt Meta derweil ein bescheideneres Ziel: Die bislang displaylosen Smart Glasses der Marke Ray-Ban Meta werden um eine kleine Anzeige im rechten Auge erweitert, die verschiedene Funktionen erfüllt. Sie blendet etwa Antworten des KI-Assistenten Meta AI ein, zeigt Nachrichten aus Whatsapp, Messenger und Instagram an, dient als Sucher für Fotos und Videos und unterstützt Nutzer mit visueller Navigation.
Die Meta Ray-Ban Display bietet ein Heads-up-Display (HUD) statt eines weiten AR-Sichtfelds. Die digitale Anzeige erscheint im Raum vor dem Nutzer, nicht auf der Linse, wie auf dem Bild dargestellt.
(Bild: Meta)
Eine der Stärken von Diffractive Waveguides ist, dass sie ein besonders weites Sichtfeld ermöglichen, weshalb Meta bei Orion auf diese Waveguide-Sorte setzte. Bei Diffractive Waveguides spielt der Brechungsindex des Substrats eine zentrale Rolle: Je höher er ist, desto größer kann das digitale Sichtfeld ausfallen. Mit einem Waveguide-Substrat aus Siliziumkarbid statt Glas erreicht Orion ein für diesen Formfaktor ungewöhnlich weites Sichtfeld von 70 Grad. Das entspricht einer rund 16-mal so großen digitalen Projektionsfläche im Vergleich zur Ray-Ban Meta Display. Gleichzeitig reduziert Siliziumkarbid eine der größten Schwächen von Diffractive Waveguides: die wellenlängenabhängige Lichtbeugung, die häufig Farbverzerrungen und Regenbogeneffekte verursacht. Der Haken: Siliziumkarbid ist in der Herstellung so aufwendig, dass eine Kommerzialisierung derzeit nicht infrage kommt.
Da für die Ray-Ban Meta Display ohnehin kein großes Sichtfeld vorgesehen ist, fiel Metas Wahl auf ein Geometric Reflective Waveguide, das günstiger herzustellen ist und in anderen Leistungsbereichen Vorteile bietet. Diese Art von Waveguide nutzt semitransparente Spiegel, die das Licht nahezu verlustfrei und unabhängig von der Wellenlänge reflektieren. Dadurch erreicht das Waveguide-Display eine deutlich höhere Bildqualität, Helligkeit und Effizienz als Diffractive Waveguides und ermöglicht so ein Smart-Glasses-Display, das einige Stunden nutzbar ist und auch im Freien bei hellem Tageslicht sichtbar bleibt.
Das Geometric Reflective Waveguide der Meta Ray-Ban Display eignet sich für den Einsatz im Freien.
(Bild: Meta)
Ein weiterer Vorteil des Geometric Reflective Waveguide ist, dass das Display für Außenstehende kaum sichtbar ist. Diffractive Waveguides erzeugen dagegen oft störende Reflexionen nach außen, die den Blickkontakt beeinträchtigen können. „Das Problem ist, dass diese Waveguides nicht richtungsselektiv sind. Die wollen genauso viel Bild zur Außenwelt schicken wie ins Auge. Die Spiegelchen [der Geometric Reflective Waveguides] hingegen haben ganz wenig Reflexionen zur Welt hin“, sagt Sprengard und bezeichnet diesen Umstand als ein „Geschenk der Natur“.
Für Sprengard ist noch offen, welche Art von Waveguide sich am Ende durchsetzen wird. Fest steht jedoch, dass sich beide Technologien weiterentwickeln werden. Substrate mit höherem Brechungsindex und neue, präzisere Prägungstechniken aus der Halbleiterfertigung könnten die Schwächen von Diffractive Waveguides verringern, während Geometric Reflective Waveguides beim Sichtfeld aufholen werden, da dieses hier weniger stark vom Brechungsindex abhängt. Lumus hat bereits angekündigt, im nächsten Jahr ein neues Waveguide-Design vorzustellen, dessen Sichtfeld mit Orion konkurrieren könnte. Abseits von Waveguides wird zugleich an leistungsfähigeren Light Engines gearbeitet, dem zweiten Baustein von Waveguide-Brillendisplays.
heise online XR-Briefing abonnieren
Jeden zweiten Montag, liefern wir Ihnen die wichtigsten Entwicklungen der XR-Branche. Damit Sie alles im Blick behalten.
E-Mail-Adresse
Ausführliche Informationen zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten erhalten Sie in unserer Datenschutzerklärung.
Neben Diffractive und Geometric Reflective Waveguides gibt es weitere Sorten von Waveguide-Displays. Sollten Smart Glasses wie die Ray-Ban Meta Display erfolgreich sein, könnte das die Forschung und Entwicklung beschleunigen und die Entstehung von neuen Arten und Unterarten vorantreiben. Zwar existieren auch ganze andere Display-Ansätze wie Birdbath-Optik, doch Waveguides gelten derzeit als die vielversprechendste Technologie, um alltagstaugliche Smart Glasses und AR-Brillen Wirklichkeit werden zu lassen.
Dass die Technologie nach vielen Jahren endlich marktreif wird und Verbraucher erreicht, sieht Sprengard als wichtigen Meilenstein: „Das ist der Anfang von etwas, das die Art und Weise, wie wir Unterhaltungselektronik im Alltag benutzen, verändern wird.“
(tobe)
Künstliche Intelligenz
Spaßprojekt: Fruit-Jam-Mini-Rechner im Kreditkartenformat als NES-Konsole
Adafruit hat mit dem Fruit Jam – Mini RP2350 Computer einen charmanten Winzling vorgestellt, der Retro-Feeling mit moderner Technik kombiniert. Auf einer Platine im Kreditkartenformat (ISO/IEC 7810 ID-1) stecken erstaunlich viele Features: Ein RP2350B-Dual-Core Cortex-M33-Mikrocontroller (150 MHz), 16 MB Flash und 8 MB PSRAM, USB-C, Micro-SD-Slot, HDMI-kompatibler DVI-Ausgang, Stereo- und Mono-Audio, ein 2-Port-USB-Hub für Maus, Tastatur oder Gamepads, einen extra ESP32-C6 für WLAN sowie diverse GPIOs und NeoPixel für optische Spielereien.
(Bild: John Park)
Das Kit (39,95 US-Dollar) kommt inklusive Top-Plate, Mini-Speaker und Bumperfüßen. Angeschlossen an Monitor, Tastatur und Maus wird der Fruit Jam unter anderem zu einem kleinen Retro-Computer für CircuitPython, Arduino oder PicoSDK-Projekte – und ja: „It can run Doom“.
Retro-Feeling mit NES-Emulation
(Bild: John Park)
Gemeinsam mit der Community hat Adafruit eine Anleitung veröffentlicht, wie sich der Fruit Jam als NES-Konsole nutzen lässt. Möglich macht es der pico-infonesPlus-Emulator von Frank Hoedemakers, ursprünglich aus InfoNES hervorgegangen und für den RP2040 adaptiert. Neben der Bildausgabe via HDMI unterstützt der Emulator Onboard-Sound, DAC-Kopfhörerausgang, einen VU-Meter-Effekt über die verbauten Neopixel und sogar Zwei-Spieler-Modi – per USB-Controller plus Wii-/NES-/SNES-Classic-Controller über I²C. Für Besitzer eines passenden Gamepads ist damit der Aufbau einer handlichen Wohnzimmer-Konsole fast plug-and-play.
Zur Installation genügt es, die vorbereitete .UF2-Firmware auf den Fruit Jam zu flashen und ROMs (Homebrew ist die legale Wahl) auf eine SD-Karte zu kopieren. So lebt das Konsolenfeeling der 80er auf moderner Bastlerhardware neu auf. Der Fruit Jam ist nicht nur ein günstiger, vielseitiger Bastelrechner, sondern mit NES-Emulator auch ein echtes Retro-Gaming-Gadget.
Noch mehr Retro: Atari-Emulator im Make Magazin
Wer nicht nur Nintendo-Klassiker zocken, sondern auch in die Welt der Atari-Homecomputer eintauchen will, findet im aktuellen Make Magazin einen passenden Bauvorschlag. Dort zeigt Ulrich Schmitz, wie man auf Basis eines ESP32 einen Atari-800-Emulator samt Gehäuse und originalgetreuen Joysticks realisiert. Der Artikel erklärt die Emulation des legendären 6502-Prozessors und spezieller Atari-Chips wie ANTIC oder POKEY, gibt Tipps für Controller-Integration – und weckt garantiert Erinnerungen an Homecomputer-Zeiten.
(caw)
Künstliche Intelligenz
Linux: Torvalds wirft Bcachefs-Dateisystem aus dem Kernel
Linus Torvalds hat den Support für Bcachefs aus dem Hauptentwicklungszweig seines Kernels entfernt; das in neun oder zehn Wochen erwartete Linux 6.18 wird mit dem Dateisystem formatierte Datenträger daher von Haus aus nicht mehr einbinden können. Der für Linux-Verhältnisse ungewöhnliche Rauswurf erfolgte rund 24 Stunden nach der Freigabe von Linux 6.17 zum Wochenstart. Diese Version hatte bereits keine Bcachefs-Neuerungen mehr gebracht, denn der Linux-Erfinder hatte den Stand dort vor zwei Monaten als „extern gewartet“ gekennzeichnet und damit eingefroren – nach mehrfachem Zank mit Kent Overstreet, dem Erfinder und Hauptentwickler von Bcachefs.
Bcachefs lässt sich jetzt via DKMS einrichten
Der Rauswurf sollte nur wenige Linux-Anwender betreffen, denn der Bcachefs-Code in Linux ist nie dem experimentellen Stadium entwachsen. Da einzelne Distributionen das Dateisystem aber als Option für Tester anboten, hat es durchaus Nutzer. Darunter sind auch einige sehr laute Fürsprecher. Kein Wunder, lockt doch Bcachefs mit einer attraktiven Kombination einiger von anderen Dateisystemen bekannten Features.
Für diese und zukünftige Anwender hat Overstreet einige Umbaumaßnahmen am Code vorgenommen, die er fortan extern entwickelt, wie er es vor der Aufnahme bei Linux 6.7 vor rund eindreiviertel Jahren getan hat. Durch die Umbauten lässt sich Bcachefs jetzt per DKMS (Dynamic Kernel Module Support) bei verschiedensten Kerneln ab Linux 6.16 nachrüsten – und wird bei Kernel-Updates idealerweise auch automatisch passend zum neuen Kernel übersetzt. Das Ganze kennen viele Anwender etwa von Distributionen wie Debian oder Ubuntu, die das ältere, proprietäre Kernel-Modul der Nvidia-Grafiktreiber via DKMS handhaben.
Torvalds will mit dem Rauswurf Verwirrung vermeiden, wo Bcachefs jetzt via DKMS installierbar ist.
(Bild: Screenshot Thorsten Leemhuis / heise medien)
Auch zur Virtualisierung mit VMware oder VirtualBox oder zum Support des Dateisystem OpenZFS setzen viele Distributionen auf das unabhängig vom Kernel gewartete DKMS. Das funktioniert in vielen Fällen recht zuverlässig, fällt gelegentlich aber beim Kompilieren auf die Nase. Das liegt zumeist nicht an DKMS, sondern am eher monolithischen Design von Linux.
Bei dem sind Treiber, Dateisystemcode und nichts Separates, sondern formen zusammen den „Kernel“ – auch dann, wenn man beim Bau des Kernels festlegt, einige Teile als nur bei Bedarf nachgeladenes Modul auszulagern. Bei gängigen Linux-Distributionen passen Kernel-Module daher nur zu dem Kernel-Image, für das sie kompiliert wurden. Diese sind somit eben nicht ab- oder aufwärtskompatibel, wie man es von stabilen Plug-in- oder Add-on-Schnittstellen bei Browsern oder Treibern von Windows kennt.
Gefahr des „sich selbst Aussperrens“ durch instabile Schnittstellen
Das liegt auch an einem anderen Aspekt: Um den Kernel schnell und schlank zu halten, verändern Torvalds und seine Helfer bei Bedarf die Kommunikationswege zwischen den verschiedenen Bestandteilen von Linux; dabei nehmen sie keine Rücksicht auf externe gewarteten Kernel-Code, der sich über diese Wege einklinkt. Entwickler von extern entwickeltem Kernel-Code wie fortan Bcachefs müssen diesen daher hin und wieder an die Belange neuer Linux-Versionen anpassen; das kann alle paar Wochen oder nur alle paar Jahre nötig sein, je nachdem, welche Kernel-Funktionen der externe Code verwendet und wie häufig sich diese Kernel-seitig ändern.
Diese Änderungen am externen Code müssen es dann aber auch zu den Nutzern schaffen, bevor diese auf Kernel-Version mit veränderten Schnittstellen wechseln. Hakt es daran, schlägt beim Anwender das automatische Kompilieren des Moduls via DKMS fehl.
Bei extern gewarteten Modulen für Grafikchips führt das zu Problemen, die zumindest Kenner oft mit einigen Handgriffen lösen können. Bei Modulen für Dateisysteme kann es schwieriger sein, denn wenn dem startenden Kernel ein Modul für das Root-Dateisystem fehlt, kann man das System darüber nicht mehr starten und daher kein passendes neues Modul einrichten. Um sich aus so einer Situation ohne Live-Linux heraus zu manövrieren, belassen einige Distributionen den jeweils letzten als funktionierend bekannten Kernel bei Updates als Boot-Option zurück. Derlei braucht man im dümmsten Fall auch, wenn neuer Modulcode nicht funktioniert und man das alte Modul schon gelöscht hat.
Distributions-spezifische Anpassungen erschweren die Auslieferung
Der DKMS-Weg von Bcachefs hat einen weiteren Nachteil, wie Overstreets Mail zur breiten Verfügbarkeit des DKMS-Ansatzes zeigt: Statt Bcachefs mehr oder weniger frei Haus über den Kernel an Distributionen zu verteilen, sind nun Anpassungen für Eigenarten der verschiedensten Distributionen nötig. Zur möglichst einfachen Handhabung durch die Nutzer braucht es ferner idealerweise auch Distributions-spezifische Pakete, die jemand konstant pflegt und testet.
Beim Support für Arch Linux, Debian und Ubuntu scheint die Lage demnach schon recht gut zu sein. Bei Fedora ist es im Werden, während bei openSUSE noch allerlei Fragezeichen im Raum stehen; dessen Entwickler hatten kürzlich den Bcachefs-Support bei Tumbleweed-Kernel beim Wechsel auf 6.17 deaktivierten und Overstreets Verhalten dabei kritisierten.
DKMS ist der Grund für den schnellen Rauswurf
Die Bcachefs-Unterstützung zur Handhabung via DKMS nennt Torvalds jetzt als Grund für die Entfernung des Dateisystems – die Kenner mittelfristig erwartet hatten, aber letztlich jetzt viel flotter kam, als es bei der Stilllegung von Bcachefs vor zwei Monaten schien. Der waren mehrere Streitereien vorangegangen, vor allem zwischen Overstreet und Torvalds. Gleich zweimal hatte es zwischen den beiden lautstark gekracht, weil der Bcachefs-Erfinder Code mit neuen Features zur Aufnahme während der längeren Stabilisierungsphase an den Linux-Erfinder schickte, anstatt während der kurzen Hauptentwicklungsphase (dem „Merge Window“), die dafür vorgesehen ist. Overstreet war aber auch mehrfach mit anderen Entwicklern zusammen gerasselt. Unter anderem, weil er hinterrücks den von ihnen betreuten Code geändert hatte.
Der streitbare Kalifornier hat Bcachefs seit über zehn Jahren weitgehend im Alleingang entwickelt – auch, weil sich mehrere mit der Zeit dazu gestoßene Mitstreiter über kurz oder lang mit ihm überworfen haben. Bis zu einem gewissen Grad ist das nur menschlich, schließlich passiert derlei auch beim Hasenzüchter- und Sportvereinen; bei Häufigkeit und Tonfall der Streitereien hebt sich die Bcachefs-Entwicklung aber negativ von anderen Software-Projekten und auch dem Linux-Kernel ab.
c’t Open Source Spotlight abonnieren
Innovative Software, spannende Projekte: Erweitern Sie Ihre Möglichkeiten und werden Sie Teil der Open Source Community.
E-Mail-Adresse
Ausführliche Informationen zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten erhalten Sie in unserer Datenschutzerklärung.
Dateisystem-Entwicklung ist hart
Derlei Drama und der Zank mit zentralen Kernel-Entwicklern dürften Schwergewichte aus dem Linux-Bereich verschrecken, die jährlich schätzungsweise mehrere Millionen von US-Dollar in Hardware und Mitarbeiter investieren, um die direkt in Linux enthaltenen Dateisysteme zu testen und zu verbessern – etwa Google (Ext4), Meta und Suse (Btrfs) oder Oracle und Red Hat (XFS).
Für Overstreet und seine Unterstützer wird es schwer, da mitzuhalten, denn Dateisysteme sind komplex und Linux-Nutzer machen die kuriosesten Dinge mit ihnen – daher sind meist viele Jahre Feldtest und mühsames Feintuning nötig, bis ein universelles Dateisystem wie Bcachefs wirklich stabil und in vielen der gängigen Einsatzgebiete performant arbeitet.
Hier hat Bcachefs noch viel Arbeit vor sich, auch wenn sein Hauptentwickler den extern gewarteten Dateisystemcode kürzlich als „stabil“ deklariert hat. Zumindest, wenn es ähnlich wie bei der Entwicklung von Btrfs, Ext4, Reiserfs oder XFS läuft: Auch dort war ab einem vergleichbaren Punkt noch jahrelange Arbeit und damit letztlich auch viel Geld nötig, um die Erwartungen der breiten Anwenderschar an Robustheit und Performance zu befriedigen.
(ktn)
Künstliche Intelligenz
Aus Softwarefehlern lernen – Teil 2: Warum explodierte Ariane 5 nach dem Start?
Zahlen wirken in Programmen so selbstverständlich, dass viele Entwicklerinnen und Entwickler sie intuitiv wie in der Mathematik behandeln: Addition, Subtraktion, Multiplikation – was soll da schon schiefgehen? In der Praxis lauern hier jedoch zahlreiche Fallstricke. Speicherbegrenzungen, Rundungsfehler, Konvertierungen zwischen Datentypen und die unterschiedliche Behandlung von Ganzzahlen und Gleitkommazahlen führen immer wieder zu katastrophalen Fehlern.
Golo Roden ist Gründer und CTO von the native web GmbH. Er beschäftigt sich mit der Konzeption und Entwicklung von Web- und Cloud-Anwendungen sowie -APIs, mit einem Schwerpunkt auf Event-getriebenen und Service-basierten verteilten Architekturen. Sein Leitsatz lautet, dass Softwareentwicklung kein Selbstzweck ist, sondern immer einer zugrundeliegenden Fachlichkeit folgen muss.
Die Teile der Serie „Aus Softwarefehlern lernen“:
Muster 2: Überlauf, Arithmetik und Präzision: Wenn Zahlen kippen
Ein ikonisches Beispiel dafür ist der Fehlschlag des ersten Ariane-5-Starts im Jahr 1996. Nur 37 Sekunden nach dem Start verließ die Rakete ihre Flugbahn, begann sich unkontrolliert zu drehen und zerstörte sich schließlich selbst. Die Ursache war nicht ein Materialproblem oder ein Defekt an der Rakete, sondern ein Softwarefehler in der Trägheitsnavigationssoftware.
Konkret versuchte das System, einen 64-Bit-Gleitkommawert in einen 16-Bit-Integer zu konvertieren. Der Wert war für die Ariane 5 jedoch zu groß und es kam zu einem Überlauf, der dann eine Ausnahme auslöste. Die Folge: Das gesamte Leitsystem schaltete sich ab. Da die Rakete zwei identische Systeme hatte, die synchron liefen, wiederholte sich der Fehler sofort auf dem Backup – die Redundanz konnte also nicht helfen.
Das wirft die Frage auf: Warum passiert so etwas in einem milliardenschweren Raumfahrtprogramm? Die Antwort ist tatsächlich lehrreich: Die Software der Ariane 5 basierte in Teilen auf dem Vorgängermodell Ariane 4. Dort waren die Wertebereiche kleiner, und ein 16-Bit-Integer war völlig ausreichend. Bei der Ariane 5 lagen die Beschleunigungen jedoch in einem anderen Bereich. Die alten Annahmen passten nicht mehr, aber die Entwickler haben die entsprechenden Codepfade nie überprüft – schließlich hatte die Software ja bereits jahrelang zuverlässig funktioniert.
Dieses Muster findet sich auch heute immer wieder in unzähligen Projekten:
- Entwicklerinnen und Entwickler übernehmen alte Codepfade, ohne ihre Gültigkeit für neue Einsatzbedingungen zu prüfen.
- Implizite Typumwandlungen oder fehlende Bereichsprüfungen führen im Grenzfall zu Überläufen.
- Fehlerbehandlung fehlt oder ist zu global – wie im Fall der Ariane, bei der eine einzelne Ausnahme zum Totalausfall führte.
In der Praxis begegnen Developer diesem Risiko immer wieder – auch in völlig alltäglichen Projekten. Typische Symptome sind:
- Plötzliche Sprünge oder negative Werte in Zählern,
NaN
-Ergebnisse oderInf
-Werte bei Gleitkommarechnungen und- stille Rundungsfehler, die sich erst bei großen Zahlen oder nach langer Laufzeit bemerkbar machen.
Das Schlimmste daran ist, dass Gegenmaßnahmen durchaus bekannt sind, häufig aber aus Zeit- und Kostengründen vernachlässigt werden:
- Explizite Bereichsanalysen: Vor allem bei Übernahmen prüfen, ob alle Wertebereiche noch passen.
- Saturating Arithmetic oder Clamping: Wenn ein Wert den zulässigen Bereich überschreitet, diesen auf das Maximum setzen oder den Vorgang abbrechen, statt unbemerkt überlaufen zu lassen.
- „Fail fast“ bei kritischen Konvertierungen: Lieber ein gezielter Fehler, der sich früh zeigt, als eine stille Datenkorruption.
- Telemetrie und Monitoring: Wertebereiche im Betrieb überwachen und auffällige Ausreißer melden.
Interessant dabei ist auch die psychologische Komponente: Viele Teams verlassen sich auf ihre Testabdeckung und übersehen, dass Testdaten oft zu nett sind. Grenzwerte, Extrembereiche und ungewöhnliche Kombinationen fehlen häufig. Erst Property-based Testing, Fuzzing oder gezielte Grenzwerttests decken die kritischen Fälle auf.
Der Ariane-5-Vorfall hat gezeigt, dass selbst in hochkritischen Projekten mit gefühlt unendlichem Budget ein scheinbar banales Zahlenproblem zu einer Milliardenkatastrophe führen kann. Für den Alltag in der Unternehmens-IT heißt das: Jede Zahl ist ein Modell, und Modelle haben Grenzen. Wer diese Grenzen kennt und absichert, verhindert nicht nur Abstürze, sondern spart sich auch stundenlange Fehlersuche bei subtilen Rundungsfehlern.
Aus Softwarefehlern lernen – die Serie
Diese Artikelserie stellt neun typische Fehlerklassen vor, die in der Praxis immer wieder auftauchen – unabhängig von Branche oder Technologie. In jeder Kategorie wird die Serie ein konkretes Beispiel vorstellen, dessen Ursachen analysieren und daraus ableiten, was Softwareentwicklerinnen und Softwareentwickler langfristig lernen können.
Im nächsten Teil lesen Sie: Concurrency und Scheduling: Wenn sich Prozesse gegenseitig blockieren.
(who)
-
UX/UI & Webdesignvor 1 Monat
Der ultimative Guide für eine unvergessliche Customer Experience
-
UX/UI & Webdesignvor 1 Monat
Adobe Firefly Boards › PAGE online
-
Social Mediavor 2 Monaten
Relatable, relevant, viral? Wer heute auf Social Media zum Vorbild wird – und warum das für Marken (k)eine gute Nachricht ist
-
Entwicklung & Codevor 1 Monat
Posit stellt Positron vor: Neue IDE für Data Science mit Python und R
-
Entwicklung & Codevor 1 Monat
EventSourcingDB 1.1 bietet flexiblere Konsistenzsteuerung und signierte Events
-
UX/UI & Webdesignvor 2 Wochen
Fake It Untlil You Make It? Trifft diese Kampagne den Nerv der Zeit? › PAGE online
-
Digital Business & Startupsvor 3 Monaten
10.000 Euro Tickets? Kann man machen – aber nur mit diesem Trick
-
Apps & Mobile Entwicklungvor 2 Monaten
Firefox-Update 141.0: KI-gestützte Tab‑Gruppen und Einheitenumrechner kommen