Ladybird

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Ladybird


Screenshot von Ladybird unter KDE Plasma, Wikipedia anzeigend
Basisdaten

Hauptentwickler SerenityOS-Projekt
Erscheinungsjahr 2022
Betriebssystem Linux, macOS, Haiku[1]
Programmiersprache C++
Kategorie Webbrowser
Lizenz 2-Klausel-BSD-Lizenz
https://www.ladybird.dev/

Ladybird (englisch: Marienkäfer) ist ein freier Webbrowser für Linux und macOS des SerenityOS-Projekts. Er nutzt dieselben Programmbibliotheken wie der im Betriebssystem SerenityOS integrierte Webbrowser. Ladybird wird seit Juli 2022 von Andreas Kling und der Community entwickelt.[2] Stand Juni 2023 ist Ladybird noch nicht vollständig mit neuesten Webstandards kompatibel; allerdings werden viele Webseiten ausreichend gut dargestellt.

Von den üblichen Browsern hob sich Ladybird ursprünglich durch fehlendes kommerzielles Interesse eines oder mehrerer Unternehmen ab,[3] allerdings hat Ladybird seit 2023 kommerzielle Sponsoren.[4] Weiterhin sieht das Projekt einen Vorteil in der weniger komplexen Codebase, die zu weniger Sicherheitslücken führen soll.

Ladybirds JavaScript-Engine LibJS ist seit 2022 eine durch das Ecma International Technical Committee 39 (verantwortlich für die ECMAScript-Standardisierung) anerkannte Engine für Implementierungen neuer JavaScript-Standards. Seit November 2022 ist Linus Groh, inoffizieller LibJS-Leiter, eingeladener Experte (invited expert) im Technical Committee 39[5].

Geschichte[Bearbeiten | Quelltext bearbeiten]

Die Browser-Engine von Ladybird, die hauptsächlich aus einer Kombination der Bibliotheken LibWeb (HTML und Rendering) und LibJS (JavaScript) besteht, wurde ursprünglich Juni 2019 gestartet. Damals gab es nur einen einfachen HTML-Renderer, der für Rich-Text-Anzeige in regulären GUI-Programmen von SerenityOS gedacht war.[6] Ab Oktober desselben Jahres entstand dann ein eigenständiger SerenityOS-Browser. Wie auch im sonstigen Projekt zu dieser Zeit war Andreas Kling der Hauptentwickler aller dieser Komponenten.

Im März 2020 begann Kling mit der Entwicklung einer JavaScript-Engine und benannte die HTML-Bibliothek in LibWeb um.[7] Kurze Zeit später wurde die Browser-Engine in ihren eigenen Prozess ausgekoppelt, wie es bei modernen Browsern üblich ist, allerdings wurde der In-Prozess-Modus noch einige Jahre beibehalten.

In den nächsten zwei Jahren wurde die Engine von Kling und einer wachsenden Anzahl Beitragenden stetig verbessert, bis der Browser im März 2022 den Acid3-Test und seine Vorgänger bestand.[8][9] Dank der seit Juni 2021 durchgeführten JavaScript-Tests (test262) ist bekannt, dass LibJS seit einiger Zeit ähnlich JavaScript-kompatibel wie große Engines ist, z. B. V8 oder SpiderMonkey.[10][11]

Im Frühjahr 2022 portierte SerenityOS-Entwickler Dex die Browser-Engine auf Linux und macOS,[12] wobei zunächst ein einfaches Tool namens headless-browser ohne GUI bereitgestellt wurde, welches in der Lage ist, Screenshots von Webseiten zu erstellen. An der Ermöglichung dieser Arbeit waren viele Entwickler beteiligt, da über die vorangehenden Jahre zunächst die sonstigen SerenityOS-Bibliotheken auf andere Betriebssysteme portiert werden mussten. Ausgehend davon begann Kling im Juli 2022 mit der Entwicklung eines Qt-Frontends für die Engine, welches er Ladybird nannte. Die Möglichkeit, die neue Engine auch auf üblichen Betriebssystemen verwenden zu können, sorgte für einige Resonanz[13][14][15], und Ladybird wurde in Kürze ein integraler Bestandteil des SerenityOS-Projekts.

Im Juni 2023 kündigte Andreas Kling an, dass er ein Ladybird-Sponsorship über 100.000 US-Dollar von Shopify erhalten habe.[4][16] Dies war das erste öffentlich bekannte finanzielle Investment eines Unternehmens in Ladybird. Zuvor wurde Ladybird von Freiwilligen entwickelt, die nur vereinzelt Spenden von Einzelpersonen für ihre Arbeit erhielten.

