Ladybird
Ich begeistere mich schon seit vielen Jahren für das from Scratch neu geschriebene unixoide Windows 2000 Look A Like Betriebssystem Serenity OS von Andreas Awesome Kling (Link). Und das aus verschiedenen Gründen. Denn zum einen liebe ich es, Betriebssysteme auszuprobieren. Vor allem alte, aber auch neue. Unterschiedlichste. Von Irix 6.5 über Amiga OS bis hin zu einem alten CentOS oder macOS und eben auch Serenity. :) Und zum anderen begann Andreas mit der Programmierung des OS als er gerade einen Drogenentzug überstanden hatte, sich an einem Scheidepunkt in seinem Leben befand und seltsam viel Energie spürte. Ich habe immer etwas für Menschen übrig, denen es nicht so geradlinig gut im Leben geht (an dieser Stelle habe ich über Jan Ullrich geschrieben) und so fasziniert mich einfach, was hier geleistet wird, auf allen Ebenen.
Aber um Serenity OS soll es an dieser Stelle gar nicht gehen, denn als ein Produkt dessen kann der Browser Ladybird gelten, der erst ein Teil des Betriebssystems war und jetzt als eigenständiges Projekt ausgelagert wurde. Ladybird nutzte bis zur Abspaltung dieselben Programmbibliotheken wie der im Betriebssystem SerenityOS integrierte Webbrowser. Andreas Kling entwickelte ihn bisher und ist auch in der Abspaltung involviert.
Und neue Browser, hey, das ist auch immer etwas sehr besonderes: vor allem, wenn damit eine "Browser-Engine" (HTML-Renderer) zusammen hängt. Denn wir haben nicht mehr viele HTML-Renderer:
- Wir haben Gecko welches dem Firefox Browser zu Grunde liegt.
- Wir haben KHTML --> u. a. Konqueror (KDE) aus welchem sich mit WebKit der macOS (iOS) Browser Safari abgespalten hat und mit Blink letztendlich die Basis von Chrome (und Microsoft Edge) besteht
- WebKit --> u.a. Safari
- Blink (u. a. Opera ab Version 15, Google Chrome ab Version 28, Vivaldi, Microsoft Edge ab Version 79); 2013 von WebKit abgespalten
- WebKit --> u.a. Safari
Und natürlich gibt es noch Engines, aber die großen Browser sind hiermit schon aufgezählt. All unser Internet basiert eigentlich nur auf zwei Engines. Wenn jetzt jemand kommt und eine neue Engine programmiert, ganz ohne kommerziellem Interesse, dann ist das echt spannend und auch besonders.
Ladybird ist also ein neuer, freier, unabhängiger Webbrowser für Linux und macOS.
Ladybirds JavaScript-Engine LibJS ist seit 2022 eine durch das Ecma InternationalTechnical 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.
Die Browser-Engine von Ladybird enthält keinen vor 2018 verfassten Quellcode und gilt als komplett neu geschrieben. Obwohl die Bibliotheken auf die Kompilierung für und in SerenityOS ausgelegt sind, ermöglicht das projekteigene Portierungssystem 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.
Ich persönlich habe das ganze wie immer ausprobiert und mir auf meinem M1 Max genannten MacBook Pro den Ladybird kompiliert. Ladybird liegt in diesem frühen Stadium nämlich noch nicht als fertige App vor, sondern bedient sich immerzu den Änderungen im Repository, sodass eine Compilation einfach sinnvoll und nützlich ist. Allerdings läuft der Browser schon erstaunlich gut, aber seht am besten selbst:
An dieser Stelle wird beschrieben, wie man den Browser unter Linux oder macOS kompiliert und was alles von Nöten ist, damit das klappt. Ich kann euch hier schon versichern dass ihr mit XCode und dem legendären HomeBrew auf der richtigen Seite seid.
Ressources
- Ladybird Project Website
- How To Compile Ladybird (aka Build Instructions)