[Musik]
Hallo und herzlich willkommen zur siebten Folge des Focus on Linux Podcasts.
Heute haben wir ein ganz besonderes Thema, auf das ich mich echt schon seit einem Monat
freue. Es geht heute nicht um irgendwelche News des Monats und es geht auch nicht um
Jubiläen von Linux-Distributionen. Es geht im engeren Sinne auch eigentlich noch nicht
mal um Linux, sondern es geht ja heute um ein sehr exotisches Betriebssystem, das
allerdings offen entwickelt wird. Und zwar geht es um Serenity OS. Und da ich selbst
mich in diesem Thema nicht sonderlich gut auskenne, habe ich mir natürlich ein paar
Gäste rein geholt und heute wollen wir uns das Thema ein bisschen gemeinsam erarbeiten.
Und da hätten wir zum einen mal den Marc.
Hallo zusammen.
Dann hätten wir den Manuel.
Hallo und herzlich willkommen.
Und dann haben wir noch jemanden aus der Serenity OS Community, der dort auch als
Network bekannt ist. Hi, grüß dich.
Hallo.
Ja, schön, dass ihr die Zeit gefunden habt. Und ich freue mich wirklich sehr darauf,
heute über dieses exotische Betriebssystem mal zu sprechen. Also generell muss ich
dazu geben, ich bin ein Freund von exotischen Betriebssystemen, die nicht unbedingt
Linux sind oder nicht unbedingt BSD oder irgendwas sehr Unix-artiges. Das ist ja
auch so ein bisschen Mainstream geworden. Also generell glaube ich, wenn man sich so
das Thema Linux und Betriebssysteme anguckt, die funktionieren ja größtenteils alle
mehr oder weniger gleich. Und da gibt es gar nicht mehr allzu viele Unterschiede, würde
ich jetzt mal frech behaupten. Klar gibt es natürlich noch Unterschiede zwischen den
Distros, aber es ist alles nicht mehr so weltbewegend spannend, wie es das mal vor
zehn Jahren war. Zumindest ist das so mein Gefühl. Und deswegen freue ich mich immer,
wenn es mal ein Betriebssystem gibt, dass man einen ganz anderen Weg geht und einfach
vom Scratch mal neu Dinge entwickelt. Und da ist natürlich die erste Frage, die sich
da so ein bisschen stellt oder die sich vielleicht auch die Zuhörenden stellen.
Was ist denn Serenity OS überhaupt? Und vielleicht übergebe ich da mal direkt an
dich, Network. Schlau uns doch mal auf, was ist Serenity OS und warum macht man so
was? Ja, also Serenity OS ist erstmal genau wie Linux und andere Betriebssysteme auch
Unix-like. Das heißt, wir haben diese klassische Dateisystemstruktur, die eigentlich jeder
kennen sollte. Wenn er schon mal ein Linux-System angeguckt hat, ja, da wird er sich schon
zu Hause finden mit der Dateisystemstruktur. Wir haben ein komplettes Paket, also letzten
Endes bei Linux ist es ja hauptsächlich der Kernel, was man Linux bezeichnen könnte.
Natürlich gehört User Space auch dazu, aber das sind dann andere Projekte. Bei Serenity
OS wird alles in-house gebaut. Das heißt, wir haben ein großes Repository mit allen
Komponenten. Und dazu noch, was vielleicht mal speziell ist, was man sieht, wenn man
das erstmal hochfährt oder mal auf die Webseite geht oder ins GitHub-Repo. Die GUI ist eine
wirklich eine Hommage an die 90er Jahre mit so aus der Windows 2000-Ära vom grafischen
Stil und auch von den Bedienelementen einfach sehr daran angelehnt. Aber es ist halt eben
ein Unix-System. Das heißt, wenn man das Terminal aufmacht, hat man die ganz normalen
Tools, die man erwarten würde, LS, CAD und so weiter, ganz normal Unix. Doch man findet,
wenn man das System hochfährt, kein Bash und auch kein Firefox-Browser oder andere bekannte
Programme aus der Linux-Welt, denn wirklich alles ist neu programmiert worden. Die Entwickler
sind hingegangen und haben sich die Konzepte genommen, die gut funktionieren und sie einfach
neu implementiert. Wahnsinn. Und du bist ja Teil des Projektteams, würde ich jetzt mal
sagen. Vielleicht magst du den Zuhörenden kurz erklären, wie du eigentlich zu diesem
Projekt gekommen bist. Ja, das muss ich dem YouTube-Algorithmus zuschreiben. Der kennt
meine Interessen dann doch schon ganz gut. Und irgendwann habe ich ein Video, das muss
schon jetzt ein, zwei Jahre vielleicht sogar zurückliegen, ein Video empfohlen mit dem
Titel "Browser Hacking" und noch etwas dahinter. Ich weiß nicht genau, welche Folge das war.
Erst mal war ich so, okay, Browser Hacking, da geht es um Security Research oder irgendwelche
Exploits, wie auch immer. Und war dann sehr überrascht, aber positiv überrascht von dem,
was ich gesehen habe. Das war nämlich Andreas, der Hauptentwickler, der auch angefangen hat
damit, hat sich gezeigt, wie er an dem Browser in Serenityres arbeitet und das Ganze sehr
detailliert. Also das war kein Einsteiger-Tutorial, das war eher wirklich eine fortgeschrittene
technische Präsentation, aber in dem er einfach nur programmiert und dabei erklärt, was er tut,
worüber er nachdenkt. Und dieser Prozess war wirklich sehr faszinierend.
Ja, lustige Story, weil bei mir tatsächlich ist es auch über YouTube so ein bisschen gekommen.
Also ich habe davon gelesen und dann habe ich irgendwann ein Video gesehen, das Mark zu dem
Thema erstellt hat. Das ist eigentlich auch eine gute Überleitung. Mark, wie bist du zu dem
Thema eigentlich gekommen? Wer bist du überhaupt und was machst du so?
Ja, ich bin der Mark. Ich bin ursprünglich Linux-Systemadministrator, würde ich mich
bezeichnen. Also das ist zumindest mein Beruf und den ich ja seit meiner Fachinformatik-Ausbildung
ausübe. Und ich bin eigentlich auch schon seit jetzt fast zehn Jahren in der Linux-Welt zuhause
und betreibe auch viele Linux-Systeme und so weiter und so fort und beschäftige mich auch einfach
viel mit der Open Source Szene um Linux drumrum, nenne ich es mal. Hab aber auch so eine Vorliebe
für exotischere Betriebssysteme, zum Beispiel Solaris oder andere Unix-like Operating Systems.
Da sind Christian und ich, glaube ich, die Enthusiasten, nenne ich es mal. Und ich habe zu
Serenity OS tatsächlich auch, wie ihr eigentlich gefunden, auch durch den YouTube-Algorithmus.
Das müsste auch ebenfalls bei mir vor ungefähr zweieinhalb Jahren gewesen sein, wo mir auch ein
OS-Hacking-Video empfohlen worden ist von Andreas, wo wir gleich noch zu kommen werden, wer das
genau ist. Und dieser hat in diesem Video, ich weiß nicht mehr genau, welche Funktion er hat,
auch irgendwas implementiert. Ich habe zugeschaut, man muss dazu sagen, ich kann keinen C++, also
ich kann mit dem Code, ich kann ihn zwar ungefähr lesen, schon klar, weil ich auch nicht null
Programmiererfahrungen habe, aber so wirklich tiefe Programmiererfahrungen mit C++ habe ich
einfach nicht. Mich hat es aber trotzdem irgendwie fasziniert und ich habe trotzdem zugeschaut,
ich fand es trotzdem unterhaltsam und ich hatte auch einen riesen Respekt davor, was für eine
Arbeit das ist, ein Betriebssystem von Grund auf hochzuziehen. Und das finde ich auch das Spannende
an dem Projekt. Und habe dann im 2021, im Juni glaube ich, also jetzt fast vor einem Jahr genau,
habe ich ein Video auf YouTube gemacht, ein deutsches Video auf YouTube zu SerenityOS,
was, wie ich jetzt erfahren habe, eine Seltenheit ist, dass es wenige deutsche Videos zu dem Thema
gibt. Und das hat einigen Leuten gefallen und hat auch ein bisschen Bekanntheit in Anführungsstrichen,
bekommen die dieses Video und hat mich natürlich gefreut. Und so bin ich letztendlich auch in
dieser Runde hier gelandet. Ja, lustig, die Welt ist klein und die IT oder das Internet halt noch
viel kleiner. Also, das ist glaube ich echt eins deiner am meisten geklickten Videos zu dem Thema.
Echt spannend. Da hast du quasi genau, fast genau zur richtigen Zeit mit einem richtigen Thema
unterwegs. Genau, ausnahmsweise mal. Normalerweise wie das Talent nicht. Ja, sehr gut. Gut, Manuel,
du arbeitest ja auch in dem Projekt. Sag doch auch nochmal kurz unseren Zuhörenden, wer bist du,
was machst du und wie bist du zu SerenityOS gekommen? Genau, also ich bin wahrscheinlich eher
bekannt als kleines Filmröhrchen. Ich bin eigentlich Informatikstudent, also vom Titel her, fühle mich
aber schon seit etwa einem Jahr zu SerenityOS berufen. Und ich will jetzt nicht wiederholen, was die
anderen schon gesagt haben, weil bei mir war es ähnlich. Ich habe auch über ein YouTube Video
Andreas Kling gefunden und es war im Kontext mit Live Overflow, also tatsächlich Security Research.
Live Overflow ist ja ein ziemlich bekannter deutscher IT-Sec YouTuber. Der hat Anfang letzten Jahres
oder Ende 2020 eine kleine Kooperation gemacht, wo es eben einen Exploit gab in SerenityOS, in dem CTF
und er hat erklärt, wie der Exploit funktioniert hat und so. Und er hat dann nachher, Andreas Kling
hatte dann ein kurzes Segment in diesem Video und dann war noch verlinkt, ok, Andreas Kling in seinem
eigenen Video fixt diesen Bug und dann habe ich das mal angesehen. Das fand ich echt interessant, also zum
einen diese Fix-Idee, also ich bin nicht so der IT-Sec Mensch, aber ich finde das sehr interessant.
Und dann bin ich da eben so ein bisschen im Sumpf gelandet, durch den Algorithmus auch. Also so bin ich
draufgekommen und meinen ersten Commit habe ich dann irgendwann letzten April glaube ich gemacht, also
es ist etwas mehr als ein Jahr her und seitdem arbeite ich, würde ich sagen, ziemlich viel an dem Projekt
mit, wo Stand der Dinge sind. Momentan glaube ich etwa 270 Commits oder so, also ein bisschen. Und genau,
ich sehe mich ein bisschen fürs Audiosystem verantwortlich, aber abgesehen davon, ja. Wow, sehr gut,
sehr sehr fleißig, das ist auf jeden Fall respektabel für ein Jahr Projektzugehörigkeit. Und auch echt
spannend, dass du auch über YouTube draufgekommen bist, weil ich weiß ja nicht, also ich kriege
normalerweise von Algorithmen immer nur Schund vorgeschlagen, der mich überhaupt nicht interessiert,
aber in dem Fall hat der Algorithmus bei uns ja offensichtlich echt einen guten Nerv getroffen. Also
YouTube bitte mehr davon, bitte mehr sinnvolle Vorschläge und nicht irgendwelche alten Meme Videos,
die man schon seit fünf Jahren kennt oder so. Das wäre irgendwie nett. Ja, ich finde es auch
wirklich interessant, dass das System ja auch wirklich so aussieht, wie man sich das vorstellt.
Also wir haben jetzt ja schon festgestellt, wir haben alle so eine gewisse Diebe für diese
90er Jahre Unix-Systeme und es sieht halt wirklich aus wie so eine Mischung von so ein bisschen
CDE, so ein bisschen Windows Server 2000 würde ich sagen und irgendwie so altes Putty ist da für mich
auch drin, wenn ich das Terminal so mir anschaue. Also das vereint ja wirklich alles, was man so in
den 90er Jahren an den Unix-Systemen so wertgeschätzt hat. Und ja, jetzt hatten wir ja schon
ein bisschen darüber gesprochen, was das Ganze eigentlich ist. Ich habe hier in den Show Notes
noch so Dinge drinstehen, wie monolithischer, präemptiver Multitasking-Körnel und Datalsystem-Support
geschrieben in C++. Vielleicht wollen wir da nochmal irgendwie kurz drüber sprechen. Wie sieht das denn
aus, wenn man an diesem Projekt mitarbeiten will? Was ist denn so, wie beginne ich denn damit? Was kann
mein Einstiegspunkt sein, um mich mit dem Thema zu beschäftigen? Gibt es da irgendwie eine ISO,
ein Vagrant Image? Wie muss ich mir das vorstellen? Na ja, gut. Also eine ISO gibt es vorab schon mal
nicht. Das ist ein so ein Punkt, der kommt immer wieder auf. Leute möchten es natürlich schnell
ausprobieren, irgendwie keine Ahnung mit rumspielen. Aber es ist halt primär ein Projekt von den
Entwicklern für die Entwickler selber. Das heißt, jeder hat so seine eigene Ecke, vielleicht seinen
eigenen Ziel, sein eigenes Ziel auch für das Projekt. Und deswegen, und vor allen Dingen auch weil
das Projekt sich so schnell entwickelt, gibt es keine offiziellen Isos. Das heißt, wenn man damit
anfangen möchte, anfangen möchte dran zu arbeiten, gibt es sehr, sehr gute Dokumentation, die einen
mehr oder weniger wirklich an die Hand nimmt und in den die Schritte durchgeht, um mit ein paar
einfachen Skripten auf einem Linux-System, ich meine auch auf Mac OS und auf Windows unter
VSL eine virtuelle Maschine mit dem System zum Laufen zu kriegen. Und von da an steht einem natürlich
die komplette Welt eines Betriebssystems mit User Space in Form der Codebase offen. Also ich denke,
ein guter Einstieg ist, man sieht irgendwie einen Bug vielleicht in einem Video von Andreas oder
selber beim Betriebssystem sich orientieren, rumgucken und guckt einfach, okay, wo kann ich denn
diesen Bug fixen? Und das Schöne ist ja, die komplette Codebase ist da. Das heißt, wenn der Bug
da ist, dann kann man ihn in den meisten Fällen, das ist ein Bug in QEMU, auch tatsächlich im
Projekt fixen und klickt sich mit seinem Editor seiner IDE durch die verschiedenen Layer des
Systems, bis man irgendwo dann rauskommt, wo man den Bug hat und kann den dann fixen. Aber natürlich
funktioniert Feature hinzufügen genauso. Also man muss nicht unbedingt mit dem Bug anfangen, das ist
vielleicht mal Encouraged, dass man nicht gleich ein neues Subsystem schreibt, weil man sich vielleicht
erstmal mit dem Projekt etwas arrangieren sollte, dass etwas kennenlernen sollte. Aber ja.
Ja, das geht echt relativ schnell. Also ich habe mir mal die Doku angeschaut, da gibt es halt einen
Skript, man installiert sich so ein paar Dependencies, ich habe das jetzt unter Linux gemacht und hat
dann so eine Art Skript, was halt so ein Makefile dann durchrattern lässt, das läuft dann so fünf
Minuten und dann poppt QEMU auf und man hat da eine VM und kann da sofort loslegen mit
funktionalem Netzwerk, mit Grafik, die funktioniert. Also das geht erstaunlicherweise sehr, sehr schnell.
Und da habe ich mir so überlegt, das wäre doch cool, wenn man da so Vagrant Boxes für bauen würde.
Hab dann aber in der Doku gesehen, das war so irgendwie die erste FAQ so, warum gibt es keine ISOs
und so nach dem Motto, naja, das ist ein System von Entwickler*innen für Entwickler*innen, die kriegen
das schon hin, die brauchen keine ISO. Da habe ich mir so, okay, gut, ich sehe schon, ich muss da nicht
tätig werden. Das ist vielleicht auch ein Stück weit gar nicht gewünscht, aber um mal schnell loszulegen,
wäre das natürlich eine Option, aber vielleicht tut sich das ja noch in der Zukunft. Und was mich
interessieren würde, Datalsystem ist ja aktuell ein X2, wenn ich es richtig gesehen habe. Also das
ex-Datalsystem, das wir schon von Linux kennen, das eben das Standard-Datalsystem ist.
Ja, das ist tatsächlich ein Punkt, der öfter aufkommt, warum nur ext2, warum nicht 4 oder
kein komplett anderes. ZFS. Ja, genau. BTRFS und so weiter. Das hängt einfach damit zusammen, dass
keiner es implementiert hat. Das ist so ein bisschen auch die Mentalität. Jeder macht das, woran er Lust
hat. Und Andreas hat zu Anfang, wie er selber sagt, eine ziemlich grude ext2-Implementation
geschrieben. Die ist natürlich jetzt mit doch einigen Jahren auf dem Buckel schon verbessert
worden und eigentlich relativ stabil. Aber eben es ist keiner hingegangen und hat eine neue
Implementation für ein moderneres Datalsystem geschrieben. Und wenn hier jemand Lust hat, ein
Datalsystem zu schreiben, bitte. Also wir haben tatsächlich auch zwei weitere Datalsysteme drin.
Einmal Plan 9, das scheint auch zu funktionieren, bin ich nicht ganz so mit bewandert. Und dann noch
ISO 9660. Also das ist das klassische Datalsystem, was der ISO-Datei ihren Namen gibt, wo wir es eben
schon von hatten. Das heißt, Disk Images kann man auch lesen und mounten. Aber für das tatsächlichste
System als Root Partition aktuell ext2, wie gesagt, wenn jemand contributen möchte, super gerne.
Ja, Wahnsinn. Plan 9 ist auch schon direkt das nächste exotische Betriebssystem. Das können wir
auch auf die Liste packen für weitere Themen. Sehr schön. Ja, ich glaube, wir müssen mal ein bisschen
in die Geschichte weiter einsteigen. Aber bevor wir das tun, was ich mich auch gefragt habe, ist, was
es denn mit dem Namen auf sich hat. Ich habe natürlich gehofft, das hat was mit dem gleichnamigen Film
zu tun, musste aber feststellen, dem ist wohl nicht so. Wie kam Andreas auf Serenity OS?
Ja, das ist eine lange Geschichte und das hat viel mit seiner persönlichen Geschichte zu tun.
Deshalb würde ich damit vielleicht mal anfangen. Andreas Kling hat da auch ganz viele Videos dazu
gemacht und wir haben seinen YouTube-Channel verlinkt. Das heißt, da kann man sich durchschauen
durch seine verschiedenen Car Talks, hauptsächlich wo er von seiner Geschichte erzählt. Aber mal so
zusammengefasst, er hat lange Zeit, so sage ich mal so Ende der 2000er und Anfang der 2010er
bei Apple und Nokia gearbeitet und da viel an WebKit und Qt gearbeitet. Und er ist dann
etwa so ab 2016 oder so, bis 2018 auf jeden Fall, hat er dann Probleme mit Drogen, hat auf
verschiedene Arten und Weisen Drogen missbraucht und hat es dann aber geschafft, eine Behandlung zu
machen und ist nicht mehr abhängig und hat dann als Beschäftigungstherapie, weil er jetzt so viel
Zeit hatte, nachdem er von den Drogen losgekommen ist, hat er sich überlegt, was mache ich mit meiner
ganzen Zeit und hat dann eben Serenity begonnen und der Name Serenity kommt von dem Serenity Prayer,
das ist das Gelassenheitsgebet, das ist ein ganz bekanntes Gebet, das er anscheinend in einer
Selbsthilfegruppe nach seinem Entzug kennengelernt hat. Und er hat das begonnen im Oktober 2018,
kann man auf dem GitHub Repository nachgucken, der erste Commit ist vom Oktober 2018 und er hat
dann die Entwicklungsarbeit auf seinem YouTube-Kanal gestreamt, das Format hat Network vorhin schon
erwähnt, eben live-mäßig und wird sehr wenig bis gar nicht geschnitten und das ist auch so ein bisschen
die Art und Weise, wie das Projekt Bekanntheit erlangt hat und damit sind mit der Zeit sehr viele
Leute dazugekommen und seit 2021 kann er das sogar in Vollzeit machen, das heißt, er kriegt jetzt
genug Geld durch Spenden, um das Vollzeit an Serenity OS zu arbeiten.
Das ist faszinierend, weil man so gar nicht erwartet, wenn man von so einem total spannenden
Projekt hört, dass das eine Möglichkeit bietet, das wirklich hauptberuflich zu machen. Also fand
ich auch total faszinierend und ist ja auch wirklich eine bewegte Geschichte, dass man so ein Projekt
eben auch als Motivation ansehen kann, seine privaten Probleme so ein bisschen in den Griff zu
kriegen. Also eine sehr, sehr schöne Sache, auch schön, dass das so offen mit umgegangen wird,
finde ich sehr begrüßenswert und wir haben auch mal in den Show Notes verlinkt das Mai 2022 Update
Video, also Andreas Kling hatte regelmäßig Videos, die er eben auch hochlädt, habe ich gerade die Tage
noch mal reingeschaut und jetzt für den Mai 2022 hat er so ein Update Video veröffentlicht, wo so ein
bisschen drüber gesprochen wird, was es so Neues in der Community gibt und das ist total spannend,
da mal reinzuhören, denn da tut sich wirklich echt viel. Es sind ja wirklich auch viele Leute, die da
mittlerweile an diesem Thema arbeiten, was ja auch so ein bisschen das nächste Thema wäre. Wie sieht das
denn so aus mit so dieser Team Projektstruktur? Wie muss ich mir das vorstellen? Wie viele Leute
arbeiten da so dran? Habt ihr da so ein paar Eckzahlen? Also es ist grundsätzlich mal eine sehr
organische Struktur, weil es, sage ich mal, eben organisch gewachsen ist und man sich nie auf irgendein
formales System geeinigt hat. Also ich bin jetzt nicht sehr vertraut mit dem zum Beispiel der Struktur
vom Linux-Könner, aber ich weiß, es gibt irgendwie so Subsystem-Maintainer und es gibt relativ klare
Abläufe und ich glaube, das Gleiche gilt für größere Distros wie Debian und Ubuntu, fällt mir ein, da habe ich schon
vieles drüber gehört, aber das ist in Serenity OS überhaupt nicht der Fall. Das heißt, die Hierarchie ist ziemlich
flach und man könnte jetzt meinen, das ist unorganisiert, aber der Grund, warum es noch so ist, ist, dass es
halt einfach funktioniert. Das kann ich auch nicht erklären, warum es genau funktioniert, aber es funktioniert
halt einfach, dass im ganzen Projekt fast jeder macht, was er will und die Ordnung trotzdem irgendwie
beibehalten wird. Und ich, von meinem Konzept her, wie ich das mitgekriegt habe, wo ich jetzt eben ein Jahr tiefe
Einblicke da habe, gibt es etwa drei Schichten, würde ich es nennen. Am Anfang ganz oben haben wir so die
Maintainer, das ist eben mit Andreas und dann einigen anderen. Ich zähle sie mal kurz auf, Delinus Groh,
Ali Mohammed Puffat, Gunnar Beutner, der ist gerade nicht aktiv, Idan Horowitz, Brian Gean Volcaro und Tim Flynn.
Und das sind eben die, die sozusagen das letzte Wort haben, ob ein Commit ins Projekt kommt oder nicht.
Das heißt, die haben auf GitHub diese Merch Permissions für Pull Requests und genau die machen auch
sozusagen den Hauptteil der Reviews. Das war am Anfang nur Andreas selber, weil er ja am Anfang das
privates Projekt gemacht hat und damit eben andere Leute nur ihm geholfen haben, in Anführungszeichen.
Und heutzutage hat er aber einen Großteil dieser Verantwortung abgegeben und lässt auch die anderen
oder ja, will eben auch, dass die anderen sich darum kümmern, weil es ist inzwischen sehr viel Arbeit,
Pull Requests zu reviewen und zu merken. Und ich würde mal behaupten, wenn irgendwas brennt,
im Zweifel, dann sind die auch dafür zuständig. Also hätten wir jetzt ein Security Disclosure,
Responsible Disclosure, dann müsste man sich an einen Maintainer auf jeden Fall wenden,
auch wenn das nicht das relevanteste Szenario für das Projekt ist.
Und da drunter stehen so die Projektmitglieder. Also es gibt dazu ja ein GitHub Projekt und eine
GitHub Organisation und dort, wer dort sozusagen als Mitglied eingetragen ist, da gibt es ja auch
diese Liste, die zähle ich zu den Projektmitgliedern. Das sind, da gibt es eine harte Grenze dafür,
wenn man 100 Commits erreicht hat, dann kommt man da rein. Das heißt, ich gehöre zum Beispiel auch zu
denen dazu. Und da, sag ich mal, gibt es ein paar kleinere Privilegien, aber nichts festes. Also die
Leute machen meistens so ein bisschen Moderation. Das heißt, die kümmern sich um Issues, labeln,
die schließen sehr und machen aber auch Code Review. Das ist ganz wichtig, weil ansonsten die
Maintainer zu viel Arbeit haben. Und genau, das sind, habe ich gezählt vor einem Monat, glaube ich,
etwa 40 bis 50 Leute. Und der ganze Rest ist dann "dunter", auch wenn, wie gesagt, da kein
strikter Wert draufgelegt wird. Und das sind insgesamt an Contributern gibt es über 500, ich glaube
inzwischen sogar an die 600. Aber regelmäßig gibt es so 120, 150 Leute, die so jeden Monat oder alle
paar Monate mal was machen. Das sind tatsächlich 705. Okay, dann habe ich mich da, das ist noch ganz
schön angewachsen. Also das sind alle. Ich kann natürlich jetzt nicht, gut, du hast vielleicht die schon
entfernt, die in den oberen Schichten sind, aber ja. Das auch. Ja, aber genau, also nochmal wichtig zu
sagen, ich habe jetzt viel über diese Hierarchie geredet, das ist alles sehr informell. Also ich glaube,
da legen auch viele Wert drauf, so von den Leuten auf meinem Level, so die, die das System gut kennen,
dass man trotzdem kritikfähig bleibt und trotzdem in einer offenen Kommunikation bleibt. Und meine
Commits sind auch nicht mehr wert als die Commits von jemandem, der erst seinen ersten Commit macht,
auch wenn meine Commits vielleicht größer und beim ersten Anlauf korrekter sind, wenn man so will.
Weil ich halt schon die Vorgänge im Projekt kennen, im Gegensatz zu einem neuen Contributor. Aber das
ist ja kein Problem, das kann man alles lernen. Und ich würde mal behaupten, da könnt ihr gerne
kommentieren, wenn ihr da Widersprüche habt, aber ich würde mal behaupten, dass wir ein ziemlich
offenes Verhältnis zu neuen Contributoren haben und versuchen, allen Leuten zu helfen, ins Projekt
reinzukommen. Und das hat mir auch damals sehr geholfen, ins Projekt reinzukommen und mit allem
vertraut zu werden und Code zu lesen, Code zu schreiben und so weiter. Ja, also das kann ich nur
bestätigen. Auch wenn ich nicht mehr als 100 Commits habe, ist, sage ich mal, die Kultur um die
Leute, die sich beteiligen und auch die Neuen wirklich sehr offen und sehr freundschaftlich. Und
vielleicht, warum das Ganze so gut funktioniert, obwohl es, sage ich mal, so lose organisiert ist,
auch wenn wir jetzt sehr viel darüber gesprochen haben, wie es dann doch irgendwie auch organisiert
ist. Aber wenn man eben mit dabei ist, merkt man, dass es relativ lose ist. Doch dieser, also Andreas
hat von Anfang an einen sehr strikten, aber in einer guten Beziehung strikten Reviewprozess
angestrebt. Das heißt, in das Projekt kommen Commits, die gut benannt sind, die concise sind, also
kurz und knackig, sage ich mal. Die Git History ist wirklich mehr eine Dokumentation des Systems als
die Dokumentation selber. Man kann wirklich sehr gut zurückverfolgen, wie Änderungen implementiert
wurden. Und das ist auch so ein bisschen das Ziel eben, ein sehr gut dokumentiertes Projekt durch die
Git History zu haben. Aber selbst wenn man es, wie Manuel auch schon angesprochen hat, beim ersten
Versuch vielleicht nicht den perfekten Commit hinkriegt, dann sagen die Maintainern einem das
auch und sagen, okay, ihr müsst nachgebessert werden. Da ist ein C++ Fehler, den man gerne mal macht.
Oder da ist was, was noch nicht berücksichtigt wurde, ein Typo. Und dann kann man den Commit noch einmal
ändern oder fünfmal ändern oder zehnmal ändern. Und die Maintainer werden nochmal drüber gucken.
Und wenn er dann, sage ich mal, ein Level erreicht hat, was gut ist, was eine gute Änderung ist, dann
kommt er auch rein.
Sieht sich Andreas so in der Rolle, also ich vergleiche das jetzt mal so ein bisschen mit, was ich so von
der Organisation des Linux Kernprojekts mitbekommen habe oder wie es ja auch bei Python lange war.
Da ist es ja auch ein, ich würde mal sagen, demokratischer Prozess, so wie ihr es auch gerade
beschrieben habt, mit offener Kommunikation und eben mit dem gleichen Ziel, das man gemeinsam
verfolgt. Aber trotzdem ist es ja beim Linux-Projekt und bei Python ja immer so gewesen, dass es dann
immer nochmal die Personen gab, die dann das letzte Wort hatte.
Sieht sich Andreas Kling in der Rolle oder sagt er, wenn Linus das auch so sieht und Gunnar und Brian,
dann wird das schon so passen oder legt ihr auch mal ein Veto ein in letzter Sekunde?
Das ist natürlich schwer zu sagen so generell. Ich würde von dem, was ich mitkriege, würde ich sagen,
er ist sehr offen zu den Meinungen und respektiert auch die Meinungen der anderen Maintainer, aber auch
Projektmitglieder und Personen, wenn die eine gute Meinung haben, eine fundierte Meinung haben.
Da es ja meistens um technische Dinge geht, gut bei Moderation, sage ich mal, gibt es natürlich auch
noch Dinge, die geklärt werden müssen. Hauptsächlich ist das Projekt ja über den technischen
Prozess quasi oder es geht darum, da kann man ja glücklicherweise faktenbasiert arbeiten. Das heißt,
wenn jemand eine Verbesserung für die Effizienz oder Schnelligkeit von Code vorschlägt, dann haben wir
die Tools, um das feststellen zu können, ob das wirklich besser ist. Das wird auch gemacht. Und dann
denke ich, wird Andreas auch sagen, wenn er falsch liegt. Es ist nicht der Diktator, das Projekt,
das gibt es ja, diesen Begriff. Wohltätiger Diktator auf Lebenszeit. Darauf wollte ich hinaus.
Und ich sage mal, das hat ja auch was zu tun, wie man sich selber sieht. Und da hatte ich tatsächlich
auch mal eine Frage in einem Livestream gestellt an Andreas. Und er war sehr nachdenklich darüber,
wie er eben das Projekt sieht, ob er das noch als sein eigenes Projekt sieht oder ob es ein Projekt ist,
wo er mitarbeitet dran. Und er sagte, dass er es manchmal noch so als sein eigenes Projekt sieht und
dass das früher auch sicherlich der Fall war. Aber je mehr andere Leute daran arbeiten, desto nachdenklicher
wird er und desto mehr ändert sich das eben, dass es ein Community-Projekt ist. Und ich erinnere mich
noch gut an den zehntausendsten Commit, der war nämlich, dass die Lizenz von Andreas Kling,
dem Project-Route von Andreas Kling zu Serenity US Contributors umgeändert wurde. Das heißt,
ich meine, rein rechtlich ist wahrscheinlich das Projekt da nicht mehr nur seins, aber das ist ja
nicht so wirklich schön, den rechtlichen Aspekt irgendwie zu betrachten. Aber auch, ich glaube,
auch im Gedanken ist es schon eher das Projekt aller, die daran mitarbeiten.
Als letzten Kommentar, ich würde schon behaupten, dass es Hügel gibt, auf denen er stirbt,
also so mit der Symbolik gesprochen. Also es gibt einige feststehende Dinge am Projekt,
zum Beispiel die Ästhetik, die garantiert nicht geändert werden kann, weil das okay, das ist jetzt
nicht unbedingt ein technischer Aspekt, ist auch eine persönliche Meinung. Was findet man für einen
Desktop-Oberflächenstil schöner? Und das ist eben ein Punkt, das sollte aber auch jeder wissen,
wenn er da reinkommt, da lässt sich nicht drüber argumentieren, mal von Theming abgesehen. Aber ich
sage mal, das sind so kleinere Sachen und wenn einem das nicht gefällt, dann ist auch vielleicht
die ästhetische Ausrichtung nicht die richtige. Und wenn man eine eigene Ästhetik mit Serenity OS
implementieren will, dann darf man das gerne tun, nur man hat halt keine Erfolgsaussichten, das ins
Projekt reinzukriegen. Aber ich sage mal so, diese Menge an Hügeln, auf denen Andreas Kling
sterben wird, um diese wettliche Übersetzung nochmal zu bedienen, die ist sehr klein und das
meiste ist offen für was auch immer als beste Lösung erscheint. Ja, man kann ja auch einfach
eben das Projekt forken. Man sollte allerdings gewarnt sein, viel Spaß das up to date zu halten.
Die Commits kommen sehr schnell rein, sage ich mal. Selbst wenn man nur Patches
Applied, werden die wahrscheinlich irgendwann einfach nicht mehr matchen. Aber klar, das Projekt
ist so lizenziert, dass jeder eigentlich damit machen kann, was er möchte. Genau, das ist die
BSD2-Clause-License, also eine sehr, sehr liberale Lizenz. Ja, da gibt es ja wirklich nicht viel,
was definiert ist. Also ich glaube, das steht im Wesentlichen drin. Mach damit, was du willst,
aber nerv mich nicht und mach mich nicht dafür verantwortlich, wenn irgendwas nicht funktioniert.
Ich glaube, so kann man es sinngemäß. Die BSD gibt es ja als eins, zwei und drei Clause.
Ich glaube, so kann man es zusammenfassen, oder? Tatsächlich die zwei Clause ist, man muss sagen,
wer es gemacht hat. Also retain copyright notice basically und zwar in binär, also in binary Form
und im Text und es gibt keine Warranty. Also wir sind nicht verantwortlich dafür, was passiert,
wenn ihr das Projekt einsetzt. Das hat ja quasi jede Lizenz, jede Open Source Lizenz und eben.
Aber es gibt darüber hinaus keine Klauseln oder so, die man beachten müsste.
Ja. Nun ist es ja so und das hat Manuel ja auch schon gesagt, ihr arbeitet ja beide an dem Projekt mit.
Manuel sieht sich so ein bisschen als Maintainer für den Audio Stack. Ist ja so einst der großen Projekte,
was du vorantreibst. Wie sieht das bei dir aus, Networken? In welchen Bereichen bist du unterwegs?
Wo hast du so deine Finger im Maschinenraum? Ja, das ist am System selber tatsächlich weniger als am Drumherum,
wobei auch im System selber. Also zuletzt tatsächlich relativ viel im GUI System oder Browser, also generell GUI Anwendungen.
Allerdings keine tiefgreifenden Änderungen, nur Bug fixes hauptsächlich. Und ein paar andere Themenbereiche auch noch,
wo ich mich einfach für interessiere. Aber hauptsächlich ist meine Arbeit so um das System drumherum.
Also das Signifikanteste daran ist wahrscheinlich der Discord-Bot. Den habe ich doch schon sehr geprägt.
Und da arbeite ich auch gut dran, wenn jemand einen Feature haben möchte, was Sinn macht für das Projekt,
was irgendwie weiterhilft, dann klar, implementiere ich gerade mal. Das hängt aber auch eher an der Sprache als an der Lust,
irgendwie an Serenity mehr zu arbeiten. Oder an der Zeit hängt es auch noch meistens.
Also C++ ist nicht so wirklich meine Hauptsprache, das ist dann eher TypeScript, was glücklicherweise die Sprache ist,
in der der Bot geschrieben ist. Das heißt, da kann ich dann mein ganzes Programmer-Knowhow auspacken,
ohne irgendwelche Sorge zu haben, dass ich Pointer-Logic falsch gemacht habe. Aber ja, eben Systeme um Serenity herum,
Webseiten, Fixes und Eisenkram. Und dann auch einfach viel der Community unterwegs sein, mit Leuten reden,
über Dinge diskutieren, Leuten weiterhelfen. Naja, da muss ich mal noch ein bisschen dazwischen gerätschen.
Wenn sich jetzt jemand angesprochen fühlt, hier, oh, mir geht es so ähnlich, ich kann gar kein C++.
Und das ist alles, ich habe da ein bisschen Angst davor, kann ich euch sagen, dass ich auch kein C++ konnte,
bevor ich an Serenity gearbeitet habe. Also, ich glaube, die Menge an Leuten, die kein C++ konnten,
bevor sie an Serenity gearbeitet haben, die ist wesentlich höher, als man denken würde.
Man muss natürlich seine Programmierkenntnisse mitbringen, aber es ist eine sehr moderne Form von C++.
Wir haben jede Menge C++ 20 und teilweise auch 23 Features. Wir haben keine Exceptions, keine RTTI,
sehr wenig rohe Pointer, hauptsächlich Smart Pointer und Managed Pointer und ganz viel saubere
Objekteorientierung ohne C. Das heißt, da kann man auch, wie ich als Java-Programmierer, relativ gut reinkommen.
Und das würde ich, wenn ich jetzt mal mein eigenes Projekt loben darf, mal wieder, würde ich Serenity auch für den Code Style loben.
Das ist ein sehr schöner C++.
Oh ja, da muss ich mich aber anschließen. Also, der ist wirklich sehr schön und gut lesbar.
Also auch eine gute Möglichkeit, wenn man eigentlich schon immer mal C++ lernen wollte, es nur noch nicht wusste
und doch keinen Use-Case hatte, damit einzusteigen, würdet ihr vermutlich unterschreiben.
Ja, es ist etwas schwierig. Also, ich würde mal so sagen, wenn man Serenity lernen möchte, an Serenity arbeiten möchte,
dann muss man irgendwie ein bisschen C++ lernen, um daran arbeiten zu können.
Aber wenn man C++ lernen möchte, sollte man wahrscheinlich nicht Serenity dafür verwenden.
Das Seidenmacher hat wirklich gar keine Restriktion, was man machen muss.
Das heißt, man schreibt irgendwie eine CLI-Application ohne Dependencies.
Das hat so ein bisschen was damit zu tun, dass wir nicht die C++ Standard Library benutzen, sondern was eigenes haben.
Ganz im Zeichen des Projektes, alles selber zu bauen, haben wir was eigenes.
Und das geht zwar außerhalb, also ich glaube, wir haben auch...
Ja, das ist außerhalb auf Linux auf jeden Fall verwendbar mit CMake-Projekten.
Wir haben sogar Godbolt. Heißt das so? Ich glaube.
Es gibt auch auf Godbolt, wenn man in die C++ Bibliotheken dort geht, kann man Serenity bzw. Lagom heißt das dort.
Lagom ist halt der Name für die Serenity Bibliotheken auf einem Linux-System.
Kann man dort einsetzen. Und dann zumindest die Standard Bibliothek, die heißt AK.
Die Bedeutung der Abkürzung ist dem Zuschauer überlassen. Die kann man dort dann einsetzen.
Ich hatte sogar auch schon mal, um das mal kurz, weil das Thema mich gerade darauf bringt, dass ich schon mal sowas gesehen hatte,
dass es auch eine Library gibt bzw. eine Möglichkeit gibt, die libgui aus dem System auch auf einem Linux einzusetzen.
Das fand ich auch total spannend, habe ich dem letzt gesehen.
Und da könnte man quasi mit dieser libgui Applikations bauen für Linux, nur halt eben mit Serenity-Ursprung der nächste Mal.
Also da ist mittlerweile einiges möglich. Cool.
Das ist wirklich interessant. Ich habe da auch ein bisschen mitgearbeitet, also ganz wenig eigentlich, aber ich nehme die Pride da drin schon.
Der Entwickler, der das gemacht hat, ist glaube ich gerade nicht da.
Nee, ist gerade nicht so aktiv.
Genau, deswegen ist das so ein bisschen on hold. Kann jemand anders vielleicht weitermachen? Wäre cool, wenn jemand Lust drauf hat.
Aber einfache Anwendungen mit auch Pop-ups und so ging schon.
Kurz dann SDL einfach, ist ja eine einfache Möglichkeit, um Windows und GUI-Applikations auf andere Systeme zu porten.
Aber das ist wirklich spannend.
Wie sieht das denn bei dir aus, Marc? Du hast dich ja auch schon so ein bisschen reingefuchst.
Wäre das eigentlich auch so ein Projekt, an dem du mitwirken würdest oder hast du da vielleicht schon was gemacht?
Also mein Traum wäre, ich würde gerne einen IPv6-Stack in Serenity implementieren, weil meines Wissens nach IPv4 aktuell nur supported ist.
Dann wirst du da viele Liebhaber und viele Supporter haben, wenn du das tust.
Dadurch, dass ich selber IPv6-Liebhaber bin und ich das auch wirklich gut finde, würde ich das wie gesagt super gerne machen.
Ich habe auch schon mal in den Discord, da hatte ich damals gefragt, ganz blauäugig, wie sieht es denn aus mit IPv6?
Und dann kam natürlich die Antwort, ja, wenn du Lust hast, baust doch, also mach's doch.
Hat mir nicht so viel geholfen. Ich hätte mir eher so eine Antwort gewünscht, ob schon mal so was geplant wäre.
Aber ich kann halt, ich habe momentan einfach nicht die Ressourcen, hauptsächlich Zeit dafür, mich reinzufuchsen.
Aber es wäre, wenn ich es könnte, dann würde ich sofort meine Zeit dafür opfern, weil hätte ich schon sehr sehr Lust drauf.
Hast du dann viel Spaß mit Core Stream? Also das eine API, die wir haben, die ist eigentlich sehr gut.
Die API ist sehr gut und das Problem ist nur, wenn man von der neuen API mit der alten API reden muss.
Aber da brauchen wir jetzt nicht weiter in die Tiefe zu gehen.
Ich glaube sonst wird das ganz ganz schnell ein 3-Stunden-Podcast.
Also nicht, dass ich hier irgendwie nicht Lust hätte, mit euch 3 Stunden darüber zu reden.
Aber ich glaube, so die Frage, die sich die Zuhörenden jetzt vor allen Dingen stellen, nachdem sie uns schon ein bisschen zugehört haben, ist ja schön gut.
Hobbybetriebssystem, aber was ist der Use-Case? Warum macht ihr das?
Und vielleicht gehen wir da einfach mal drein nach durch und meine Frage wäre jetzt an dich, Mark.
Warum Serenity OS? Was machst du damit? Was ist deine Justification für diese Liebelei?
Meine Justification dafür ist eigentlich das Explorieren von POSIX-compliant Systemen.
Also von Unix Systemen und wie sie sich alle dann doch im Einzelnen unterscheiden.
Und um das nochmal zu wiederholen, auch die Entwicklung zu verfolgen, in einer heutigen Zeit zum Beispiel einen Browser hochzuziehen, ist wirklich schmerzhaft.
Weil das Web sehr geblutet ist. Ich weiß gar nicht, wie ich das auf Deutsch sagen würde.
Aber es ist einfach sehr viele Techniken, sehr viele Sachen, die da zum Einsatz kommen mittlerweile im Hintergrund, damit eine Webseite funktioniert.
Das ist der Wahnsinn. Und Serenity zeigt mir immer wieder so ein bisschen, mit wie wenig oder mit wie grundlegenden Dingen man eigentlich auskommen kann.
Und wo wir eigentlich herkommen von der Betriebssystemseite her.
Ich meine, wenn man sich jetzt anschaut, wie dick der Linux-Körner mittlerweile ist und wie groß der wird.
Und das wird immer mehr Sachen, die teilweise vielleicht auch einfach immer mehr historisch wachsen.
Ich will das jetzt gar nicht kritisieren, weil das passiert halt einfach.
Aber man muss sich da trotzdem immer wieder bewusst machen, dass einige Dinge vielleicht auch gar nicht so notwendig sind.
Und bei Serenity OS sehe ich immer wieder, das muss ich da immer wieder loben, einfach ein gutes Bewusstsein, was man wirklich drin haben will im Betriebssystem.
Und vor allem auch diese Mentalität, dass man alles selber schreibt.
Man nimmt sich damit sehr viel vor. Man macht es sich damit nicht einfacher.
Aber es macht natürlich auch viel mehr Spaß und man hat mehr Kontrolle über das ganze System.
Und man lernt halt unglaublich viel.
Also von daher, Use Case aktuell, wie gesagt, dieses mehr so Explorer-mäßiges, Hobby-mäßiges drüber schauen.
Und ja, eben diese Begeisterung für Betriebssysteme, würde ich sagen.
Ich habe allerdings auch schon von vielen Leuten gehört oder von vielen öfters mal den Wunsch gehört, eine Server-Version wäre mal ganz toll ohne GUI.
Und da würde ich mich anschließen. Das fände ich auch richtig, richtig cool. Aber ja.
Also dazu kann ich sagen, es ist ziemlich einfach, den Kernel kurz im Text-Mode laufen zu lassen.
Da gibt es eine Kernel-Command-Line-Option.
Und man kann von Hand in den Inidateien, die im System drinstecken, alle möglichen Programme an- und ausschalten, die beim Start hochgefahren werden.
Und da lässt sich was sehr, sehr kleines, sehr, sehr Server-fähiges in 0,0 nur mit Inikonfiguration zusammenbauen.
Guck mal, das werde ich mir mal anschauen.
Vielleicht noch nicht ganz production-ready, aber ja.
Also NixOS war gestern, heute ist Serenity OS, also nehme ich jetzt mal mit.
Wir können doch nicht das ganze System mit Config-Dateien hochziehen, so alles.
Aber da ist viel State, sage ich mal, im Git Repo. Das macht ja auch Sinn.
Also wir wollen nicht, oder bisher wollte keiner, das ist ja eher die Formulierung, die man nutzen sollte.
Bisher wollte keiner NixOS draus bauen, mit voller Durchkonfigurierung von allem.
Sondern der State vom System ist eben im Git Repo, das Base File System.
Aber ich meine, lightweight ist es.
Ja, das ist auch das, was wir hier in den Notizen noch festgehalten haben.
Es ist wirklich leichtgewichtig im Sinne von, dass sogar ein überfülltes Disk Image ja auch nur so 2-3 GB weit sind.
Also mein Disk Image? Also ich habe einfach mal mein Disk Image gemessen und ich habe mehrere, ich glaube die Hälfte von meinem Disk Image sind nur Audio-Test-Dateien.
Wow. Ja, dann ist das wirklich leichtgewichtig.
Und Körnen mit 21 MB und der Bootzeit von irgendwas um die 20 Sekunden, das scheint mir auch recht performant und sehr schlank zu sein.
Wie sieht das denn bei dir aus, Network? Also ist das bei dir natürlich ein Entwicklungssystem, aber hast du irgendwie so einen Use-Case, wo du sagst, das ist meine Anforderung und das wird halt ideal abgedeckt von Serenity OS?
Nicht wirklich. Also ich bin glücklicher Linux-Nutzer so auf meiner Development Workstation, I guess.
Darüber hinaus, es wäre natürlich schon sehr, sehr cool, wenn man irgendwann, sage ich mal so die ganzen Workflows, die man auf Linux laufen lassen kann mit einem Browser, der irgendwie YouTube-Videos gucken kann und E-Mail lesen und so wirklich alles.
Wenn man das auf Serenity OS machen könnte, weil dann hat man ein System, wo man selber schon mitgearbeitet hat.
Ich meine, ich könnte auch zum Linux-Körner contributen, aber C kann ich noch weniger.
Vielleicht dann Rust. Naja, auf jeden Fall. Man hat dann schon mitgearbeitet und ich mag das Projekt sehr gerne.
Also wäre das, sage ich mal, so ein Dream schon. Aber ich weiß, also ich persönlich bin jetzt nicht so, okay, jetzt fange ich an und dann in 15 Jahren, so lange dauert es, habe ich mein perfektes System.
Und dann stecke ich da die Zeit rein, sondern ich mache das nebenbei, weil es mir Spaß macht und wenn was bei Roms rumkommt, was man in Production auf oder auf persönlicher Hardware ordentlich laufen lassen kann, wäre das super.
Aber ich mache es zum Spaß. Also das ist jetzt gar nicht so das Ziel für mich.
Wie Sie das bei dir ausmachen würden? Was ist Deiner Justification?
Das ist eine echt schwierige Frage. Also am Anfang habe ich es einfach nur gemacht, weil ich Spaß hatte, Code zu schreiben in einem System, wo extrem viel fehlt.
Wir haben schon einiges darüber geredet, was alles schon da ist, aber das soll nicht davor verstecken, dass einfach alles Mögliche noch fehlt.
Und ich fand es einfach cool zu sehen, dass ich reingehen konnte und sagen konnte, okay, dieses System fehlt, ich mache es jetzt einfach.
Eine der ersten großen Projekte, die ich gemacht habe, ist, ich habe das Audioformat Flak, das die ein oder anderen Audiophilen sich erkennen, habe ich komplett von Grund auf implementiert.
War nichts vorher da. Ich habe eine komplette neue Implementierung geschrieben und da habe ich wahnsinnig viel dabei gelernt.
Ich würde sagen, das war so der Auslöser für mich, dass ich jetzt ein Datenkompressions- und Audioprogrammierungsnerd bin, keine Ahnung.
Das war einfach eine wahnsinnige Experience, die gibt es sonst in keinem System, außer man schreibt das Ding so an sich alleine stehend, aber das ist ja nicht so cool, wie das standardmäßig in einem Betriebssystem drin zu haben.
Hunderte, vielleicht sogar tausende Leute nutzen das. Das ist die eine Sache.
Die andere Sache ist, dass ich auch vielleicht mal das GAN als Serversystem nutzen würde, auch nur so experimentell auf meinen Raspberry Pis, die rumliegen und nichts tun, wäre das mal ganz cool.
Also da bin ich bei Marc. Abgesehen davon habe ich einfach nur Spaß.
Sehr schön. Ich glaube, das ist auch das Wichtigste bei so einem Projekt, dass man einfach Spaß dran hat. Ich fände das auch sehr spannend, das einfach mal aus einem Embedded Board laufen zu lassen.
Im Moment läuft das, glaube ich, nur auf Intel x86 64-bit, wenn ich mich recht entsinne. Oder wie sieht da der Support aus?
32-bit.
Ja, beides. ARM 64, glaube ich. Aarch 64 ist die offizielle, ich kenne mich da nicht so gut aus, aber das ist das in Arbeit.
Das wird, glaube ich, auch in dem Update-Video erwähnt. Sonst war es auf jeden Fall in diesem Monat auch dabei im Changelog, also in den Commits, wir haben kein Changelog für Releases oder so.
Es kommen immer wieder kleinere oder Dinge einfach hinzu, um den Support zu verbessern. Ich glaube, es war Interrupts diesmal.
Aber da merkt man ja schon, es fehlt an den Grundstein von so einem System. Timer, Interrupt und so weiter.
Und das kommt aber, sage ich mal, da arbeiten Leute aktiv dran und irgendwann ist es vielleicht so weit, dass dieser Grundpfeiler quasi das komplette System tragen kann und dann hat man natürlich schon den Rest des Kernels und des User Space fertig.
Also es ist letzten Endes nur ein Port zu einer neuen Architektur. Und das hatten wir eben auch schon mit 64-bit gemacht. Anfangs war es nur 32-bit.
Und jetzt, also ich benutze persönlich immer die 64-bit-Version, das habe ich mir einfach so angewöhnt, die funktioniert super. Ich würde sagen genauso wie 32-bit.
Ist vielleicht für mein QEMUR etwas angenommen zu handeln, aber ich habe keine Benchmarks gemacht oder so.
Und ich hoffe auch persönlich, ich habe auch noch ein paar Rest Reply's rumfliegen, dass das vielleicht das erste Stück Hardware ist, auf dem ich das mal wirklich installiere, weil alle anderen Geräte, die ich habe, sind zu neu oder brauche ich aktiv und habe dann nicht so wirklich die Möglichkeit, das mal darauf Serenity OS on Hardware laufen zu lassen.
Weil das haben auch schon Leute hingekriegt. Also wäre jetzt keine Rarität oder? Na ja, wie man Rarität definiert in dem Kontext ist vielleicht.
Wäre schon eine Rarität, aber der erste wärst du nicht.
Ja.
Was ja häufig so der erste Schritt ist, wenn man sich das Betriebssystem angeschaut hat, ist, dass man so mal ein bisschen erkunden kann, wie das alles so aussieht, welche Tools da so mitgeliefert werden.
Also da ist auch ein funktioneller Webbrowser mit dabei, den habe ich mal ausprobiert. Der war auch echt in der Lage, aktuelle Webseiten darzustellen.
Und ihr habt ja auch schon von Browser Benchmarks gesprochen.
Aber was ist denn, wenn ich jetzt so eine Anwendung suche, die es da nicht gibt?
Da gibt es so eine tolle Dokumentation auf der Seite und die beschreibt das Portieren von Anwendungen.
Damit hast du dich hier auch schon ein bisschen auseinandergesetzt, Mark.
Schla uns mal auf, worum geht es da? Wie kriege ich meine tolle, selbst programmierte Anwendung eben auf Serenity OS zum Fliegen?
Ja, ich habe das auch in meinem Video damals gezeigt und daher habe ich mich damals so ein bisschen mit dem Portierungsprozess beschäftigt.
Also nicht zu sehr in-depth, würde ich sagen, aber ich habe zumindest das Grundprinzip, was ich mal so ein bisschen versuchen kann zu erklären.
Also aktuell ist es so, dass es um die 230 Ports gibt. Also als Port würde ich dann Software bezeichnen, die normalerweise nicht für Serenity direkt geschrieben ist,
dennoch auf Serenity dann lauffähig gemacht worden ist.
Und letztendlich läuft das so ab, dass es in dem Git Repository einen Ordner gibt namens Ports.
Und dort ist beispielsweise auch auf GitHub kann man das gut sehen, die Dokumentation dieser ganzen Geschichte und auch eine Auflistung aller Ports.
Zusätzlich gibt es jetzt auch eine Seite, eine ganz normale Webseite, wo man eine bessere Übersicht nochmal von den Ports hat,
die denke ich wir auch mal in den Show Notes verlinken werden. Das nur am Rande.
Ich kann jetzt aber auch mal kurz so zwei, drei Beispiele geben. Also Bash zum Beispiel läuft auf Serenity, Python, PHP, aber auch so Spiele wie ToxRacer oder Doom oder sowas läuft auf Serenity OS mittlerweile.
Und letztendlich ist der Grund natürlich dafür, dass eben wir uns letztendlich in der gleichen POSIX-Umgebung befinden wie bei vielen anderen Systemen auch,
sodass nicht riesige Umbauarbeiten für Software, die für Unix-artige Systeme geschrieben ist, notwendig sind, damit es auf Serenity läuft.
Konkret läuft das dann so ab, dass für jeden Port gibt es einen Ordner in diesem Ports Ordner mit dem jeweiligen Namen des Ports, also zum Beispiel vim.
Und wenn man in diesen Ordner reingibt, gibt es da eine Package.sh, das ist letztendlich ein Bash Script,
wo diverse Informationen zu diesem Paket, nenne ich es mal, stehen. Also zum Beispiel die Version, den Name und die URL, wo man sich den Quellcode runterladen kann.
Beziehungsweise dieses Script wird dann ausgeführt, der Quellcode wird runtergeladen und dann werden sogenannte Patch-Dateien applied.
Also Patch-Dateien sind letztendlich ein Abbild von den Sachen, die verändert werden müssen und die werden dann automatisch übernommen in den Quellcode und dann wird das Ganze gebaut.
Dieser Bauprozess, wenn man jetzt selber eine Anwendung hat, die man portieren möchte oder wenn man damit anfangen möchte, ist eigentlich, dass man es einfach trial and error durchgeht.
Das ist ganz interessant, der Andreas Kling hat das auf seinem YouTube-Channel auch schon bei einigen Projekten oder bei einigen Ports gezeigt, wie das funktioniert,
wie er da rangeht. Letztendlich läuft es überhaupt, dass der Source Code runtergeladen wird und man einfach mal probiert, das Ganze zu bauen, schauen, wo gemeckert wird und macht dann die Änderungen
und schreibt das in diese Patch-Dateien rein, sodass es halt beim nächsten Mal auch funktioniert. Und so ist man wie gesagt jetzt auch mittlerweile über 230 Ports gekommen.
Finde ich total interessant. Auch so ein bisschen diese Faszination, dass man sieht, dass es dann funktioniert. Also es ist total beeindruckend zu sehen. Ich meine, das Betriebssystem ist von Grund auf hochgezogen worden
und da läuft jetzt auf einmal Git oder Python oder PHP eben so richtig große Platzhörsche, die dann auf dem System laufen. Und das finde ich eine total tolle Umgebung.
Und naja, letztendlich, das ist so der Grundstein. Es gibt auch ein minimales Dependency-Management in diesen Package.sh-Dateien. Das heißt, auch Abhängigkeiten können da abgebildet werden.
Vielleicht gibt es ja irgendwann mal eine Art Paketzsystem, sowas wie dpkg oder sowas im kleinen Rahmen. Mal gucken.
Also die Sache mit dem Paketmanager, das ist nach dem ISO, glaube ich, die häufigste Frage. Und da ist so der Konsens, dass es wahnsinnig viel Arbeit macht, so eine Package Repository und Binary Repository am Laufen zu halten.
Das merken wir ja auch oder das ist so mein Eindruck, das ist so eine der großen Aufgaben, die die Distros haben und da stecken die viel Zeit, Arbeit und Menschen rein.
Und das ist eine Sache, die sich unser Projekt nicht geben möchte, weil es eben sowieso von Grund auf gebaut wird. Also warum sollte man nicht die Ports auch bauen?
Jetzt wäre es natürlich okay, wenn jemand ein privates Package Repository mit Pre-Builds macht. Das ist alles in Ordnung, das darf man gerne machen.
Aber was Offizielles wird es da wahrscheinlich nie geben, zumindest solange das Projekt in diesem Source-Only-Zustand weiter arbeitet.
Ein weiterer Grund dafür ist eben auch, dass alles, was das System oder was die Leute, die daran arbeiten, glauben, auf das System gehört, auch für das System im System gebaut wird.
Und zwar im gleichen Repository wie alles. Also das ist auch so ein Aspekt, wenn du etwas hinzufügst, dann bildet das automatisch, weil es in derselben Codebase ist, direkt gegen alles andere.
Das heißt, du hast natürlich alle APIs, aber wenn sich eine API ändert, dann geht auch alles, was darauf dependent, automatisch kaputt.
Das hat natürlich, sag ich mal, den Vorteil, dass jemand, der die API-Changes macht, direkt dann einfach hingehen kann und die Build-Errors fixen kann.
Und dann ist gleich alles wieder am Laufen. Das würde aber auch heißen, dass wenn Third-Party-Code im System läuft, dass schneller dazu kommen könnte, dass Dinge kaputt gehen.
Weil wir haben effektiv keine stabilen APIs. Das ist halt einfach kein Ziel oder nichts, was wir bisher angegangen haben.
Wenn man mal von POSIX absieht.
Ja, natürlich. Also es gibt Konventionen, die wir einhalten und keine Ahnung, jede Programmiersprache oder JavaScript, HTML, alles, was auf dem System läuft, ist natürlich auch getestet, dass es standard-compliant ist.
Aber eben Code-Dependencies, gegen die gebildet wird, können halt einfach jede Sekunde out of date sein oder kaputt gehen.
Das ist auch so ein Problem bei Ports. Das heißt, Ports sind oft, Gott, häufig nicht mehr lauffähig nach einer Weile.
Es gibt einige, die wirklich relativ dauerhaft up-to-date gehalten werden.
Auch wenn vielleicht Leute, die zum Beispiel in den Graphik-APIs OpenGL arbeiten, Programme zum Testen brauchen, irgendwelche Spiele, dann werden die natürlich dauerhaft maintained.
Aber das ist keine Garantie.
Und deswegen gibt es bis über die Ports hinaus auch keinen wirklichen Package-Manager. Das Einzige, was noch anzuführen ist, ist mehr oder weniger, dass man bestimmte Teile im Betriebssystem einfach nicht mitbilden muss.
Das heißt, man kann sich, bevor man ein Bild macht, aussuchen, welche Komponenten man beinhaltet haben möchte. Die Standard-Auswahl ist, denke ich mal, für jeden, der einfach nur mal gucken möchte, perfekt.
Ich glaube auch nicht, dass da irgendwas fehlt, aber man kann halt optional noch Dicke rausnehmen, wenn man die nicht haben möchte.
Und es ist viel vorhanden. Ich habe hier parallel mal in der Ports-Liste geschaut. Und um die Frage zu beantworten, die vermutlich den meisten unter den Nägeln brennt, ja, man kann darauf Doom spielen.
Das ist ja immer so die wichtigste Disziplin, dass wenn man was Neues gebaut hat, sei es jetzt Hardware oder Betriebssystem, will it run Doom, ist so die erste Frage.
Die können wir schon mal mit Ja beantworten. Die zweite Frage, will it run Crysis, würde ich eher mit Nein beantworten, aber da kann man ja bestimmt in Zukunft was machen.
Und noch nicht. Und das ganze Ports-Thema, wenn ich das so höre und mir das so anschaue, das erinnert mich halt schon auch so ein bisschen an das Ports-System unter BSD oder eben unter das Arch Linux AUR.
Das ist ja auch relativ ähnlich oder unter Crux Linux hat man ja auch so ein Konzept, wo einfach Leute nur Ports-Skripte schreiben und das kann man sich dann einfach ziehen und dann automatisch kompilieren lassen.
Im Prinzip ist es ja genau das, was hier zum Einsatz kommt und klar, das führt natürlich dazu, gerade wenn man viele Breaking Changes hat, dass man manche Ports eben dann doch nicht so funktionieren.
Da würde mich mal interessieren, habt ihr da irgendwie so eine Build-Pipeline, wo dann halt die Entwickler*innen, die da Ports schreiben, ihren Code ausführen können oder macht das jeder einfach selbst mit so einem Shell-Skript?
Wie muss ich mir das vorstellen?
Also für die Details bin ich nicht der richtige Mann und auch Network glaube ich nicht.
Da arbeitet gerade einer unserer Build-System Experten an einem schönen Blogpost. Den ersten Teil können wir auf jeden Fall verlinken.
Aber der grobe Ablauf ist denke ich sehr verständlich. Also es fängt an mit Shell-Skripten tatsächlich. Das Meta-Serenity-SH-Skript ist so der Einstiegspunkt für einen normalen Build.
Und das System intern strukturiert sich eigentlich in einen CMake-Build, der dann Ninja-Dateien generiert, die dann wiederum C++ bauen mit einem gepatchten GCC oder Clang-Compiler.
Dieser gepatchte Compiler muss natürlich vorher gebaut werden. Das ist der erste Schritt und ich glaube auch der, der am längsten braucht, wenn man sich das erste Mal das System anguckt.
Also bitte nicht abschrecken lassen. Das wird bei den folgenden Builds nicht mehr der Fall sein, dass man die komplette Tool-Chain eben bauen muss, den Cross-Compiler.
Und danach ist es relativ simpel. Man baut sich zuerst so eine kleine Sammlung an Binaries und Bibliotheken für das Host-System.
Das ist eben dieses Lagom, von dem ich gesprochen habe. Lagom ist ein schwedisches Wort, heißt "gerade genug" oder ist so ein kultureller Begriff, kann man mal googeln.
Und bedeutet eben, das sind nur so ein paar Bibliotheken, die wir brauchen, um den Build voranzutreiben.
Zum Beispiel sind da Codegenerators drin für domain-spezifische Sprachen und verschiedene andere Tools, die wir eben selber wieder geschrieben haben,
weil es wird ja nichts externes benutzt oder so wenig wie möglich. Und dann aber kommt es eben zum richtigen Build, was einfach bloß ein Ninja-Build ist oder
theoretisch auch ein Make-File-Build ist, der an die 5000 Build-Schritte hat, glaube ich, und dann eben die ganzen Binaries baut,
dann alles in eine EXT2-Partition schreibt und dann gibt es noch das Kernel-Image, das extra noch mal gelinkt wird. Und das wird dann von QEMU ausgeführt.
Man kann aber auch sich ein Grub-Image bauen lassen und VMware tut auf jeden Fall. Und wie gesagt, es gibt schon einige Leute, die es auf Bare-Metal zum Laufen gekriegt haben mit Grub.
Ich wollte mal kurz einhaken. Bei Ports ist eben dieser Prozess, also das ist nicht Teil des Prozesses, das heißt, diese Build-Steps betreffen jetzt nur das tatsächliche System.
Und wir haben auch meines Wissens nach keine Automatisierung, um Ports laufen zu testen. Ich weiß nicht, ich glaube, das war auch eine Frage.
Also laufen getestet, allein weil es bilden muss, um test zu laufen, wird halt das ganze System und dann halt auch im System noch mal genauer Funktionalität getestet.
JavaScript Engine oder so, aber Ports eben nicht. Deswegen gehen sie halt auch so schnell kaputt.
Aber das ist auch nicht so wirklich was, was wir anstreben, weil das halt sehr viele Ports sind, sehr viel Network Traffic, sehr viel Zeit, die dann in diese Ports gehen.
Und auch Tests für die zu schreiben, weiter über das Kompilieren hinaus, ist dann doch aufwendig.
Absolut. Jetzt haben wir ja auch schon so ein bisschen über den aktuellen Stratoscope gerade gesprochen, also boot-fähig auf wenig echter Hardware.
Haben wir auch hier in den Show Notes oder in unseren Notizen drin stehen. Was ist denn so der aktuelle Entwicklungsstand, wenn jetzt jemand noch nie davon gehört hat?
Das sind ja so die ersten Fragen. Na ja, kann ich damit Musik abspielen? Kann ich damit auf Dollar, HTML, Fünfseiter surfen?
Wie muss ich mir das vorstellen? Wie vergleicht sich da Serenity OS mit einem beliebigen BSD oder Linux Betriebssystem?
Gut, also vielleicht beim Browser mal angefangen, weil du HTML5 gesagt hast.
Da ist natürlich, sage ich mal, der Vorteil von Linux oder anderen Linux Systemen, vielen Systemen, dass die meistens schon eine andere Browser-Codebase einfach nehmen und selber benutzen.
Also der Firefox oder eben Chromium. Und da ist halt eben bei uns, wir bauen selber.
Das heißt, das funktioniert nicht so, wie man es vielleicht erwarten würde von einem Webbrowser, wenn man jetzt noch nie so wirklich seine so wirklich tief in dem Thema drin war oder
generell mal geguckt hat, was es so für andere Engines gibt oder so. Aber trotzdem laden Seiten, auch mit HTTPS in den meisten Fällen.
Es gibt noch einige Zertifikat Typen, die wir nicht können, aber das meist geht.
Und ja, man sieht dann meistens nach einer Weile warten, bis alles gefetcht wurde, sieht man halt eben die HTML Struktur bei Single Page Applications mit JavaScript.
Das ist etwas komplizierter. Ich glaube, so einige Proof of Concepts in Vue und ich meine auch React gab es auch schon mal, die liefen aber so große Webseiten.
Man sieht meistens eine Fehlermeldung. Entweder konnte was nicht geladen werden oder man sieht vielleicht eine Hintergrundfarbe und nichts.
Onscreen oder meine Discord ist relativ weit. Leute haben es eine Weile lang war, hatte Andreas auch Videos zu Discord gemacht, das im Browser hinzukriegen, dass es läuft, besser läuft.
Und da gab es noch einige Fortschritte und inzwischen lässt sich glaube ich sogar anmelden. Ich weiß nicht, ob man Nachrichten senden kann, aber es läuft schon zu einem gewissen Grad.
Aber was man nicht erwarten sollte ist, dass das Layout perfekt ist. Also eigentlich jede Webseite, bis auf vielleicht die Serenity aus Webseite selber, weil die sehr einfach gehalten ist, aber ich finde es auch schön, hat irgendwelche Probleme mit Styling und so weiter.
Man arbeitet natürlich dran, aber das ist einfach so ein riesiges Feld mit Flexbox und Grid und diese ganzen Webtechnologien, die dann irgendwie perfekt funktionieren müssen nach Speck, um das quasi ordentlich darstellen zu können.
Ich meine selbst bei Chrome, Firefox, Safari gibt es ja Unterschiede teilweise im Rendering und so weiter. Und da mag man sich dann vorstellen, wenn so eine riesige Organisation oder Firma das nur mit Mühe hinkriegt oder da wirklich Zeit rein investieren muss, um das perfekt hinzukriegen, wie das ein Hobbyprojekt, sage ich mal, wie viel mehr Arbeit da rein gehen muss.
Aber trotzdem bei JavaScript kann man so diese große Zahl nennen, 80 Prozent JavaScript Compliance. Das kommt dann von der Test262 Test Suite, die wir eben auch regelmäßig mit CI quasi testen.
Da gibt es auch eine schöne Webseite, wird denke ich mal auch noch mit den Show Notes kommen, wo man eben den Progress sieht, die Performance. Und da arbeiten wir dran, dass das besser wird.
Da gibt es auch so ein paar Spezialisten, die eben sich das auf die Fahnen beschrieben haben, die die Performance und die Coverage von JavaScript zu verbessern. Also es ist schon schon sehr beachtenswert, aber YouTube kann man zum Beispiel nicht gucken.
Aber das ist auch glaube ich halt so ein Thema, das muss einem einfach bewusst sein, wenn man sich jetzt mal so anguckt, welche Aktivitäten wir so in unserem täglichen Berufsleben so irgendwie haben und wie das mal vor 10, 20 Jahren aussieht.
Das hat sich einfach sehr vieles einfach ins Internet verlagert, also auch durch die ganzen SaaS-Angebote, die man irgendwie konsumiert.
Ein Rechner ist für viele Leute schlussendlich nur ein Fettklein, den man benutzt und die eigentliche Logik findet nicht mehr in Anwendungen statt, sondern halt in irgendwelchen Web-Applikationen und da tut sich einfach mega viel.
Also wenn man ein halbes Jahr raus ist aus diesem ganzen Web-Entwicklungs-Game, dann gibt es auf einmal ja wieder x neue Frameworks, neue Technologien, also auch die W3C-Spezifikationen.
Da gibt es ja auch wirklich en masse wieder Updates und neue Funktionen, die da mit reingehen. Von daher stelle ich mir das echt spektakulär vor, da eben mal selbst eine Engine zu programmieren, die dann auch noch größtenteils funktional ist.
Also ich habe mir auch mal so ein, zwei Websites aufgerufen, die sahen nicht so 100% perfekt designt aus, aber sie waren funktional und sie waren auch relativ schnell da und ich hatte keine Zertifikatswarnung.
Also da muss ich sagen, da war ich positiv überrascht. Ich habe da eher so diese Dillo Experience erwartet, das ist so meine Referenz für selbst programmierte Web-Browser.
Der ist sehr sehr schnell, aber der kann auch relativ wenig, also da muss ich sagen, da ist der Serenity OS Web-Browser umwelten besser.
Da kann man schon mal sagen, ist auf dem richtigen Weg. Jetzt haben wir hier noch stehen bootfähig auf wenig echter Hardware.
Ich kenne das nur als VM. Wo läuft es denn tatsächlich auch auf Blech? Also wo könnte ich es drauf installieren, wenn ich da Interesse dran hätte?
Ok, ja da gibt es eine Übersicht im Dokumentationsordner, bare-metal-installation oder so, oder eine Hardware-Kompatibilitätsliste.
Also im Endeffekt schildert alles drin, was Leute schon mal getestet haben. Es gibt ein paar große Probleme mit echter Hardware.
Das hat eben mit bestimmten Protokollen auf der Hardware-Ebene zu tun, also PCI und damit eigentlich auch PCIe können wir in der Regel.
SATA ist ganz ok, auf jeden Fall über IDE. NVMI scheint es einen Treiber zu geben, der ist aber ziemlich langsam, wenn ich es richtig weiß.
Wenn wir jetzt aber zum großen Thema kommen, USB ist praktisch komplett nicht vorhanden.
Also was es mit USB gibt, ist eine Bass-Enumerator und so. Wir können mal ein bisschen den Bass-Host, wie auch immer das Ding genau heißt, ansprechen und den fragen,
welche Geräte sind angeschlossen, aber wir können noch mit keinen Geräten reden. Und die nur so generische Treiber, die es ja im USB-Bereich schon gibt, die sind auch nicht vorhanden.
Also wenn man auf echter Hardware ist, dann muss man zum Beispiel auch eine PS/2 Tastatur und Maus anschließen können an den Rechner, ansonsten geht da gar nichts.
Und ansonsten, ja, deshalb sind Laptops auch gut geeignet, weil die meistens über PS/2 die Maus und das Trackpad und die Tastatur anschließen.
Und Grafikkarten technisch, also wir haben irgendwie ein Standard VGA-Interface, solange man das in der Grafikkarte richtig einstellt, sollte das gehen.
Für Intel gibt es glaube ich einen Native-Treiber und dann halt für die ganzen WM-Geschichten, also sowas wie Vert.io GPU und Box Graphics Adapter von WMWR, wenn ich es richtig weiß,
die laufen, aber das ist ja für echte Hardware nicht relevant. Aber Grafik sollte meistens oder häufig gehen und Sound ist jetzt nur AC97 Treiber.
Ob der mit echtem Intel HD Audio funktioniert, also was ja eigentlich jeder moderne Audio-Gerät, der nicht USB ist, ist Intel HD Audio, ob das mit denen geht, weil die eigentlich rückwärtskompatibel sind, weiß ich nicht, habe ich noch nie ausprobiert.
Noch niemand hat Sound zum Laufen gebracht auf einem echten Gerät, also es ist alles sehr sketchy und wir sind bei einer minimalen Menge an Treibern, hauptsächlich eben für die Virtual Machine Experience.
Und da muss man eben in diese Liste gucken, gucken ob man so ähnliche Hardware hat aus der Ära, gerade bei Prozessor und Motherboard vielleicht.
Und ansonsten ist da glaube ich viel Experimentier-Wille gefragt, aber wenn da die Zuhörer*innen Spaß dran haben, dann kriegen sie auf jeden Fall Hilfe im Discord-Channel.
Sehr gut. Und was muss ich mir vorstellen, wenn ich das eben in einer VM benutze? Was ist denn alles so an Anwendersoftware mit dabei? Also orientiert sich das auch so ein bisschen an der Softwareauswahl, die man so von früher kannte, so ein Notepad, irgendwie ein Wordpad oder was gehört da alles so mit dazu?
Ja, das ist ganz verschieden, weil es immer drauf ankommt, wer gerade an was Spaß hatte zum implementieren. Also ich habe hier ganz oben Multimedia stehen, das hat gerade Network auch schon angesprochen bezüglich des Browsers, zum Beispiel mit YouTube,
wo was halt nicht geht, weil wir überhaupt noch gar keine Videounterstützung haben in irgendeiner Form. Und was vorhanden ist, ist sehr gute Bildunterstützung für alle möglichen Formate. Es gibt auch einen Paint-ähnlichen Editor, es gibt ein Anzeigeprogramm und so und es werden auch obskurere Formate, ich sag mal obskurere Formate, damit meine ich eigentlich Formate, wo sich Microsoft nicht zu fein ist, um die zu implementieren in ihren Native Viewern.
Also sowas wie der neulich aufgekommene QOI, das ist Quite OK Image Format, haben wahrscheinlich vielleicht einige davon gehört oder auch eben verschiedene andere Formate, aber auch die Standardsachen PNG, JPEG und so weiter, ist alles sehr gut vorhanden.
Audio ist irgendwo in der Mitte zwischen Video und Bild, da habe ich eben sehr viel dran gearbeitet, da kann ich sagen, Flag läuft sehr gut, MP3 läuft sehr gut, mit der Ausnahme von ein paar Spezialformaten und WAF läuft praktisch einwandfrei.
Und genau, Audio gibt es jetzt nur Player, also ein Command Line Player, ein Optician Player, ein Graphik Player, da arbeite ich aber sehr intensiv an einem Synthesizer und es gab auch schon Ideen zu einem Sound Editor, also da wird sich sicher was ergeben, weil ich da auch dahinter sitze sozusagen.
Aber wenn wir jetzt mal zu Programmen außerhalb des Multimedia Bereichs, zu Programmen gehen, dann die Basics, die du gerade schon angesprochen hast, hier einen Text Editor gibt es, Terminal gibt es, GUI Utilities und schöne Einstellungsprogramme, wie ich finde.
Wie gesagt auch Theming Support habe ich vorhin schon erwähnt. Dann von den Office Anwendungen gibt es nur die Tabellen Kalkulation, Spreadsheet, das ist aber finde ich das beste Spreadsheet Programm überhaupt, wenn man mal von dem Fehlen an Formatierungen und den vielen Bugs absieht, weil man nämlich dort Formeln in JavaScript schreiben kann.
Und wir haben uns so ein paar eigene Formeln, also so ein paar eigene Funktionen für die Excel Funktionen überlegt und auch eine Zellen Syntax, wie man halt Zellen auswählt.
Und das ist alles sehr mächtig, unter anderem weil man auf alle Funktionen von JavaScript zurückgreifen kann und da frage ich mich dann immer wieder, warum Excel eigentlich so langsam und so umständlich ist, wenn ich dann wieder zurück zu Excel muss.
Also das kann ich kann ich jedem empfehlen, wer ein bisschen Spaß an Excel hat, der wird noch mehr Spaß an Spreadsheet haben.
Genau, die C++ IDE ist auf jeden Fall erwähnenswert, heißt Hack Studio, hat schon ordentlich Language Comprehension, Syntax Highlighting auch für andere Sprachen.
Man kann dann direkt einen Build Knopf drücken und dann führt der Makefile oder CMake aus.
Genau und E-Mail Client gibt es, der IMAP kann, alles andere nicht.
Und ich glaube auch kein Secure IMAP, aber besser als gar nichts.
Und dann natürlich, jetzt gehen wir eben zurück in die Ära von Windows 95 oder ein bisschen später und haben dort die ganzen Spiele reimplementiert.
Solitaire, Minesweeper, Schach, tatsächlich auch Wordle, Hearts, Spider, Solitaire, also verschiedenes in die Richtung.
Das ist alles alles sehr lustig, die finde ich auch laufen sehr gut, sind sehr amüsant.
Also wenn man einfach nur mal eine entspannte Runde solitaire im klassischen Stil spielen will, ist Serenity auch sicher eine gute Option.
Und allgemein muss man muss ich einfach noch mal zum Schluss sagen, so von dem was ich jetzt hier noch erwähnen möchte an Programm und Funktion, das alles instabil ist.
Also es gibt Crashes vorne, hinten, links und rechts.
Ich wollte vorhin kurz im Browser was ausprobieren und dann ist mir direkt der Konfigurations Server abgestürzt und hat gleich den ganzen Windows Server und das ganze Desktop Environment mitgenommen.
Also sowas passiert einem auf einer täglichen oder stündlichen oder manchmal minütlichen Basis.
Dafür gibt es einen schönen Crash Reporter, wenn er denn laufen kann.
Aber ansonsten ist es halt die "move fast and break things" Mentalität.
Und wer aber Bugs findet und so, das ist wie gesagt immer willkommen.
Also wir sind uns Stabilität interessiert und Stabilität ist toll, aber viele Leute haben mehr Spaß daran, Sachen zu implementieren, als sich um Stabilität zu kümmern.
Ja, das kommt dann irgendwann, wenn ihr mal eine gewisse größere User Base habt und so die Major Funktionen drin haben, dann glaube ich gibt es da bestimmt auch Potential, dass der Fokus dann mehr auf Stabilität liegt.
Und das ist halt so.
Also ich meine, wenn man sich eine Rolling Release Distro runterlädt, dann ist es ja genauso.
Da hat man halt eben auch Breaking Changes und hat Latest und Greatest und dann gehen halt Dinge auch eben einfach mal kaputt.
Und wenn man einfach und das muss man ja auch mal festhalten, das ist ja das Beachtliche an dem Projekt, einfach den Betriebssystem selbst einfach neu hochzieht, sich einen Webbrowser selbst neu aufbaut, sich dann Excel-Klon schreibt, der JavaScript Formeln hat, das sind da schon sehr beeindruckende Entwicklungen.
Und man kann ja nicht alles haben.
Also entweder Features, Selbstbauen oder Stabilität.
Du kannst nicht alles haben.
In dem Kontext wird mich auch mal interessieren, was denn so prinzipiell im Projekt die Zukunftspläne sind.
Aber jetzt seid ihr beiden ja in dem Projekt unterwegs.
Gibt es so was wie eine Roadmap in dem Projekt, so eine Wishlist oder wie muss man sich das vorstellen?
Also das gibt es gar nicht tatsächlich.
Das ist auch so ein bisschen Teil der Mentalität.
Man entwickelt für seine eigenen Ziele jeder selber.
Natürlich gibt es Trends. Also ich hatte ja schon angesprochen, als Andreas die Discord Videos gemacht haben, sind viele Leute dazugekommen und haben einfach am Browser gearbeitet oder an JavaScript.
Und so gibt es natürlich Trends.
Und da kommen wir vielleicht auch gleich noch mal zu einem neuen Trend, der sich so abgezeichnet hat.
Aber auf jeden Fall ist es so, dass es eben keine Pläne gibt. Jeder hat seinen eigenen Plan.
Und das ist auch so ein bisschen so ein Insider geworden.
Also ist der Plan to Implement X und dann gibt es den Discord Command slash Plan und der sagt Nein, es gibt keinen Plan.
Leute fanden das lustig, das nicht immer zu tippen.
Und jetzt sagt das unser Bot. Aber tatsächlich kann man kann man sich seine eigenen Pläne machen.
Und aber man kennt natürlich auch die Leute, also einen Linus, der ist bedacht, die JavaScript Engine voran zu bringen.
Das ist sein Gebiet. Manuel wird wahrscheinlich am Audio arbeiten oder an anderen Dingen mal sehen.
Aber jeder hat so ein bisschen seinen Bereich, vielleicht auch den Bereich, wo er angefangen hat oder den er selber hochgezogen hat, implementiert hat.
Da fragt man natürlich auch dann bei der Person nach, wenn was schief läuft.
Aber darüber hinaus hat jeder so seine eigenen Pläne.
Und vielleicht sage ich mal alle generell Ziele, die sie gut finden, sowas wie unsere eigenen Erfahrungen an dem Browser irgendwie in die in die Specks zu abstreben.
Sowas vielleicht. Ja, also da gibt es natürlich dann auch Leute, die die sich sehr gut darüber freuen, wenn das passiert.
Ich will gar nicht sagen, dass jeder seinen eigenen Bereich hat und sich gar nicht für die anderen interessiert.
Im Gegenteil, das ist eine Mentalität, die sich gegenseitig anfeuert, letzten Endes ja quasi neue Dinge zu machen.
Und wenn was gut funktioniert, dann gibt es, sage ich mal ordentlich Lob oder beziehungsweise die Leute freuen sich.
Aber es gibt generell nicht so wirklich Zukunftspläne.
Okay, ist ja auch nicht negativ. Also nach Motto alles kann, nichts muss.
Das kann ja auch durchaus positiv sein.
In dem Kontext vielleicht eine Frage, die auch ganz interessant wäre.
Was würdet ihr euch denn persönlich für das Projekt wünschen?
Gibt es so irgendeinen Feature, das ihr unbedingt gerne hättet oder irgendetwas, das euch persönlich fehlt?
Vielleicht fangen wir da mal bei Marc an.
Wenn du so einen Wunsch frei hättest, was könnte man an Serenity OS machen, damit du sagst, super, jetzt gefällt es mir noch besser?
Ich glaube, ich habe es vorhin schon erwähnt.
Hauptsächlich IPv6 Funktionalität.
Das finde ich ganz, ganz toll und würde, glaube ich, auch mal wieder ein zusätzliches Zeichen setzen,
dass eben Legacy IP ist und IPv6 ist die aktuelle Reversion.
Und das wäre so mein Wunsch, wenn ich das jetzt Sternstunde machen könnte und mir das wünschen könnte, dann würde ich das nehmen, glaube ich.
Sehr schön. Was sieht es bei dir aus, Network? Was ist dein Wunsch für das Projekt?
Gut, ich hatte ja schon mal gesagt vorhin, dass ich es im Idealfall gerne irgendwann auch auf Hardware laufen lassen würde und damit rum experimentieren würde
und vielleicht das sogar für Arbeit oder einfach zum Entwickeln zu Daily-Tasks verwenden würde, was schon ein bisschen utopisch ist.
Also jedenfalls, ich würde wahrscheinlich nicht daran arbeiten.
Jetzt spontan ist mir ehrlich gesagt ein Matrix-Client eingefallen.
Also ich bin ein Riesenfan von dem Matrix-Chat-Protokoll eben und wir hatten vor einigen Jahren auch einen IRC-Client implementiert.
Der ist entwegefallen, weil die Community einfach zu Discord gegangen ist und da, sage ich mal, gewachsen ist, wirklich sehr gewachsen ist,
kann man sich vielleicht vorstellen, IRC ist schon relativ kleine Usermenge, die das benutzt.
Und bei Discord ist einfach die Schwelle, um mal reinzugucken, viel geringer.
Aber eben ein Matrix-Client würde mich, glaube ich, interessieren, Nativa, eben mit Serenity UI, der nicht im Browser läuft und fände ich spannend.
Vielleicht mache ich das irgendwann mal selber mal sehen.
Manuel, wie sieht es bei dir aus? Hast du noch einen Wunsch?
Ja, also mein Wunsch ist eigentlich auch ein Wunsch an mich so ein bisschen oder auch an die Leute, die sich für Audio interessieren.
Und zwar mein Traum ist es eigentlich, dass wir eine vollständige digitale Audio-Workstation in Serenity haben.
Und da arbeite ich ganz intensiv drauf hin. Ich bin eben so ein bisschen so ein Musik-Nerd.
Ich habe mir Ableton gezogen und direkt mal irgendwie drei, vier, fünf Sachen komponiert.
Also ich bin komplett gehooked zur digitalen Produktion.
Und das fände ich wahnsinnig cool in Serenity zu implementieren, weil durch den ganzen Stack haben wir auch die Chance, die Latency extrem zu kontrollieren und wahnsinnig nach unten zu drücken.
Und das wäre so mein Wunsch, dass wir auch auf dem Pfad bleiben und dass andere Leute, die solche Ideen haben wie ich,
dass die da auch die Möglichkeit dazu haben, dass Serenity auch für ihre Idee das ideale System ist. Und ich glaube, wir können das alles gut kombinieren.
Vielleicht mal ganz interessant zu hören, was du, Christian, irgendwie dir vielleicht wünscht, um vielleicht auch selber nochmal deutlich nochmal auszuprobieren.
Ich denke, du scheinst ja wirklich sehr interessiert daran zu sein. Das finde ich sehr schön. Und du wirst wahrscheinlich auch, sage ich mal, dem Prozess über YouTube oder so folgen.
Aber was würde dich denn interessieren?
Also ich kann nur immer wieder zur Kenntnis nehmen, wie beachtlich es ist, dass in so kurzer Zeit das Thema so ein Momentum aufgenommen hat.
Und mein persönlicher Wunsch ist es einfach, dass dieses Momentum einfach anhält und dass es eben Andreas Kling und allen anderen gelingt,
noch mehr Leute von dem Projekt zu begeistern. Also das auf jeden Fall schon mal vorab.
Und prinzipiell würde ich es, glaube ich, schick finden, wenn man es wirklich hinkriegen würde, auch so Standard-Hardware ein bisschen da mit reinzukriegen.
Also klar, wir haben alle heutzutage Endgeräte, die in der Lage sind, Container und VMs auszuführen, ist gar kein Thema.
Aber ich glaube, in dem Moment, wo das wirklich auf typischer Commodity-Hardware, die man eben so hat, lauffähig wäre,
ich glaube, das kann dann so ein ziemlicher Katalysator sein, weil Leute dann vielleicht sehen, naja, ich habe hier irgendwie ein älteres Notebook,
da läuft halt kein Windows und kein aktuelles Linux mehr drauf.
Aber ich mache damit nur ein bisschen im IOC chatten oder ein bisschen Solitär und Doom spielen.
Und dann kann man vielleicht auch mit so einem Betriebssystem Hardware, die sonst eigentlich dem Tode geweiht wäre, noch mal so ein zweites Leben einhauchen.
Das ist mein persönlicher Wunsch, da ein bisschen außerhalb der Coemo-Welt das nutzen zu können.
Das würde ich mir auf jeden Fall wünschen.
Und die Frage, die sich mir jetzt noch so ein bisschen stellt, also wir haben rausgehört, wie euer Projekt organisiert ist.
Wir haben auch gehört, man muss nicht unbedingt super gut C++ können, also man kann auch sich in anderen Bereichen engagieren.
Wie kann man denn mitmachen?
Also wenn jetzt jemand von den Zuhörenden sagt, das klingt total spannend, ich würde mich da gerne irgendwie einbringen, wie startet man am besten?
Wie findet man raus, wo der Need ist und wie kann man das Projekt am besten erreichen?
Ok, da gibt es mehrere Möglichkeiten. Man kann direkt mal auf GitHub vorbei gucken, wenn man Code lesen möchte, runterladen möchte, installieren möchte und so.
Das ist der schnellste Weg darüber.
Genau, dann gibt es noch die Projektwebsite an sich, serenityos.org.
Da findet man alle möglichen Links unter anderem zum GitHub und zu anderen Sachen, die wir jetzt auch angesprochen haben.
Und dann natürlich, wenn man mit uns sprechen möchte, wozu ich sehr einladen möchte, wir sind alle ganz nette Menschen, dann kann man auf einen Discord-Server kommen.
Der sollte einfach discord.gg/serenityos sein, ist auch ein Partner-Server.
Und genau da kann man in verschiedenen Channels mit Leuten von verschiedenen Subsystemen sprechen und auch allgemein Fragen stellen.
Nur vielleicht vorher auch in die FAQs gucken, die haben wir jetzt schon so ein bisschen abgehandelt.
Aber gern nochmal gucken, es gibt einige häufige Fragen.
Wenn es irgendwelche Erwartungen gibt, vielleicht, dass wir nicht so die enttäuschenden Nachrichten überbringen müssen, weil das soll ja alles positiv bleiben.
Also genau, ansonsten gerne Fragen an den Discord-Server.
Das sind ja schon mal gute Möglichkeiten, da ranzukommen.
Also ich finde das total spannend, was wir heute gehört haben zu dem ganzen Thema.
Und ich bin auf jeden Fall mal gespannt, ob da vielleicht der ein oder die andere sich für das Thema begeistern konnte heute.
Ihr werdet es ja bestimmt merken, wenn ihr neue Leute auf einem Discord-Server abhängen habt oder wenn neue Issues auf GitHub irgendwie reinkommen.
Und habt ihr noch irgendwas, was ihr zuletzt loswerden wollt an die Zuhörenden draußen?
Das beste Argument, warum man jetzt unbedingt sofort mit Serenity OS beginnen sollte?
Habt ihr da was parat?
Es ist super spaßig.
Also tatsächlich, es gibt eine sehr interessante Entwicklung, wie ich finde.
Und zwar jetzt haben wir darüber geredet, wie alles selber gebaut ist.
Und irgendwie wir haben eine eigene Standard Library für C++ und der Kern und User Space, alles selber gebaut, bis auf vielleicht die Ports.
Und es gibt einen Blogpost, der ist auch nochmal in den Show Notes verlinkt von Andreas.
Der hatte sich doch mal einen Plan gemacht oder zumindest Gedanken, was das System für ihn in einigen Jahren, ich glaube, er hat sogar von 30 Jahren gesprochen,
quasi noch bedeuten würde bzw. wie er daran entwickeln möchte.
Und er hat festgestellt, dass C++ vielleicht, obwohl er damit am besten zurechtkommt und viele jetzt ja auch C++ können aus dem Projekt, vielleicht nicht die ganz beste Wahl ist, um vor allen Dingen sicheren Code zu schreiben.
Also man kennt es klassisch die Memory Corruption Fehler oder einfach Fehler, die auftreten, wenn man nicht richtig mit Pointer umgeht.
Wir haben zwar ja auch viele Smart Pointer, das wurde eingangs erwähnt, aber es kann dann trotzdem noch Fehler auftreten.
Und kommt vielleicht dem spitzfindigen Programmierer Rust ins Gedächtnis als sichere Programmiersprache, auch Low Level und sage ich mal viel, viel benutzt und gefeiert so in der letzten Zeit, auch in Linux.
Aber tatsächlich, Andreas hat es ausprobiert und er war nicht ganz so zufrieden, denn Rust ist seiner Meinung nach nicht so wirklich benutzbar oder gut benutzbar für unseren sehr objektorientierten Ansatz an viele Fragen,
auch in der UI-Programmierung. Und dann hat er eines zum anderen gefunden mit einer anderen Person, die schon lange dem Projekt folgt, auch im englischen Videos über den Fortschritt gemacht hat und sehr impressed war am Anfang mit JT.
So heißt die Person, hat er angefangen, zusammen seine eigene Programmiersprache zu entwickeln und seit, ich glaube, eineinhalb bis zwei Wochen ist das dann auch, ich mal, wurde das öffentlich gemacht.
Die wollten halt erst mal anfangen und gucken, wie das läuft. Und das hat das ganze Projekt so in einen Sog wirklich reingezogen.
Man kann es so ein bisschen sehen, auch in dem Commit Graph, Surrendered DOS geht ein bisschen runter und Jagd, so heißt die Programmiersprache, geht hoch.
Wirklich alle haben eigentlich schon mal drüber geredet.
Bin ich auch sehr schuldig, glaube ich.
Also insbesondere da der Bootstrapping-Compiler in Rust geschrieben ist, da wurde ich so ein bisschen reingezogen.
Ja, es ist schon sehr, sehr aufregend auch und interessant zu sehen.
Vielleicht persönlich ergibt sich dann auch für mich nochmal mehr Möglichkeiten, da ich jetzt nicht so C++ bewundert bin, dann am Betriebssystem zu arbeiten.
Das finde ich sehr schön, wenn ich dann einfach die Programmiersprache benutzen kann, wo ich vielleicht selber auch schon mal mitgeholfen habe.
Ich weiß, bei mir waren es nur typo, fixes und readme Sachen oder so, aber vielleicht kommt ja auch noch das eine oder andere Feature von mir.
Und damit hätten wir meines Erachtens nach auch diesen Self-hosted Approach, alles inhouse, alles selber gebaut, fast eigentlich abgeschlossen.
Also eigene Programmiersprache mit eigenem Betriebssystem ist schon so, glaube ich, eine der Dinge mit eigenem Browser drin, eine der Dinge, die schon wirklich sehr, sehr krass viel Arbeit sind und sehr einzigartig.
Und das einzige, die einzige Parallele, die ich so ein bisschen sehe und das bindet das vielleicht auch alles ein bisschen zusammen, wo Serenity herkommt und wo es hingeht und warum wir diese Struktur haben, ist Apple als Beispiel.
Also das sagt auch Andreas selber, er wurde davon beeinflusst oder er wurde geprägt von wie die Mitarbeiter, wie die Entwickler bei Apple arbeiten, denn sie haben auch vieles oder eigentlich ja alles inhouse gebaut.
Der Colonel Darwin, darüber Mac OS mit dem User Space komplett selber, eigene Cloud-Services und eben auch neuerdings tatsächlich die eigene Programmiersprache Swift, die vor allen Dingen, kenne ich persönlich aus der mobilen Entwicklung, das Objective-C quasi verdrängt oder ersetzt.
Und ähnlich wie Apple das macht mit Swift, denke ich, wird es oder ich hoffe, wird es auch bei uns laufen mit Jagd, dass wir langsam anfangen unsere C++ Codebase, wenn die Sprache erwachsen genug dafür ist, anfangen umzubauen.
Ich bin auf jeden Fall sehr gespannt, ich werde das weiterhin beobachten. Vielleicht bringt der Markt nochmal das ein oder andere Video raus, dann muss ich mir das alles nicht selbst erarbeiten, sondern kann das einfach nur konsumieren. Hast du da irgendwas geplant in Zukunft oder jetzt nach unserem Gespräch hier?
Also ganz ehrlich, ganz ehrlich ja, weil sich auch so viel getan hat im letzten Jahr natürlich rückblickend. Also da wäre es auf jeden Fall mal Zeit für ein Update-Video und der Markt anscheinend für deutsche Serenity OS, für den deutschen Serenity OS Content ist auf jeden Fall da, denke ich.
Oh ja, auf jeden Fall.
Also die ist ja auch relativ groß, als hatten wir, als wir da letzte Woche schon mal drüber gesprochen haben im Vorgespräch haben wir ja wohl auch festgestellt, dass es da sehr viel Deutschsprache gibt in diesem Serenity OS Projekt. Das war mir so gar nicht bewusst.
Also ich habe ja einfach mal auf Twitter gefragt, ob da einer Bock hat über das Thema zu reden und dann wart ihr beiden die ersten, die sich gemeldet haben und ich dachte so, naja, da wird sich eh keiner melden bei diesem Projekt, die sprechen bestimmt alle kein Deutsch.
Unglaublich, ne?
Ja.
Gut, okay, ja, da bleibt mir nur noch zu sagen, Marc, Manuel und Network, es war mir eine helle Freude, es war super, super spannend. Also ich habe ganz viel mitgenommen. Ich hoffe, den Zuhörenden hat es eben auch gefallen.
Genau, wir werden in den Shownotes auf jeden Fall viele Links packen, die in Richtung des Projekts gehen, das heißt Projektseite, Discord-Server, was alles erwähnt wurde, das werden wir auf jeden Fall verlinken.
Bei euch aus, wo seid ihr unterwegs, wenn vielleicht die Zuhörenden mit Ideen und Fragen direkt an euch kommen wollen? Wo kann man euch so antreffen im www?
Also, gut, natürlich der Discord-Server von Zrelnt, nochmal Werbung, aber auf meiner Webseite vielleicht und genauer dann auch auf Mastodon, also network-exception bei chaos.social bin ich gut zu erreichen. Guckt einfach, keine Ahnung, ich denke, das kommt auch nochmal in die Shownotes.
Genau, mich erreicht man auf Twitter, nicht auf Mastodon, noch nicht, keine Ahnung, unter Filmröhrchen beziehungsweise allgemein im Internet, unter kleines Filmröhrchen und da bin ich auch auf YouTube zu finden.
Auf meinem YouTube-Channel gibt es auch einige Sachen zu Serenity, auch im Andreas-Kling-Stil, also vielleicht auch wenn schon jemand das Format von Andreas kennt und es mag, dann fühlt er sich bei mir vielleicht ganz aufgehoben mit manchen meiner Videos, nicht alle, da kann ich keine Garantie drauf geben. Genau und ansonsten auch auf meinem GitHub.
Und mich findet man hauptsächlich auch auf Twitter, @officialventor ist da der Handel und ich berichte ganz gerne aus meinem Alltag als Linux-System-Administrator, teilweise mit wütenden Tweets, weil wieder irgendwas nicht funktioniert.
Und ansonsten natürlich auch auf YouTube, wo ich leider aktuell relativ unregelmäßig Videos zu diversen Themen zum Thema Linux, aber eben auch andere Betriebssysteme mache.
Sehr schön, wunderbar. Ja und an die Zuhörenden, euer Feedback ist uns natürlich immer sehr sehr wichtig, wir hoffen ihr hattet Spaß an der Freude. Wenn ja, sagt es weiter, wenn nicht, sagt es uns.
Also wir sind immer offen für Ideen, Wünsche und Tooltipps und das könnt ihr für gewöhnlich immer gerne auch auf dem E-Mailweg machen und zwar wenn ihr eine E-Mail schreibt an podcast@sva.de.
Auf Twitter sind wir auch zu erreichen, da über den Handel sva_focuson, wo ihr auch unsere anderen Podcasts und Blogposts findet und wir freuen uns natürlich auch immer sehr über Bewertungen über den Podcatcher.
Also wenn ihr Apple Podcast benutzt oder eben Spotify, könnt ihr auch sehr gerne über diesem Wege uns Bewertungen zukommen lassen und da freuen wir uns immer drüber, um die Sendung langfristig zu verbessern.
Also in dem Sinne, vielen lieben Dank, es hat mir sehr viel Spaß mit euch gemacht und vielleicht können wir ja einfach mal in einem Jahr mal so ein Update Podcast vielleicht irgendwie machen und gucken, was sich in dem Jahr getan hat.
Würd mich auf jeden Fall sehr interessieren, bin mir sicher, da hat sich bestimmt auch sehr viel getan. Ja sehr gerne. Ja, das wär jetzt eine gute Idee.
Gute Idee, genau. Super. Dann vielen lieben Dank und ja, bis zum nächsten Mal.
Tschüss. Tschüss. Tschau.
[Musik]