Im November 2023 begann Andreas Kling mit der Entwicklung eines Just-In-Time-Compilers, der die Ausführung von JavaScript auf Webseiten weiter beschleunigen sollte. Aktuell (Stand Ende 2023) ist der JIT-Modus nur für die x64-Architektur implementiert.

Technik[Bearbeiten | Quelltext bearbeiten]

Die Browser-Engine von Ladybird besteht aus den Bibliotheken LibWeb (HTML, CSS, Rendering), LibJS (JavaScript-Engine) und LibWasm (WebAssembly-Engine) sowie deren Basisbibliotheken (LibCore, AK und einige weitere).[17] Besonders an dieser Softwarebasis ist, dass sie von keiner anderen Browser-Engine abstammt, wie es sonst bei allen großen Browser-Engines der Fall ist, und kein vor 2018 verfasster Quellcode enthalten ist. Obwohl die Bibliotheken auf die Kompilierung für und in SerenityOS ausgelegt sind, ermöglicht das projekteigene Portierungssystem Lagom (zur Herkunft des Begriffs siehe Lagom) mittlerweile die Kompilierung in vielen Unix-ähnlichen Systemen, insbesondere Linux und macOS. Langfristig ist es das Ziel, unter möglichst vielen von den Entwicklern gebrauchten Betriebssystemen einsatzfähig zu sein.[3]

Das Ladybird-Frontend ist der Hauptunterschied zum SerenityOS-Browser selbst und besteht aus einer Qt-6-Benutzeroberfläche.[18] Eine minimale Interfaceinfrastruktur übernimmt die Funktion der bei Browser verfügbaren SerenityOS-Services. Das betrifft insbesondere Netzwerk- und Dateimanagement.

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. My progress at porting Ladybird, the SerenityOS Browser
  2. Browser hacking: Let's make a Linux GUI for the SerenityOS browser engine. In: Andreas Kling. 3. Juli 2022, abgerufen am 15. September 2022.
  3. a b heise online: Neuer Webbrowser Ladybird: Was Entwickler Andreas Kling mit seinem Team plant. Abgerufen am 23. September 2022.
  4. a b heise online: Gemeinsam gegen Googles Chromium: Ladybird gewinnt Shopify als Sponsor. 29. Juni 2023, abgerufen am 30. Juni 2023.
  5. ECMA, TC39 Meeting Notes (30 November, 2022). Ecma TC39, 6. Januar 2023, abgerufen am 6. Januar 2023.
  6. Andreas Kling - Ladybird: Building a new browser from scratch. Zeitpunkt 4:19. Abgerufen am 30. Juni 2023 (deutsch).
  7. LibWeb: Rename directory LibHTML => LibWeb · SerenityOS/serenity@830a57c. Abgerufen am 30. Juni 2023 (englisch).
  8. Bryan Lunduke: SerenityOS Web Browser passes Acid3 Test. In: The Lunduke Journal of Technology. 30. März 2022, abgerufen am 30. März 2022.
  9. SerenityOS: A remarkable achievement for a small project. Abgerufen am 31. März 2022 (englisch).
  10. LibJS test262 results. Abgerufen am 30. Juni 2023.
  11. test262.fyi. Abgerufen am 30. Juni 2023.
  12. LibWeb+LibWebView+Lagom: Create a headless-browser utility and bring it to Lagom by Dexesttp · Pull Request #13473 · SerenityOS/serenity. Abgerufen am 30. Juni 2023 (englisch).
  13. Jonas Volkert: Ladybird: die neue Browser-Hoffnung. In: iX. Band 2022, Nr. 11, 19. Oktober 2022, ISSN 0935-9680, S. 30–31 (heise.de [abgerufen am 6. Januar 2023]).
  14. Tim Schürmann: Ladybird wird zum Cross-Plattform-Browser ausgebaut. In: LinuxCommunity. 13. September 2022, abgerufen am 6. Januar 2023 (deutsch).
  15. Ladybird - SerenityOS Browser Engine. Abgerufen am 6. Januar 2023 (Schweizer Hochdeutsch).
  16. Andreas Kling: Welcoming Shopify as a Ladybird sponsor. In: Andreas Kling. 28. Juni 2023, abgerufen am 30. Juni 2023.
  17. Andreas Kling: Ladybird: A new cross-platform browser project. Abgerufen am 23. September 2022.
  18. Ladybird build system: CMakeLists.txt. SerenityOS, 6. Januar 2023, abgerufen am 6. Januar 2023.