 Alles klar. Ja, herzlich willkommen. Ich bin Daniel und ich mache seit vielen Jahren jetzt schon alles Mögliche im Bereich von Softwareentwicklung und irgendwann bin ich mal so in die Richtung Firma gekommen und irgendwann auch ein bisschen mehr in Richtung Betriebssysteme, also wirklich Betriebssysteme auch zu entwickeln. Und da will ich jetzt mal so ein bisschen zu erzählen, wie ich da so zugekommen bin, ohne irgendwie wirklich Großalung zu haben, einfach mal ein paar kleine Sachen, wo ich einfach mal irgendwann angefangen habe und dann irgendwie tiefer reingerutscht bin. Bevor ich jetzt sehr groß los die Gewicht, einmal kurz ein bisschen so eine kleine Runde machen, wer kennt denn so überhaupt so verschiedene Betriebssysteme? Also fangen wir einfach mal an. Wer kennt dann so Windows? Schon mal gehört? Ja, da gehen natürlich alle Hände hoch. Wer kennt Dinox? Auch schon mal gehört? Ja, sind wir hier in der richtigen Bubble? Auch alle gekannt? Okay. Wer kennt BSD? Okay, alle Hände, glaube ich, fast auch alle hoch. Gestern hatten wir einen sehr coolen BSD Workshop. Da sitzt auch Benedikt, vielen Dank dafür. Sind auch tatsächlich 5, 6 heute da gewesen, sehr cool. Wenn ihr BSD nicht kennt, es gibt da viele Projekte, zum Beispiel FreeBSD. Schaut das mal an. Wer kennt Darwin? Wer kennt Mac OS? Warum sehe ich jetzt mehr Hände? Also Darwin ist eigentlich das System und Mac OS ist sozusagen das Branding on top, wo er noch ein bisschen mehr dazukommt. Darwin ist auch ein BSD-System übrigens. Zumindest so zur Hälfte. Also die haben das mit ein bisschen was anderes zusammen gebastelt. Gucken wir mal, wie kommt man eigentlich dahin, so Betriebssysteme überhaupt zu kennen, also abgesehen davon, dass man älter wird und irgendwie mehr Dinge findet? Das muss man irgendwie schaffen. Ich erzähle jetzt mal so ein bisschen, wie das bei mir so angefangen ist, wie das jetzt so mittlerweile so läuft, was ich gerade so mache. Dann werde ich einen kleinen Einschub machen und etwas über RISC-5 erzählen, was vielleicht auch schon einige hier gehört haben. Und dann so, wie es ja in der Zukunft von Betriebssystementwicklung aussieht. Wer das alles angefangen hat, da war ich noch sehr, sehr klein. Da hatte ich eigentlich so gar keine Ahnung. Da war ich, weiß ich, sagen wir mal 7 oder 8 so. Das waren so die Anfangsjahre. Ich habe Windows kennengelernt. Damals war Windows 3.11. 11 ist eine coole Zahl. Das ist mehr als 10. Als mein Vater damals ein Rechner. Da waren wir noch eine intakte Familie. Da war ich noch in meinem Elternhaus. Irgendwann habe ich ein 64 Geschenk gekriegt von meinem Onkel. Da habe ich einfach mal was kennengelernt. Das war irgendwie ein ganz komisch anderer Computer. Nicht so, wie ich das dann von einem Windows-Denken kannte, so mit Maus und so. Aber ich festgestellt, das ist noch viel älter. Das Ding war sogar älter als ich. Irgendwie komisch. Ich habe dann irgendwann später selber, habe ich dann auch noch mal irgendwie meinen eigenen PC gekriegt. Außer ein x86 basierendes System. Da war dann Windows 98 erst mal drauf. Okay, immer noch so Windows. Da habe ich irgendwann mal dieses Internet gekriegt. Das ging langsam los. Erst so mit dem Modem, dann irgendwann ISDN, dann irgendwann DSL. Und dann war ich irgendwann, als ich in der Schule war, mit Leuten unterwegs. Und irgendwann hat man was von diesem komischen Linux erzählt. Also keine Ahnung, was das ist. Da habe ich mich auch damit eigentlich nicht so interessiert. Wir hatten da auch so eine AG Arbeitsgühnemeinschaft, wie man hier in Deutschland sagt. Da habe ich mich überhaupt nicht interessiert. Ich kannte halt Windows. Okay, dann kann ich irgendwie basteln. Und ich habe damals auch schon mal mal so ein paar Sachen programmiert. In einer Programmiersprache, die heißt Pascal. Hat die schon mal irgendwer gehört? Ja, auch sehr, sehr viele Hände. Sehr gut, sehr gut. Ja, irgendwann hat mich dann doch mal ein Schuhkollege da überzeugt. Und hat gesagt, hey, guck dir mal hier an. Und jetzt ist gerade rausgekommen Fedora Core 1. Wer kennt Fedora? Ja, bekannte Linux-Institution, ne? Das war damals so richtig, richtig Alfa noch. Also das habe ich auch nicht so ganz verstanden, was da so passierte. Ich hatte zwar irgendwie so ein laufiges System, das war auch Grafe schon. Wie das wer so Linux und Grafiktreiber-Stories kennen, das war damals ähnlich kompliziert. Ich habe es nicht geschafft, eine hohe Auflösung irgendwie zu kriegen. Das war dann über 1640 x 480, auch wenn das noch nicht ganz so die Zeit von heute war, ist da sehr klobig aus. Natürlich auch so ein bisschen mit der Unterstützung der Hersteller zu tun, wie Grafikkarten so vertrieben werden. Naja, irgendwann, ich war ein bisschen älter, dann sind einfach mal so Dinge passiert. Ich hatte dann irgendwann so meine erste kleine Wohnung, da war ich noch gar nicht im Studium. Das war noch so eine kleine Zwischenzeit. Da habe ich mir einfach mal wieder so ein Rechner zusammengebaut. Da wurde aus XP draufgepackt. Das war damals so ein Erinner. Ich habe einfach neugierig. Ich habe ein bisschen geguckt oder habe ich irgendwas gefunden, das heißt Oberon. Hat schon jemand von Oberon gehört? Jetzt sehe ich nicht mehr so viele Hände. Ja, warum? Es ist auch ein bisschen ein mysteriöses Ding. Ich habe davon auch nicht wirklich groß noch mal in den letzten Jahren gehört. Auch wenn das noch irgendwie ein bisschen präsent ist, ist es auch ein spezielleres Betriebssystem. Da komme ich gleich nochmal ein bisschen zu. Das war sehr, sehr klein. Ich konnte das auf eine Disketter einfach draufpacken. Kennt ihr noch diese kleineren? Jetzt wollen wir genau die größten, aber so die kleinen. Da passen 1,4 Megabyte drauf. Da habe ich das ganze Betriebssystem draufpacken können. Ich habe das nochmal ausprobiert. Ich hatte echt keine Ahnung, wie man das irgendwie benutzt oder so. Irgendwann hatte ich so ein Mauskurs auch schon. Und irgendwie, ein bisschen konnte man irgendwie auf dem Bildschirm machen, aber ich kann momentan nicht klar, keine Ahnung. Irgendwann habe ich mal mal, weil jemand mir sagte, so Backups sind eine gute Idee. So, wer stimmt zu? Gehen auch alle hin und hoch. Ich habe mal so ein Nest geholt. So ein Network Attached Storage, um da einfach mal Daten rüberzuwerfen. Da war irgendwie so ein komisches vom Hersteller gehacktes Linux drauf. So, okay, keine Ahnung. Da habe ich manchmal so ein bisschen was gemacht, aber eigentlich auch keine große Ahnung gehabt. Ja, sollte halt einfach nur funktionieren. Da habe ich dann auch nicht weiter interessiert. Jetzt gehen wir mal kurz zurück. Wir sind ja hier so im Thema so von Raum und Zeit und so. So sah damals halt auch so eine typische Website aus, wenn die schon mal ein bisschen moderner war. Das ist die Website. Wer kennt das links oben? Etha. Das ist die Etha Zürich. Von da kommt dieses Projekt Oberon. Und auch die Sprache Pascal wohl, weil der Niklaus wird, der das damals alles gemacht hat. Er hat sowohl Pascal erfunden, als auch dieses Oberon System gemacht und auch sehr, sehr viele andere Sachen. Ich glaube, der ist eher so ein bisschen, ja, eher so ein lockerer Typ und der so Sachen direkt immer so rauspursaut und damit zu viel Werbung macht oder so. Weiß ich, ich ist eine Mutmaßung. Ich kenne ihn nicht, aber ich glaube, das hat immer so ein bisschen damit zu tun, wie die Persönlichkeiten sind, was zur Prominenz von so Systemen oder so führt. Naja. Jedenfalls irgendwann bin ich dann doch mal an so eine Uni geraten. Und an der Uni habe ich dann irgendwann wieder von diesem Linux Zeug gehört. Er sagte mir in der Schule, Uni-Kollege, also Kominetrone damals so, guck dir doch mal wieder Linux irgendwie an. Als dieses Windows, mit dem du immer so rumbach stillst. Und ja, es... Ja. Er meinte dann so, guck dir mal Ubuntu an. Ja, das soll ganz einfach sein so. Und wir hatten dann irgendwann mal so Hausaufgaben. Da hatten wir so ein Ding, das nennt sich Stage. Das ist so eine auf Python basierende Mathe Umgebung. Da kann man sehr coole Sachen nicht irgendwie machen. Ich muss dann auch irgendwelche Hausaufgaben damit machen. Dafür brauchte ich dann mal irgendwie so Bibliotheken, die ein bisschen neuer waren, als das was damals so in Ubuntu rum hing. Ich habe dann noch Bibliotheken genommen und boom, ist das System kaputt gewesen. Nach dem nächsten Update. Dann hat mein Freund mir gesagt, gut, wenn du mehr so speziellen Forderungen hast, dann guck dir mal Gen2 an. Dann habe ich dann gemacht, das hat echt gut funktioniert. Also wir hatten richtig gute Dooku und so, aber ich habe dieses BSD irgendwann mal entdeckt. Da ging es dann bei mir los. Ich war immer weiter neugierig gewesen. Der Kollege dachte mir damals auch schon, es ist ja, es gibt so ein sicheres System, das heißt OpenBSD und so. Ich habe dann halt einfach mal alles so ausprobiert. Verschiedene Linux-Distributionen. Dann habe ich halt diese BSDs irgendwie mir so ein bisschen angeschaut. Aber ich habe erst mal geguckt, was gibt es denn da wieder so alles. Muss man sich ja erst mal immer zurechtfinden. Nicht ganz so viel wie es Linux-Distros gibt. Das ist schon mal ein bisschen überschaubarer. Aber ich habe irgendwann was entdeckt, das nennt sich GhostBSD. Das konnte man einfach auf so ein USB-Stick packen und ausprobieren. Ungefähl in der gleichen Zeit, weil ich einfach ein bisschen recherchiert habe, der mittlerweile Haupthost sitzt auch da vorne benedickt. Ja, ungefähr zur ersten Episode war das auch. Da habe ich dann angefangen und jetzt zeige ich auch den Podcast. Seitdem durchgehend kann ich nur empfehlen, wer sich dafür interessiert. Und man glaubt, es gibt kaum immer noch ständig Neuigkeiten. Also in jeder Episode gibt es irgendwas cooles Neues, um das zu erfahren. Ja, da habe ich auch irgendwann mal OpenBSD ausprobiert. Das war ein sehr cooles Ding auch. Das war für mich auch für dann nochmal ein bisschen anders wieder und so. Und dann habe ich irgendwann auf eine Konferenz gegangen. Die OpenSUSE-Konferenz, damals war die Indro Brofnik, da sagte eine Kommilitonin von mir, ich bin da irgendwie in der Community, komme einfach mal mit zu dieser Konferenz. Das war so meine erste OpenSUSE-Konferenz überhaupt. Die Anekdote dazu ist folgende. Wir haben dann da einfach mal so ein bisschen USB-Sticks auch so vorbereitet, wo die Leute OpenSUSE ausprobieren konnten. Ich habe dann auch so mitgeholfen, immer so ein bisschen DD hier, DD da. Und dann habe ich dann so festgestellt, dass ich dann dann auch noch ein bisschen an den anderen sehe, sich daran, dass der dev slash SCA damals meine erste Festplatte war und nicht der USB-Stick, den ich da beschrieben habe. Also lief halt viel schneller. Meine Sticks, die ich dann herausgegeben habe, da waren auch eigentlich am Ende nichts drauf. Aber dafür war mein OpenBSD-Schrott, das war nämlich auf der ersten Partition auf meiner Festplatte. Da habe ich dann auch kennengelernt, wie das ist, so Partitionszabellen wieder herzustellen und so, dass ich dann irgendwo aushand mache, wo man jetzt auch nicht direkt eine beste Internetvermindung überall hat und so. Da musste ich im Hotel mit dem WLAN und es war kompliziert. Seitdem bin ich jetzt auf sehr vielen Konferenzen unterwegs. Halt auch mal mal so Vorträge. Irgendwann war ich auch auf der EuroBS-Dekon. Die war damals in Paris. Also von uns aus jetzt auch nicht zu weit weg. Das ging für mich ganz gut. Ich wohne im Ruhrgebiet, da ist das, drei, vier Stunden mit dem Zug. Da gibt da so ein Schnellzug, der fährt da einfach hin. Das ist das, was ich mir empfehlen. Geht auf Konferenzen, genauso wie hier auch. Es gibt ganz, ganz viele andere noch. Es gibt auch immer die Möglichkeit, irgendwie mitzumhelfen. Ich habe auch ein paar andere Sachen noch mal gemacht, so Kamerateam ausgeholfen. Da hatten wir noch nicht OBS Studio wie heute. Da war es noch ein bisschen hakelig. Macht das auf jeden Fall. Wer jetzt zum Beispiel gerade die Aufzeichnung hört, geht mal wirklich zu dieser Konferenz hin, guckt euch die Communities an, lernt Leute kennen. Das ist das Beste, was einem erfahren kann. Auch gerade, wenn man irgendwie im Berufsleben in die Richtung will. So ziemlich alle, die man hier anspricht, werden irgendwie sagen, dass sie bei irgendeiner bekannteren oder weniger bekannten Firma irgendwie arbeiten. Ich habe ja schon mit mehreren Leuten gesprochen. Einfach randomly. Ein paar davon sind zum Beispiel jetzt bei IBM hier gerade. Große Firma kennt man. Na ja, wie läuft das denn jetzt gerade? Ich bin jetzt hier, ich habe mal ungefähr 10 Jahre, 15 Jahre, nachdem, was ich da jetzt alles so gebastelt habe. Da habe ich ein gewisses Wissen angesammelt. Na ja, und mit diesem Wissen kann ich jetzt schon mal das Software bauen. Also ich weiß jetzt ein bisschen, wie das so funktioniert. Ich habe mal ein bisschen See gelernt, ein bisschen Java an der Uni noch. Endmell Assembly haben wir damals gemacht. Das sind halt so Mikrocontroller. Da waren halt damals so für die Lehre ganz interessant. Funfact, die Instruktionsarchitektur davon, die kam auch eigentlich von Studies. Studies habe ich dann später kennengelernt. Da sind damit irgendwann größer geworden. Und gerade durch Gentoo habe ich sehr, sehr viel dazu erfahren, wie das ganze Software-Ökosystem so aussieht. Also das ist alles im Programmiersprach, dann Interpretern und so weiter gibt, wie diese ganzen einzelnen Wirrendinge da so zusammenhängen. Dinge wie Desktop-Umgebung. Ja, das konnte ich also erstmal Software bauen und so ein kleines Hello World zum Beispiel machen. Das ist jetzt natürlich noch nicht groß. Also wenn es dann jetzt wirklich dahin kommt, irgendwie zu programmieren, ist doch noch mal ein anderer Schritt. Ich bin ja bald mal sehr neugierig gewesen. Das habe ich auch heute noch hauptsächlich bzw. Web- und App-Entwicklung. Auch ein bisschen Mobile kommt dazu. Haben wir immer irgendwie neue Sachen und ich gucke auch immer irgendwie, was tut sich denn so in anderen Bereichen? Wie ist das bei Betriebssystemen? Da gibt es auch immer wieder neue Sachen hier und da. Jetzt gucken wir doch einfach mal, was haben sich denn so für Betriebssysteme so in den letzten Jahren überhaupt noch so entwickelt? Wir sind ja hier in der Thema hier so Raumzeit, Plan 9 from Outer Space. Wer kennt den Film? Wer hat den gesehen? Ja, okay, 3, 2, 4. Okay, ich wäre aber ehrlich gesagt nicht gesehen. Aber es gibt ein Betriebssystem aus Bell Labs, das sind die, die auch damals UNIX gemacht haben. Die haben ihr System einfach Plan 9 gewonnen. Die haben irgendwie, was ich irgendwer kannte den Film und fand das irgendwie lustig, dann zu sagen, okay, es ist jetzt Plan 9, nicht from Outer Space, sondern from Bell Labs. Ist auch so ein bisschen schräg. Was ist da denn jetzt schon wieder? Na, haben wir da irgendwie versucht, Informationen zu machen? Das ist ein bisschen wie bei Auburn heute. Ich habe nicht wirklich was gefunden. Da wäre ich komisch irgendwie, weil haufenweise Sachen sind einfach irgendwie verloren gegangen. Das hat so ein bisschen damit zu tun, dass Bell Labs irgendwann so halbdicht gemacht wurde, dann hat irgendwie nunkehre so Restbeständen davon gekauft und so, ja, und wie das halt so ist, und dann entsprechend die Websites auch irgendwann mal so ein bisschen verloren gegangen. Aber ich habe da mal ein bisschen weitergeguckt und es gab davon tatsächlich noch andere Projekte, die abgegangen sind, zum Beispiel dazu sagen, je hannahannich habe ich gefunden, nein Legacy, nein Front, und dann gibt es irgendwie noch ein paar andere, die alle irgendwas mit Nein heißen, nicht mega viele, aber naja, wie es dann auch so ist, ich habe dann irgendwann mal, da war ich im Chaosdorf, das ist der Hackerspace in Düsseldorf, habe ich gesagt, ich probiere einfach mal was aus, da habe ich mir das Repository von Harvey OS geklont, habe einfach mal so eine Anweisung gefolgt, die waren damals einfach im Wiki beschrieben und konnte ich kompilieren, und das Beste war, ich konnte das sogar mit Klang auf meinem Hostsystem damals Repository kompilieren und in QMU einfach mal laufen lassen. Na hat euch das hier, Harvey, das hier ist das Maskottchen so, das hat so einen witzigen Schatten, der Schatten ist das eigentliche Maskottchen von Plen 9, das ist so ein Häschen namens Gländer und das hätt ihr auch hier unten in diesem Spiel, das hier ist Sokobahn, ich kannte vorher Sokobahn gar nicht, das habe ich dann dadurch erst kennengelernt, das war ein witziges Spiel irgendwie, naja, ich habe da halt ein bisschen damit so rumgespielt und dann irgendwann ist das gecrashed so. Ich hatte keine Ahnung was ich jetzt machen soll. Naja, was machen wir, wenn man Betriebssystem ausprobiert und das crashed, wegschmeißen oder reparieren? Die buggen? Ja, die buggen ist auch schon mal gut. Ja, davon hatte ich leider damals auch noch nicht so viel Ahnung. Aber ich habe dann erstmal gedacht, ok, irgendwie vielleicht im Immulator läuft das nicht so gut, wie ist das ja mit echter Hardware? Richtig Hands-On. Ich habe da einfach mal auf ein USB-Stick gepackt, weil auch dafür gab es Anleitungen, weil jetzt auch nicht weiter kompliziert. Es ist auch so ein bisschen irgendwie gestartet. Da hatte ich so ein bisschen was auch auf dem Bildschirm. Unter anderem dieses Hello, I am Harvey hat irgendwann mal einen Code reingebracht mit so einem Smile drauf, weil man sehr sympathisch. Ist leider nicht viel weitergekommen. So sah es im Endeffekt aus, weil es nicht so weit, dass ich da von einem Screenshot hätte zeigen können. Ja, da war ich dann wieder so ein bisschen verloren. Aber ich bin ja Web-Entwickler, und dann habe ich gedacht so, zum Punkt Debugging, ist das jetzt irgendwie Bestimmung? Ja, ich habe dann mal in das Slack-Team damals reingeschaut. Wir sind mittlerweile zum Matrix drübergezogen. Da habe ich da einfach mal so ein bisschen geguckt und Leute gefragt. Und zufälligerweise habe ich dann noch einen Bekannten getroffen, den ich aus der Open Source Firmerecke kannte. Ein anderer Bereich, wo ich auch schon seit vielen Jahren drinhänge. Der war zufälligerweise da, eigentlich gar nicht so zufällig, weil das Harvey-Projekt mit anderen nämlich gestartet hat. War wirklich einfach ein Zufall irgendwie. Oder vielleicht auch Bestimmung, ist das nicht so genau. Jedenfalls Debugging habe ich dann gemacht. Ich habe mir einfach mal den C-Code genommen. Der hat damals irgendwo eine Prüfsumme gemacht. Das war der Intel Ethernet Driver für eine bestimmte Kartengeneration damals. Da habe ich einfach mal die Prüfsumme-Implementierung in JavaScript nachgebaut und mal geguckt, hey, was ist denn da los? Dadurch, dass ich so ein bisschen Firmaentwicklung gemacht habe, wusste ich, wie ich die Firma aus meinem Laptop auslese. Und das ist nämlich genau das, worüber da die Prüfsumme gebildet wurde. Die haben da so zwei Bänke. Gibt es den einen und den anderen Slot. Und je nachdem, welcher aktiv ist, würde die Prüfsumme dann stimmen oder nicht. Weil es da nämlich einen so einen Bit gibt, das sagt, du bist jetzt aktiv oder halt nicht aktiv. Weil es wegschaltet, stimmt halt diese Prüfsumme nicht mehr. So habe ich angefangen, tatsächlich dann in die Betriebssystem-Entwicklung reinzukommen. Eigentlich bescheuert, aber, naja, JavaScript bringt einen zu Betriebssystemen. Jetzt machen wir mal einen kleinen Zwischeneinschub. Es ist nämlich sehr, sehr viel wirklich hier in den letzten Jahren passiert. Unter anderem Risk Five. Wer hat schon mal von Risk Five gehört? Okay, ich sehe fast alle Hände. Ja, für die, die sonst jetzt nicht wissen, ist eine relativ junge Prozessor-Architektur. Ja, irgendwie, die anderen, die sind alle schon irgendwie verbrannt. Dann haben Leute gesagt, hey, wir brauchen mal wieder einen neuen Befehltsatz, eine neue Architektur. Wir machen mal eine Risk-Architektur. Und zwar ist das schon die fünfte, die jetzt aus Berkeley kamen, deswegen Risk Five. Okay, soweit so gut. Was ist das denn eigentlich? Also, so eine Befehltsatzarchitektur, wenn man auf Wikipedia guckt, dann steht da, das beschreibt so das abstrakte Modell für ein Computer. Okay, gar was das jetzt genau bedeutet. Tatsächlich ist das auch gar nicht mal so viel einfacher zu beschreiben. Wenn man jetzt irgendwie anfängt, dann kommt man irgendwie sehr, sehr, sehr schnell in Details rein. Das wirklich in zwei Sätzen zusammenzufassen, ist schwierig, in einem ist recht. Na ja, aber ich kannte halt schon einige Befehltsatzarchitektur. Wie gesagt, ich habe so ein bisschen Ad-Mail-Assembly, die damals kennengelernt, wieder was völlig anderes. Und Risk Five habe ich einfach dadurch kennengelernt, dass ich mir mal so ein bisschen Firma angeguckt habe. Das war damals doch für X86, was so in den meisten Laptops hier bei uns gerade noch so rumgeistert, oder auch Desktop-Rechnern. Durch diese Firmaentwicklung habe ich dann irgendwann mal, ich habe einfach mal geschaut, so eine Hardware. Wir haben gerade so die ersten Chips draußen. Einer davon war der Allwinner D1. Und ich habe hier auch mal was mitgebracht. Das ist hier einfach so ein kleines Entwicklungsbord. Ja, so groß wie so ein, keine Ahnung, Schoko-Riegel oder so. Da ist einfach mal so ein 1Ghz-Prozess darauf. Das, was man vor, weiß ich, 20 Jahren oder so in der Größe hatte. Irgendwie so Platine mit allem und so weiter. Das ist jetzt heute so kompakt und mini klein. Sehr, sehr cool für unterwegs zum entwickeln. Ja, und dann habe ich das einfach mal gemacht. Und dadurch habe ich dann jemanden kennengelernt, nämlich den Michael Engel. Der ist leider jetzt nicht in diesem Raum, sondern dann drüben, weil er den Loot Workshop macht. Der ist tatsächlich hier an dieser Uni auch dozent, der unterrichtet hier Betriebssysteme. Und hat dann irgendwann mal gesagt, hey, komm noch mal nach Bamberg und erzähl mal hier unseren Studio so ein bisschen was von diesem Orbit-Projekt und was du hier so machst und so. Und ich habe gesagt, okay, da war ich ein paar Mal hier. Irgendwann zwischendurch war ich dann auch mal so ein bisschen davon erzählt. Naja, das war jetzt die Kurzgeschichte, warum ich tatsächlich heute hier bin und genau hier stehe. Ich weiß nicht, ob ich sonst tatsächlich in Bamberg gekommen wäre. Naja. Und jetzt will ich mal in die Zukunft schauen. Jetzt wird es wirklich interessant, weil tatsächlich, auch wenn eigentlich Betriebssysteme schon sehr, sehr weit sind, es gibt immer noch sehr, sehr viel, was gerade geforscht wird. Und das eine ist, ich grabe jetzt nochmal dieses uralte Plan 9 aus, da gibt es tatsächlich noch viele Leute, die da auch aktiv dran sind. Und mit viele meine ich jetzt nicht 10.000 oder so, sondern vielleicht eher so 100. Aber dass man schon mal so eine gewisse Orientierung hat, also es gibt Leute, die arbeiten damit, es gibt Leute, die arbeiten daran. Und dazu gehört ein Workshop, der International Workshop on Plan 9, IWP 9 for short. Der ist zuletzt gewesen vor 10 Jahren. Eigentlich wollten wir das letztes Jahr schon machen. Aus Gründen, ihr wisst, ist das ja dann noch nicht passiert. Aber dann dieses Jahr haben wir mal wieder ein International Workshop on Plan 9 gemacht. Und das haben wir in Kanada gemacht. Auch irgendwie so ein bisschen witzig, weil jetzt gerade ist das Jahr des Hasen, das eigentliche Maskottchen von Plan 9 ist ein Hase, das kleine Maskottchen. Keine Ahnung, ob das Zufall ist. Wir waren auch in Kanada witzigerweise in einem Café, das nannte sich The White Rabbit. Es kann auch für alles Bestimmung sein, wenn man daran glaubt. Wir saßen dann da jedenfalls zusammen. Wir waren irgendwie 2.000 Leute oder sowas um den Dreh. Und wir hatten tatsächlich 3 Tage voll durch Programm. Wir hatten hoffenweise Vorträge. Wir hatten dann irgendwann auch noch ein Workshopraum, wo wir da auch an verschiedenen Projekten rumgehackt haben und so. Sehr, sehr cool. Am Ende kam auch ein Pamphlet daraus. Das könnt ihr euch auch runterladen, die Proceedings hier. Das war das thematische Logo dazu. Ich habe mich nicht draufgeschrieben. Könnte ich jedenfalls viele Sachen anschauen. Da war alles mögliche dabei. Unter anderem auch Dateisysteme. Was sehr, sehr spannend ist auch heute noch. Jetzt werde ich mal wieder gucken. Jetzt habe ich ein bisschen viel über Betriebssysteme erzählt. Was ist denn jetzt eigentlich so ein Betriebssysteme? Es ist eh nicht kompliziert zu beschreiben, wie befehlt es als Architektur. Wenn man das nicht 20 Jahre schon macht, kann man das nicht in einem Satz beschreiben. Auf Wikipedia steht wer was, einen Satz. Betriebssystem ist irgendwie System Software. Das macht ja Ressourcen und stellt Dienste bereit für Computerprogramme. Okay, sagt jetzt auch irgendwie nicht viel aus. Das kann auch alles mögliche wirklich sein. Irgendwie ist das auch so. Es gibt tatsächlich Betriebssysteme in allen möglichen Bereichen. Es macht es auch so ein bisschen schwierig. Man muss sie schon irgendwann klassifizieren, wenn man ein bisschen konkreter werden will. Ich habe gerade schon erzählt, Michael Engel, der unterrichtet hier, wie das aussieht, überhaupt Betriebssysteme zu bauen. Er macht etwas, das sind sich die Systems Engineering. Das heißt, im Konkreteren im Prinzip Software Engineering und dann bezogen auf Betriebssysteme. Beziehungsweise im speziellen unterrichtet er erst mal, wie man so Kernel entwickelt und was da so alles zugehört, weil das sonst ein bisschen viel wäre. Ein komplettes Betriebssystem mit Compiler noch selber bauen und keine Ahnung, was da so ein bisschen viel. Naja, ich habe mal so ein bisschen jetzt aufgelistet, was da so alles reingehört. Das eine sind irgendwie Datenschrukturen. Und irgendwie Software macht so Datenschrukturen, sind immer eine gute Idee, kann man immer gebrauchen. Speicher, Ressourcen, Verwaltung, das muss man irgendwie hinkriegen, egal wie man es irgendwie drehen will. Sobald man irgendwas machen will, wirklich sinnvoll. Das ist ein sehr, sehr wichtiges Ding, aber auch sehr, sehr kompliziert. Also wer irgendwie mal in der letzten Zeit was von Stack Overflows oder Heap Overflows grundsätzlich irgendwie Memory Corruption oder so gehört hat, all diese Probleme, die wir so haben, kommen daher, die Verwaltung halt leider nicht so einfach ist. Versuchen aber unser Bestes. Prozesse und ja, das Scheduling von Prozessen, also welcher Prozess ist wann an der Reihe, welcher hat irgendwo gerade mal Vorfahrt und so. Das ist eine Sache, die kann sehr, sehr simpel sein. Und irgendwie so einfach mal so ein kleines Miesystem machen wir mit zwei Prozessen, die einfach nur Ping-Pong machen, die haben gleiche Berechtigung, die haben gleich viel Zeit, die sie in Anspruch nehmen können. Easy-Peasy, auf manchen so kleineren Systemen zu fahren, wenn man jetzt irgendwie so ein Desktop hat, dann wird das schon ein bisschen kompliziert haben. Muss man sich so ein bisschen darüber Gedanken machen. Okay, ich habe jetzt so Benutzerschnittstelle, die soll immer responsive sein, aber ich will trotzdem Workload im Hintergrund haben können. Da muss man ein bisschen balancieren. Dazu gehört dann auch die Kommunikation zwischen den Prozessen. Also wenn ich jetzt einen Prozess habe, der irgendwie mit einem anderen was zu tun haben will, da gibt es verschiedene Wege. Man kann irgendwie Speicherbereiche fest sagen, dass wir da irgendwie rauslesen und so, und wenn das nicht gescheit koordiniert ist, dann passieren grude Dinge. Das kann echt auch unschön werden. Man hat auch wieder mit diesen Memory Management so ein bisschen zu tun. Und das ist auch ein Bereich, wo man noch ein bisschen weiter forschen könnte, denke ich. Dann Dateien und Dateisysteme, aber ich habe gerade auch schon erzählt, ist das, wo noch immer ein bisschen was gemacht wird. Wer hat dann schon mal alles von ZFS hier gehört? Wenn ihr denkt, natürlich macht der Workshops darüber, das ist ein junges, modernes, naja, okay, nicht zu jung, aber das ist ein modernes Dateisystem. Das kam halt von diesem Use Case von, hey, wir müssen ganz, ganz viele Daten speichern. Die müssen gut gesichert sein. Und da muss man sich irgendwie Lösungen verschaffen. Und das funktioniert halt nicht immer mit Dingen, die es halt schon lange gibt. Da muss man halt immer mal so ein bisschen gucken. Vielen Dank für die neue Beleuchtung. Es gab tatsächlich auch bei unserem kleinen Einworkshop, habe ich erzählt, das ist ein neues, das heiße System, was da vorgestellt wurde. Das wurde GEFS genannt. Gefs, das kann für zwei Dinge stehen. Also der eigentliche Titel war Grand Experimental File Shredder, naja, das war der Scherz-Titel. Tatsächlich stand es für was anderes, aber das war so der kleine Scherz-Titel. Good enough File System. Das war einfach so die Idee, hey, wir machen was das erst mal gut genug, aber wir wollen mal was Neues einfach ausprobieren. Das ist eine Sache, die gerade bei Betriebssystemen sehr, sehr schwierig noch ist. Also mal eben so ein neues Betriebssystem zu machen, um ein bestimmtes interessantes Feature mal zu probieren, ist leider sehr schwierig. Deswegen halte ich das auch für sehr sinnvoll, sich damit mehr zu beschäftigen. Was sind Betriebssysteme, wie kann man damit arbeiten? Gerade einfach auch mal um Innovation zu betreiben. Kann ich auch empfehlen, sich das Paper mal anzuschauen? Da wurde nämlich etwas gemacht, was in ZFS theoretisch auch da sein könnte, was sehr, sehr cool wäre, dass es nicht einfach zurückportiert werden könnte. Hat bestimmte Gründe, aber ja, wie gesagt, auf jeden Fall mal reinschauen, ist sehr, sehr cool. Treiber, das ist leider so das Allerletzte. Wir haben so viel Hardware mittlerweile, es gibt Millionen von Treibern, allein im Linuskörner für alles Mögliche. Ich habe mir irgendwann mal als ich halt hier mit diesem Ding hier abastelt habe und auch mit anderen Geräten habe ich mir mal angeschaut, hey, wie können wir denn ein Treiberabstrahieren für serienische Hinstellen? Dann dachte ich, ja, gucken wir einfach mal da, wir sehen, da gibt es irgendwie grobe Ordnungen, 100 oder mehr, irgendwie verschiedene Varianten von Treibern nur für serielle Schnittstellen. Scheinbar doch nicht ganz so einfach, also haben wir dann geguckt, okay, vielleicht machen wir nicht ein volles Treibermodell und sind bei was sehr einfachen gelandet. Eigentlich ist es auch kein Treibermodell mehr, ehrlich gesagt. Na ja, und das aller, aller unschönste im Bereich Hardware ist gerade immer irgendwelche Workarounds zu machen für Hardware-Bucks mit der Zeit zu gefunden werden. Das, was der Melddown gehört hat, alle schon mal von gehört, okay, war groß genug in den Medien, wer hat denn mal davon gehört, was die Software-Lösungen dafür sind, was ein Problem da drin ist? Also wer hat schon mal einen davon schon mal gelesen, verstanden und so? Ja, okay, gehen schon weniger hin und hoch. Das ist tatsächlich auch nicht so einfach und das Böse ist, wenn man für Optimierung, die in Hardware gemacht worden sind, Probleme verursachen, dann nehmen die gerne mal so ein bisschen was von der Optimierung weg und wenn man jetzt tatsächlich zum Beispiel gerade bei Linux alle Sachen aktiviert, die irgendwie wieder ein bisschen mehr Schutz geben, dann hat man leider wieder ordentlich ein Performanceverlust und das ist ja genau das, was man eigentlich nicht haben will. Deswegen gucken wir, dass wir irgendwie Hardware immer mal schneller machen und so weiter heutzutage. Auch auf jeden Fall ein sehr interessantes Feld und das zeigt vielleicht auch, dass man mal ein bisschen mehr Co-Design machen sollte zwischen Hardware und das auch immer. Weil sonst, wenn das nicht harmoniert, gibt es da auch am Ende keine Chance mehr und da hat man immer so die einen, die machen immer die Probleme, die anderen versuchen die zu lösen. Vielleicht muss man da ein bisschen mehr Synergien wiederfinden. Na ja, dazu gibt es dann unter anderem halt im akademischen Umfeldkonferenzen. In den USA gibt es da unter dem großen Themenbereich OSDI etwas. OSDI ist für Operating Systems Design und Implementation einfach nur die Abkürzung. Das gibt es in zwei Lifeformen. Das gibt es einmal von ACM und die beiden großen, wo die ganzen Konferenzen so drin sind. Da gibt es auch ganz viele andere Sachen aus dem Bereich Computer Science und so. Dazu verwandt ist dann auch noch das SOSP. Das gehört auch so ein bisschen zu ACM dabei. Das ist dieses Jahr hier in Koblenz in Deutschland zusammen mit PLOS. Das ist für Programmiersprachen und Betriebssysteme, so ein Workshopding. Wer irgendwie im akademischen Bereich ist oder irgendwie daran interessiert, einfach mal gucken. Wir haben auch immer sehr, sehr viele Sachen veröffentlicht. Das steht uns auch noch bevor. Ich glaube, das ist jetzt erst später im September oder so die Ecke. Na ja, was sind dann so Themen, die da so besprochen werden? Wenn man da jetzt so reinschaut, dann ist es schon irgendwie ein großer Bereich. Da geht es ja viel, gerade um Performance und ja, alles, was irgendwie effizient so anbelangt. Gerade Energieeffizienz ist jetzt auch sehr interessant. Man kann sich mal vorstellen, wir machen jetzt einfach mal ein Computer, der ist genau doppelt so effizient wie irgendein beliebiger Server, wenn ich das mal aus Business Perspektive, wenn ich jetzt einen rechten Zentrum habe, muss ich nur noch halb so viel Geld dafür ausgeben, den ganzen Kramen erlaufen zu lassen. Okay. Und das ist das, wo es dann wieder auch wirklich interessant wird. Weil immer, wenn irgendwas nicht wirklich rentabel ist, dann gucken eigentlich auch wenige Leute drauf, was zu machen, also vielleicht mal irgendwie so Leute im Hobby oder die, keine Ahnung, wirklich so Commitment haben. Sicherheit ist auch sehr, sehr viel dabei. Also wenn man da so auf die aktuellen Themen jetzt gerade schaut, also die OSDI von Newstings, die war jetzt auch erst kürzlich, habe ich hier auch noch mal verlinkt, OSDI 23 bei denen, da sind sehr, sehr viele Sachen auch im Bereich Security drin. Persistenz ist auch so eine Geschichte, also Datenhaltung. Ich habe gerade schon von Datei-Systemen gesprochen. Dazu gehört auch immer wieder Daten zu übertragen, dazu zu schauen, dass die Daten sich auch wirklich korrekt duplizieren und wenn es irgendwo ein Update gibt, dass das auch auf der anderen Seite landet und so weiter, also alles, was irgendwie so Transaktionssicherheit anbelangt. Wer sich damit schon mal beschäftigt hat, weiß auch, es gibt zwar sehr, sehr viel, was da schon gemacht wird, aber es ist auch nicht mega trivial. Also gerade in den letzten Jahren ist auch noch mal sehr viel passiert. Wer sich schon mal einfach mal sich gedacht hat, hey, wir kopieren mal irgendwas von A nach B, hat vielleicht dann irgendwann festgestellt, okay, so schnell wie hier Updates ankommen, ist der Kopierprozess nicht irgendwie in einem Betrieb gerade schon passiert. Da muss man irgendwie gucken, dass man irgendwo eine Referenz hat, dass man dann weiß, wo er denn später wieder weitermachen könnte. Naja, und dann gibt es irgendwie so einen gewissen Wandelass. Habe ich jetzt gerade auf der ACM-Website nochmal gelesen, dass so alles, was Betriebssysteme und Promiersprachen anbelangt, was so in den, sagen wir mal so bis 2000, 2010 so die Ecke passiert ist. Da war es so, dass Betriebssysteme und Promiersprachen ein bisschen zusammenentwickelt worden sind. Aber irgendwie ist es jetzt passiert, dass in Promiersprachen gerade sehr viel reingekommen ist, was sehr interessant ist und was jetzt langsam wieder in Betriebssysteme rüberschwappt. Dazu gehört zum Beispiel, dass der Linux Kernel jetzt seit Ende letzten Jahres auch Rust zum Beispiel in tatsächlich Unterstützung hat. Man kann jetzt anfangen, teilweise ein Rust zu schreiben im Linux Kernel. Das braucht ein bisschen bis das so kam, aber es ist glatt durchgelaufen und es zeigte dann auch, wenn so was akzeptiert wird in unserem riesigen Projekt, dass tatsächlich dadurch ein Benefit kommt. Gab auch ein sehr, sehr interessantes Vortrag dazu auf einer Linux Konferenz, da wurde einfach mal Gebänschmarkt eintreiber, der einmal in Rust und einmal in C vorher implementiert wurde im Vergleich. Auch sehr empfehlenswert, sich mal anzuschauen. Dann ist so ein bisschen was passiert vor zwei Jahren, drei Jahren. Da kam dann Timothy, er nennt sich kurz Mothi an, der hat ein bisschen was erzählt, wie wir gerade Betriebssysteme machen und so, das ist eigentlich noch nicht ganz so cool, weil er hat noch ein bisschen was anderes festgestellt aus der größeren Perspektive. Timothy Roscoe, wer kennt den? Schon mal irgendwie gehört? Ja, okay, nicht ganz so viel. Ein, zwei Hände. Der ist an der ETH Zürich, wie es der Zufall so will, schon wieder an der ETH gelandet. Der ist im Computer Science Department und kümmert sich halt um Betriebssysteme Forschung auch und der hat jetzt mal vor zwei Jahren das auch unten hier verlinkt an der OSDI 21, hat in der Keynote gegeben und gesagt so, ja, wir müssen mal irgendwie hardware neu entdecken. Also das, was wir gerade im Bereich Betriebssysteme machen, ist einfach immer irgendwie weiterhacken, immer irgendwie neue Treiber für die neuen Varianten, die irgendwie so kommen von serien Schnitzstellen oder was auch immer so. Aber eigentlich, wir müssen mal auf das große Ganze schauen, weil so ein System ist halt ein bisschen mehr, als einfach nur eine CPU, dazu gehören jetzt heutzutage ganz viele Co-Prozessoren und spezielle Kerne für Kern, Videos dekodieren, encodieren, Bilder, Audio, keine Ahnung, jetzt kommen Neuroprocessing-Unit oder wie auch immer man das genau nennen will, da kommt sehr, sehr viel dazu oder auch auf Telefonen, da haben wir zum Beispiel noch die Basebands oder sowas, die teilen sich den Speicher mit dem, was eigentlich vom Hauptprozessor kommt, das ist eigentlich auch nicht so cool. Also schnell vor, du kriegst einfach mal ungünstigen Anruf und zack, crash dein Telefon, weil in irgendeinem Treiber da auf einmal irgendwas am falschen Eck im Speicher gelandet ist. Wie gesagt, Memory Management nicht so trivial, da gibt es noch Potenzial und wer vielleicht so ein bisschen die Sicherheitslücken auf Mobiltelefonen mal irgendwie sich angeschaut hat, da geht gerne einmal was genau in diese Richtung. Ja, also, ISKA-Klassen zum Beispiel hat sich sehr viel Bluetooth angeschaut, vielleicht habt ihr die Vorträge schon mal irgendwo im Chaos-Umfeld gehört, da passieren ganz, ganz, ganz böse Dinge manchmal. Also wenn man da einfach mal ein Overflow hat und dann irgendwo im anderen Speicherbereich landet, nicht cool. Na ja, und dann hat der Timothy nochmal ein bisschen weiter geschaut, jetzt kam kürzlich erst dieses Paper raus, putting out the Hardware Dumpster Fire, also die brennende Mülltonne, die Hardware so halt ist. Ich stimme eben auch irgendwie weiß, es gehen zu, da muss man einfach mal gucken und die haben jetzt mal geschaut, wie kann man denn mal formell modellieren, wie so die einzelnen Komponenten in so einem Prozessor aussehen, also Prozessor, alles was unter so einem Hardware Package irgendwie so versteckt ist, kann man irgendwie Beziehungen da untereinander aufstellen, kann man gucken, wer muss hier wem vertrauen, damit die ganze Plattform irgendwie funktioniert. Das haben die in der Sprache gemacht, die auch von Rust abgeleitet ist, also Rust Programmiersprache, haben die mal geguckt, dass sie so grafen damit im Endeffekt bauen. Finde ich einen sehr, sehr spannenden Ansatz, auf jeden Fall weiterverfolgen, und Rust lässt uns sich los. Es gibt ein Betriebssystem, das heißt Redox, wer hat davon schon mal gehört? Ja, okay, auch einige Hände. Das ist auch komplett in Rust geschrieben jetzt und inspiriert von unter anderem Plan 9, dem Minix-Betriebssystem, was ich für die Lehre gemacht hatte, was irgendwie Intel auch als Co-Prozessor, wenn man dann gebaut hat, oder was darauf aufbaut. BSD ist da drin, bisschen Redox ist da drin, und man kann damit auch schon Grafischen Desktop haben. Ich habe das ja einmal ausprobiert, einfach mal hier diesen Screenshot gemacht, das sieht aus ein bisschen aus, wie man irgendwie Redox oder BSD benutzt oder so. Ein paar Sachen sind doch nochmal anders. Also große Empfehlung da auch mal reinzuschauen. Ich habe dann selber auch mal ein bisschen überlegt, was wäre eigentlich meine Traumvorstellung im Betriebssystem? Also wenn ich jetzt irgendwie im Betriebssystem so komplett und v.a. noch machen könnte, was würde ich tun? Da habe ich bei uns im Hackerspace in Bochau mal ein bisschen was erzählt. Ich habe einfach mal so ein bisschen überlegt, was habe ich jetzt so kennengelernt. Und ich hätte gerne etwas, wo ich einfach, ich habe hoffentlich so kleine Geräte irgendwo, ich hätte gerne ein Betriebssystem, wo ich all diese Geräte einfach mit zusammenfassen kann, wo ich nicht irgendwie speziell das Gateway hier, 50 Mobile-Apps von irgendwelchen Nährsteinen da zu betrachten kann. Also im Endeffekt so ein bisschen, dass das Murthy für eine Plattform, für so sagen wir mal so ein Server oder irgendwie sowas verlangt, hätte ich gerne übergreifen. Und das ist auch so ein bisschen die Idee eigentlich hinter Plan 9 gewesen. Nur dass die halt eher so in ihrem Labor da in Bellabs waren und alles so ein bisschen geschlossener war, die hatten eher so eine homogenere Umgebung. Und heute haben wir halt eine heterogene Umgebung. Wir haben ganz viele verschiedene Prozessearchitekturen. Als Risk 5, dann haben wir keine Ahnung, MIPS und irgendwie hast du nicht gesehen, alles Mögliche. Und meine Idee ist, ich möchte ganz gerne, dass ich nicht Services habe, wie das in der Betriebssystemdefinition auch so drin ist, sondern ich möchte, dass ich sagen kann, hey, hier ist ein Gerät, ich möchte damit jetzt irgendwas machen, aber ich möchte einfach sagen, das kommt jetzt von mir aus als außerhalb, ich will Self-Serving sein. Ich will da was reingeben können, was dann für mich wieder als quasi Service da ist. Aber ich will nicht, dass das rüben unbedingt aus irgendwie kommt und dann irgendwie isoliert ist vom Rest, weil ich will es halt integrieren. Ja, habe ich dann dazu ein bisschen mal erzählt, später verlinke ich das nochmal hier. Dann habe ich einfach mal so aus Spaß mal so eine bildgenerierende sogenannte KI befragt und habe mal gesagt, so mach mir mal ein bisschen Bilder. Ich wollte so eine Voodoo-Puppe irgendwie ein bisschen freundlich, so ein Häschen, vielleicht auch ein bisschen creepy, ich weiß nicht, wie ihr es so empfindet. Dann habe ich einfach mal so auf Doof einfach dann aufverlinkt, da ist auch nichts drauf. Ich habe einfach nochmal gesagt, was ist für mich ein Betriebssystem? Ich habe einfach gesagt, was für mich jetzt irgendwie das, was so zwischen einem Menschen an einer Maschine ist. Also zwischen der Haltware, die von sich aus nichts tun würde aber irgendwie brauche ich was, um damit integrieren zu können. Das ist für mich ein Betriebssystem. Ich weiß nicht, ob das jetzt so einfache Definition ist, aber das ist jetzt einfach mal meine Perspektive auf die Dinge. Rust, es lässt mich nicht los. Leute, die vorher Harvey gemacht haben, ich habe schon erzählt, das Projekt, was stillgelegt wurde, haben dann gesagt, okay, wir machen das nochmal neu. Wir haben jetzt ein Matrix Channel, das ist auch auf der Harvey Website noch verlinkt und da haben wir jetzt einfach mal was Neues angefangen. Wir haben das einfach genannt R9, eigentlich ganz simpel, R for Rust und 9 for Plan 9 halt so. Wir haben einfach mal wieder gesagt, okay, wir machen mal was, sondern wir lassen uns davon inspirieren und gucken mal. Ich habe das tatsächlich hier auf diesem kleinen Gerätchen hier laufen gelassen. Das ist auch das, was man hier im Screenshot gerade sieht. Ich habe das hier unten als das ausgeführt worden von unserer Firma, die wir in Rust aus haben aus, dann rüber in Neues können und von da aus dann in dieses Betriebssystem. Und das hat jetzt hier einfach mal eine kleine Ausgabe gemacht. Da ist jetzt noch nichts irgendwie mit Prozessen oder so was, ja, das kommt alles noch, hoffentlich. Große Empfehlung aber, wenn ihr da mal schauen wollt, das ist gerade wirklich so fresh from the press, noch nicht wirklich bekannt auf GitHub R9 OS. Naja, und an dieser Stelle zeige ich hier einfach meine kleine Demo, weil wir da nämlich tatsächlich schon ein bisschen was am Laufen haben. Wir haben da einfach für QEMO mal ein Port gemacht, einmal für die emulierte Variante von dem Raspberry Pi, das ist jetzt an ARM64. Dann kann ich jetzt einfach starten und dann kriege ich schon mal ein bisschen Ausgaben. Das heißt also, wenn ihr mal so auf die Speicheradressen schaut, die ja so ausgegeben werden, hier ist schon ein bisschen virtualisierter Speicher drin, ja, dadurch kommt das zu so großen Adressen, die man da sieht. Sonst wären die nämlich eher klein. Wir können auf Peripherie hier schon zugreifen, hier unten Video. Theoretisch könnte man jetzt irgendwie auch eine grafische Ausgabe machen, aber so weit sind wir noch nicht. Das ist auch vielleicht jetzt so nicht das erste, was wir machen wollen, wir gucken jetzt erstmal, dass wir Speicherverwaltung bauen und so. Naja, und dann können wir halt ein paar Informationen auslesen, dann gibt es so eine Mailbox-Schnittsche, und dann kriege ich mal Dinge zurück. Ja, so weit so cool. Wir haben auch einen Port für Risk-File-File schon angefangen, das ist das, was ich hier auf dem kleinen Gerät auch schon ausgeführt hatte. Ich habe da mal ein bisschen im Emulator weiter dran rum gebastelt. Also die jetzt so aus, ich habe da einfach mal so ein quasi ASCII-Art-Logo gemacht. Also da hat Emoji drin, also nicht wirklich nur ASCII, so ein bisschen R9, ein Mausentastatur, was man jetzt so machen kann, noch ein bisschen was an den Fuss auszugeben. Aber hey, das ist schon mal der Anfang. Das heißt, wir können schon mal Sachen auf der serialen Schnittstelle ausgeben, und wir haben schon mal virtualisierten Speicher. Jetzt müssen wir halt noch gucken, dass wir die Speicherverwaltung hinkriegen, und dann können wir gucken, dass wir Prozesse anfangen, und dann haben wir schon wirklich so ein laufregendes Betriebssystem langsam. Okay, so weit so gut. Ich habe schon gesagt, ich habe zu Hause ganz viele so kleine Sachen, irgendwie gibt es überall so kleine Computer, so viele Betriebssysteme, die für Hardware so gemacht worden sind. Einmal gibt es Mikrocontroller, die sind mittlerweile so powerful geworden. Es gibt schon Leute, die sagen, hey, ich habe hier einen Mikrocontroller, aber kann ich jetzt nix drauflaufen lassen, nicht, dass er irgendwie ein kompletter Desktop unbedingt drauf läuft oder so was, aber so prinzipiell, und dann einmal so einen Prozess starten, da geht schon was in die Richtung. Was sehr witzig ist, weil wenn man so ein bisschen sich vorstellt, dass heute die Mikrocontroller ungefähr so sind, das ist schon sehr interessant. Dann so die Frage, was wollen wir eigentlich für Betriebssysteme haben, muss man über so ein General Purpose Dingsystem haben, wo man alles irgendwie machen kann, oder reicht es nicht irgendwie was Spezielles zu haben, wenn ich zum Beispiel so eine Uhr habe oder so, da war jetzt kein Desktop drauf, da habe ich einfach so ein kleines Urinterface, oder will ich irgendwie ein Echtzeitbetriebssystem haben, brauche ich gewisse Garantien, dass bestimmte Dinge einfach zu vorhersehbaren zum Beispiel gerade bei so was wie Autos oder so, das ist sehr, sehr kritisch, damit die halt nicht irgendwie im Baum landen. Ja, dann hat man da ganz viele verschiedene Systeme gebaut, da gibt es einmal das Free Artist, das hat dann immer so einen irgendwann eingekauft, Zephyr ist in der Linux Foundation jetzt auch recht groß, Hubris, das ist ein kleines System, das Oxide Computer gemacht haben für ihre Server eigentlich, Mboss, das ist irgendwie von einer Firma die sonst die Bugging Tools macht, Sega heißen die Epos, das habe ich mal ein bisschen komisch, das ist irgendwie so ein kleineres Ding, aber gibt es auch einiges für was man sich anschauen kann, Lightwise läuft bei mir das Zeche auf dieser Uhr, Meles, das ist von der Firma Allwinner, die unter anderem den Chip auf diesem Board hier macht, da gibt es noch ganz viele andere Sachen, jetzt gerade ein bisschen erforscht, teilweise auch schon in Produktion gegeben werden, zum Beispiel Fuchsia, das ist von Google oder Harmony, das habt ihr vielleicht auch schon mal gehört von Huawei, Arcore und Zecore ist von der Tsinghua University in China und das ist ein relativ junges Forschungsprojekt, auch noch hier Hermit, ich glaube den Leuten in Aachen ist das, auch alles relativ jung, kann man sich auch mal auf jeden Fall anschauen. Ich habe dann gedacht, hey, das kriege ich da auch irgendwie hin, hat mal so einen kleinen RISC-5-Micro-Controller genommen, einfach mal so ein bisschen was zusammengehackt und das macht eigentlich nicht viel, das man einfach nur so ein bisschen TikTok im Hintergrund läuft einfach immer mal so ein Interrupt kommt und sagt dann, hey, du bist jetzt wieder dran und dann gebe ich TikTok oder halt Tok aus, einfach so ein bisschen Ping-Pong und das ist eigentlich schon die Primitive, die man hat, um einfach Prozesse nach und nach scheiten zu können, dass man einfach so ein bisschen ein Timer hat, das ist eigentlich die Hauptgrundlage. Da habe ich auch auf GitHub gepackt, das habe ich damals hier auch im Backspace dann vorgestellt. Dann habe ich einfach mal durch diesen kleinen Chip hier auch wieder eine Community kennengelernt, das war damals noch ein etwas anderes Projekt, mittlerweile ist das Nemos geworden, Nemos ist von James Manns und ein paar anderen Leuten, den habe ich auch mal irgendwann in Berlin getroffen, da haben wir einfach mal so ein bisschen miteinander geschnackt und der hat eine kleine Philosophie mal rausgebracht und gesagt, ich will was machen, das ist für Projekte, die irgendwo so zwischen einem einfachen Echtzeitbetriebssystem sind und einem komplizierter irgendwie Linux zum Beispiel. Ich will irgendwie was dazwischen haben. Das ist Nemos jetzt geworden. Ich habe das selber auch auf diesem Rechner hier auch schon mal ausgeführt, weil halt auch einfach nur so ein TikTok-artiges Ding, das heißt PingTong, wie auch immer man das will, da gab es hier einfach zwei Prozesse, die hier im Wechsel einfach gelaufen sind. Es ist einfach so ein Schleif herläuft, dann mal das eine, mal das andere. Ja, kann man sich auch anschauen, TOSK RS auf GitHub, ich weiß nicht genau wofür TOSK jetzt steht, RS jedenfalls für Rust, ist auch ein Rust geschrieben. Da gab es jetzt neulich erst diesen Blog-Post, ich glaube, der ist jetzt ein Monat alt oder so, der wollte noch mal ein bisschen beschrieben, was da jetzt genau los ist würde ich da auch wahrscheinlich noch mal in der Entwicklung noch ein bisschen was mitmachen, weil jedes Betriebssystem braucht halt auch wieder gerade auf so einem Application-Prozessor irgendwie Firma, die Initialisierung macht und ich habe halt die ganze Speicher- Initialisierung hierfür schon gemacht, kann man dann hier drauf aufbauen. Naja, und das mache ich eigentlich nicht sehr gerne, also gerade so ein Gadgets rumhacken und so, ich habe hier mal noch ein bisschen was mitgebracht, wer da auch Interesse hat, sich so was mal anzuschauen, das hier ist so ein Virtual Desktop-Infrastruktur-Kleint genannt, wenn man das thin-Kleint im Prinzip sehr ähnlich, ja, man hat eine kleine, nicht ganz so powerful Maschine und verbindet sich damit zu irgendwas größerem wie auch immer das genau geartet ist und so was hätte ich auch ganz gerne eigentlich als Terminal bei mir zu Hause, von da aus würde ich dann gerne mal eine ganze Geräte irgendwie steuern können. Mal gucken, was da aussieht. Wenn man irgendwie so Entwicklungs-Bots haben will, kann man sich halt auch so was holen oder einfach, ich habe mir mal so eine TV-Box geholt bei AliExpress, da gibt es haufenweise irgendwie so Sachen, da kann man sehr coole Sachen mit machen, da muss man sich nicht mal unbedingt ein Raspberry Pi holen, gerade wenn der mal wieder nicht verfügbar ist oder so, mal einfach mal so ein Ding nehmen, vielleicht will man auch gar nicht was produktiv machen, einfach mal ein bisschen rumhaken, dafür ist das sehr cool geeignet. Na ja, und was läuft darauf? Meistens läuft da irgendwie Linux drauf und irgendwie so ein komisches Gehacke und so, aber das will ich eigentlich gar nicht so haben und an der Stelle fange ich schon mal an, was hier einzustöpseln. Wenn man sich eigentlich haben will, ist, wenn ich schon so ein Linux kernel habe, dann will ich nur einen Prozess haben und da reicht auch eigentlich schon aus, was man einfach Linux mitgeben kann beim Buten ist, zu sagen, hey hier, du hast einen Prozess, der ist jetzt im Datei-System, das ich dir mitgebe und das startest du jetzt und dann ist gut. Tatsächlich bootet auch jeder Rechner eigentlich so jetzt mit einem Linux kernel drunter, nur dass dann halt meistens so komplette Desktop-Umgebungen was auch mal hier gerade so im System kommt. Na ja, CPU, was ich jetzt hier unten geschrieben habe, das hat Ron Minnick, der auch zum Beispiel Harvey OS gemacht hat damals mit ein paar anderen, der hat das auch zu links rübergeportet und gesagt, hey du kannst jetzt auf Linux auch CPU nutzen und das will ich euch jetzt einmal zeigen. Das geht so, ich zoome jetzt hier mal ein bisschen rein, ich sage CPU, MQ Pro, ich mach mal noch einen etwas anderen Kommand hier und zwar das hier. Ich habe über ein kleines Shell Script gebaut, da sind die Parameter drin, um mit dem Gerät zu sprechen, so was wie IP-Adresse und so. Ich kann es jetzt einfach aufrufen und das führt jetzt einfach einen Programm aus, das aber von meiner Maschine her kommt. Wenn ihr hier diesen Pfad anguckt, Project Hello OSRS, das ist bei mir im Betriebssystem, in meinem Datei-System und da habe ich hier so ein Programm geschrieben, das heißt einfach Hello Rust, das ist ja auch egal. Es ist jetzt auf der anderen Seite ausgeführt worden und der Ergebnis habe ich jetzt hier. Ist hier so ein bisschen Tugging Cheek-Joke drin, aber es ist eigentlich nicht egal. Das ist jetzt auf der anderen Seite gelaufen, da einfach Dinge für mich gemacht und mir wieder Informationen zurückgegeben. Und genauso was möchte ich gerne haben für ganz, ganz viele Rechner, die ich habe. Tatsächlich kann ich auch meine Präsentation, die ich hier gerade laufen habe, also die, die hier ist, da, so, können die jetzt auch auf dem Ding einfach starten. Ich habe nämlich einfach meinen PDF-Uhr gefunden, der kann einfach in einem Framebuffer arbeiten. Das Problem ist, wir haben noch keinen Framebuffer, weil muss man irgendwie HDMI rüberstecken und das Ding resetten. So, brauchen wir noch ein bisschen. Sieht man schon was? Ich hoffe. Ah, hör mal. Linux. Da läuft jetzt gerade ein News-Colonel und der soll jetzt gleich einen Prozess starten. Da steht jetzt hier auch schon. Ich weiß, hier kann man glaube ich nicht ganz erkennen. Run slash init s init process und da läuft jetzt etwas. Das kommt aus dem Projekt Uroot, das wir haben. Da hat Ron dieses CPU rein portiert. Da ist einfach ein kleines Mini-Datei-System drin. Da ist sich viel. Da sind einfach nur ein paar kleine Dateien drin. Da ist dann einmal dieses CPU drin. Der Damon dazu. Ja, und wenn jetzt alles gut läuft, kann ich jetzt meine Präsentation darauf starten. Das wird ein kleines bisschen dauern. Das hat damit zu tun, dass jetzt die Sachen, die ich auf meinem Rechner habe, darüber kopiert werden müssen und ich habe das hier über USB angeschlossen. Da wird jetzt gerade ein Netzwerk über USB emuliert. Mehr oder minder, das geht. Also es gibt da so ein Gadget Treiber, wo dann ein USB-Gerät so aussieht wie ein Netzwerk-Gerät. Linux macht es möglich. Also ein bisschen schwarz geworden. Ah, hör mal. Da sind die Slides. Ja, Magic. Damit gehen wir wieder zu den richtigen Slides. Das war jetzt hier die Demo. Ich würde jetzt gerne eine Sache noch gerne machen und ich habe gerade schon gesagt, wenn ich was im Betriebssystem entwickeln will, ist das leider nicht ganz so einfach und ich will aber etwas machen, das gehört in den Bereich User Interfaces. Und damit meine ich nicht nur grafische User Interfaces, sondern auch alles, was so haptik anbelangt. Wer hat schon mal irgendeinen Command auf so einem unix-artigen System ausgeführt und irgendeine komische Meldung gekriegt und nichts davon verstanden? Okay, außen ziemlich alle, ja. Das geht schon, wenn man sagt, irgendwie man will ein Binary ausführen, das war Command-Line, irgendwie so ein lokales Binary, sagte irgendwie, Dotsch hat es nicht gesehen und steht da not found, dann guckst du und denkst, wieso ja, Teil ist doch da. Und was war dann aber tatsächlich, der Link hat irgendein anderes Binary nicht gefunden, was als Library dazugelegt wäre? Das ist heute immer noch so, dass diese vieler Meldung so irreführend ist. Aber ich denke, so was geht auch einfach besser. Ja, und noch viele andere Sachen in so einem Betriebssystem. Habe ich mal geguckt, wie sieht es denn da so aus? Warum ist das eigentlich nicht mehr so das Thema in and out? Aber vielleicht ist das noch so ein bisschen, oder vielleicht war das mal so, tatsächlich vor vielen Jahren, 1991 zum Beispiel, da gab es mal dieses Paper hier, das war von Rob Pike damals, der hat sich einfach mal angeschaut, hey, wie können wir mal was machen, was irgendwie so, ich baue irgendwie so ein Editor, ich baue irgendwie so ein Windows-System, ich baue irgendwie eine Shell, irgendwie ein Benutzer-Sched-Shell dafür. Und der hat einfach wirklich mal systematisch alles Mögliche aufgeschrieben. Fun Fact, auch sehr viel inspiriert und viele Ideen daraus aufgegriffen. Und die sind auch später wieder in Planein gelandet. 2001, also nochmal 10 Jahre später, haben Leute, gerade bei Microsoft, Sachen mit Haskell gemacht. Hätte ich jetzt auch nicht gedacht, dass Microsoft und Haskell da irgendwie zusammenhängen. Aber ja, da haben da Leute einfach mal gemacht, ein Forschungsprojekt, die haben einfach mal so eine Bibliothek gebaut, ähnlich wie man das vielleicht heute auch von verschiedenen Bibliotheken kennt, die einfach die ganzen Standard-Grafikelemente machen, die man halt so braucht, irgendwie Buttons, wo man drauf drücken kann, oder irgendwie Listen, wo man irgendwie rumscrollen kann und so weiter. Das haben die da mal alles versucht, formell zu modellieren. Und ich denke, man kann jetzt mal von all dem, was da schon so existiert, sich nochmal ein bisschen mit der Abstand nehmen und nochmal ein bisschen darüber nachdenken, hey, wirklich challenging, wo können wir nochmal irgendwie neue Sachen machen. Und das ist jetzt auch meine Challenge an alle, die jetzt irgendwie diesen Vortrag hören, guckt euch wirklich mal die Sachen an. Gerade bei Touch-Input, was wir jetzt heute haben, da können wir noch sehr, sehr viele interessante Sachen mal machen. Und wer kennt das mit dem, scrollen vielleicht irgendwie auf Touch? Das ist manchmal so ein bisschen komisch. Apple hat irgendwann gesagt, hey, es gibt ein natürlicher Scrolling, wenn du auf deinem Touch-Train scrollst, dann ziehst du quasi den Punkt irgendwie mit. Das ist so, wie wenn du Papier irgendwie schiebst. Da haben wir das gleiche auf das Touchpad auch gemacht. Und ich war einmal gewöhnt, du ziehst irgendwo so das Scroller so runter und scrollst auch unten. Und jetzt ist es so, wenn du auf den Touchpad nach unten ziehst, geht es aber nach oben. Weiß ich nicht, ob das natürlich ist, aber ich habe noch keinen Baum gesehen, wo ein Touchpad dran ist. Ich weiß nicht, wie natürlich das ist. Meine Idee wäre, man könnte sich mal so ein bisschen anschauen, Selfish zum Beispiel. Die haben sehr, sehr viel gemacht auch in der Hinsicht. Die haben dann auch dazu was aufgeschrieben. Ihre Design-Ideen. Wir haben ein Selfish-Gerät hier. Okay, sehr cool. Die haben sich sehr viel Gedanken, gerade über so Sachen wie Gesten gemacht. Und ich habe gedacht so etwas, wenn ich jetzt eine neue App starten will, oder zu einer anderen App wechseln, warum mache ich nicht einfach eine Geste dafür und dann male ich mir damit mein neues Fenster und zack, kann ich da jetzt die nächste App starten. Ich will nicht irgendwie zum Home Screenplatz zurück, irgendwie so ein Draw rausziehen und hast nicht gesehen, das sind so 4-5 Steps, die einfach sehr, sehr painful sind, die man vermeiden können. Und das gibt es an sehr, sehr vielen Stellen so Optimierungsmöglichkeiten. Also gerade so im Bereich User Interface Design, was ich in der Web-Entwicklung sehr viel mache und miterlebe, da gibt es immer noch sehr viele Bestrebungen, irgendwie nur effizienter zu machen. Alles, was irgendwie nervig ist, was man beim 100. Mal vielleicht irgendwann nicht mehr sehen muss, diese komische Animationen oder so, vielleicht einfach mal ein bisschen darauf zu verzichten, anders anzugehen oder so, gibt es sehr viele Sachen. Und ich denke, das kann man ein bisschen in die Tiefe des Betriebssystems noch machen. Ja, damit bin ich auch durch. Jetzt hätten wir noch so 6, 7 Minuten für Fragen, wer noch welche habt. Ansonsten, ich hätte hier einmal noch mal eine Liste von Referenzen, wo man auch noch mal reinschauen kann. Das sind andere Vorträge, die ich schon mal so gehalten habe. Auf meiner Website Metas Buraorg habe ich auch alles Mögliche an Abstracts gesammelt und PDFs verlinkend. Ansonsten findet ihr auch diese Titel bei den jeweils anderen gehosteten Sachen. Und ja, hier alle meine Kontaktdaten und auch dieses PDF selber verlinkend. Ja, da läuft ein Mikro. Da auf der anderen Seite. Du hast vorhin erwähnt, dass gerade für neue Prozesse Architekturen, also was jetzt zum Beispiel im KI-Bereich passiert oder was schon länger im GPU-Bereich, also Grafikanheiten funktionieren weit abseits des Verneumernprinzips. Gibt es da aktuell irgendwie Entwicklungen, Betriebssysteme dafür zu schreiben oder sagen die alle so, oh, das lagern mir auf die Treiber-Ebene aus und das machen wir weiterhin irgendwie klassisch. Also, da gibt es 2 Richtungen. Das eine ist die Richtung der Industrie, die sich erhalten will. Die möchten ganz gerne, dass die Sachen bei sich jeweils sind. Weil sich eben verschiedene Firmen auf bestimmte Sachen spezialisiert haben. Die möchten da ganz gerne platziert bleiben. Aber, Leute wie zum Beispiel Timothy Rosco haben sich da mal Gedanken darüber gemacht, dann lass einfach selber in die Hand zu nehmen. Der hat ein Projekt, das nennt sich Encian, also Encian, so wie die Pflanze. Da haben sie gesagt, okay, wir versuchen jetzt einfach mal neben der CPU mit FPGA ist da einfach mal ein bisschen zu experimentieren. Das wäre eine Sache, die man sich anschauen kann. Das andere ist, was Oxide-Computer gemacht haben. Die machen halt so Wrecks. Die ersten davon sind auch gerade geschippt vor ein paar Wochen. Die haben zum Beispiel ihren BMC, was gerade bei Servern sehr, sehr kritisch ist. Das ist so der Verwaltungs-Chip quasi auf der Architekturebene. Den haben die sich ganz kritisch angeschaut. Da gibt es halt auch so verschiedene Firmen, die fertige davon anbieten. Aber die sind halt, ich hab vorgestern, es wäre ein CV, ich hab das gekommen, High-Score-10-Punkte für ganz alles machen. Es ist halt nicht so cool, und die haben gesagt, wir machen das mal sehr, sehr simpel und nehmen dafür einfach ein Mikrocontroller. Nicht ein vollen Applikationsprozessor. Und irgendwie wieder so ein gehacktes Jungs draufläuft, worum sich keiner kümmert so. Weil das ist halt etwas, was sehr, sehr kritisch ist. Das werden so die beiden Sachen, die mir dazu einfallen. Hast du schon mal mit Hurt gespielt? Mit was genau? Gluhurt. Ja, GNU Hurt habe ich von gehört. Ich kenne auch einen, der da in der Entwicklung mal war, und ich weiß nicht, was überhaupt noch in dem Projekt aktiv ist. Ich glaube, da gibt es auch mal mal noch ein paar Leute, die sich da zusammensetzen, aber bin ich nicht so drin. Ich glaube, die haben bei der Foste auch immer mal ein Developer Room. Aber da hören meine Erkenntnisse davon, ehrlich gesagt auch auf... Ansonsten, wir haben jetzt die Schunde quasi voll. Ich hab, wie gesagt, hier noch ein bisschen was zum Hacken auch dabei. Ich werde mich da auch gleich wieder rüber setzen, wer Bock hat, quatscht mich ruhig an. Ansonsten vielen, vielen Dank.