The Cathedral and the Community

  Fabian Schaar   Lesezeit: 6 Minuten  🗪 4 Kommentare

Ein Essay zu Konkurrenz- und Gemeinschaftsgedanken in der FLOSS-Bewegung.

the cathedral and the community

Hinweis: Das ist ein Meinungsbeitrag. (Schon wieder.)

Nachdem gestern mein Essay zu kommerziellen Interessen in der GNU/Linux-Welt erschienen ist, möchte ich meine Gedankengänge noch etwas ausführen -- nicht zuletzt, weil die Kommentare unter dem Artikel relativ gemischt ausgefallen sind.

Im ersten Text habe ich es schon erwähnt: Mir geht es nicht darum, technische Details zu kritisieren, oder den Versuch, etwas zu ändern. Der Linux-Desktop ist nicht perfekt und könnte an manchen Stellen besser integriert sein. Die Frage ist, wie Veränderung umgesetzt werden soll.

Grundlegend könnte man in dieser Hinsicht zwischen zwei Problemlösungsansätzen unterscheiden: Wollen wir bestehendes umwerfen, um etwas Neues, vielleicht Besseres schaffen zu können? Oder wollen wir doch darauf aufbauen, was wir bisher erreicht, aber noch nicht zur Perfektion getrieben haben?

Der interessante Aspekt dieser Diskussion ist, dass sich technisch beides umsetzen ließe: Container-Technologien eignen sich sowohl als eine Ergänzung zur bestehenden Paketverwaltung, als auch als eigenständiges Distributionsmodell.

Nur weil eine Partition mit BTreeFS formatiert wurde, heißt das noch nicht, dass eine immutable Distribution vorliegt. Nur weil Rollbacks und abgesicherte Distributionsstände erstellt werden können, ist die Distribution noch nicht grundlegend anders als ihre klassischeren Mitbewerber. So viel sollte klar sein. Ich denke, darum besteht keine Debatte.

Die entscheidende Frage ist, inwiefern Neuerungen dem bisherigen hinzugefügt oder entgegengesetzt werden: Möchte ich beispielsweise Flatpaks aufgrund ihrer Vorteile stärker in meine persönliche GNU/Linux-Installation integrieren, brauche ich dazu nicht zwingend Silverblue oder MicroOS.

Ich kann Flatpak genauso gut unter Debian einsetzen, wie unter Fedora, wie unter Arch, wie unter openSUSE: Am Ende des Tages liegt genau da ein entscheidender Vorteil der Flatpak-Plattform.

Das ist gut möglich, allerdings nicht die einzige Herangehensweise: Natürlich lassen sich aufbauend auf Flatpaks, unveränderlichen Dateisystemstrukturen und auch ganze Distributionen aufbauen: Nur wer bestehendes hinterfragt, kann Neuerungen auch in sich integriert anwenden.

Hier liegt der Spielraum, den immutable und nicht-immutable Distributionsansätze zur Diskussion offenlassen. Hier liegt das Diskussionspotential, hier können wir uns streiten. Hier können wir darüber reden, wer seine Interessen wie ausspielt, verteidigt, einschränkt und einschränken lässt.

Hinter dieser Debatte verbirgt sich aber ein Faktor, der so omnipräsent ist, dass zumindest ich ihn leicht aus den Augen verliere. Egal, ob immutable oder nicht, egal ob hypermodern oder strukturkonservativ: Wer eine Distribution einsetzen möchte, begibt sich immer in ein Vertrauensverhältnis.

Dieser Aspekt lässt sich nicht nur auf die verschiedenen GNU/Linux-Distributionen anwenden. Am Ende des Tages kann niemand nur mit sich selbst auskommen. Jeder muss mit Abhängigkeiten, Vertrauensverhältnissen und Verpflichtungen umgehen, irgendwie damit jonglieren, irgendwie damit fortleben.

Und im Kleinen ist das ist in der Distributionslandschaft nicht anders. Wer heute openSUSE MicroOS einsetzt, muss sich vielleicht keine Gedanken über das Betriebssystem auf der Platte machen, aber darüber nachdenken, wer hier wem vertraut, ist und bleibt ein entscheidender Faktor.

Genau an dieser Stelle vermischen sich auch technische Fragen mit mehr oder minder subjektiven Wahrnehmungen. Ubuntu hat in den letzten Jahren objektiv viel an vormals bestehendem Vertrauen eingebüßt. Wer die ganze Zeit gegen den Strom schwimmt, die eigene Nutzerschaft eingeschlossen, macht sich nun einmal nicht sonderlich beliebt. Das ist eine Binsenweisheit, und doch sollte man diese im Hinterkopf behalten.

Egal, ob mein System unveränderlich ist, oder nicht: Vertrauen muss ich immer aufbringen, ob ich will oder nicht, darum herumzukommen ist nur schwer möglich.

Länger darüber nachgedacht ergeben sich hier zwei entscheidende Vorteile freier Software: Grundlegend ist sie gegenüber proprietären Entwicklungsmodellen transparent und nachvollziehbar, das aber nicht nur auf einer individuellen, kleinen, überschaubaren Ebene.

Freie Software ist eben nicht nur Software, bei der der Quellcode offen liegt. Freie Software ist auch soziale Software, da einzig freie Lizenzen erlauben es, Software auch im Kollektiv weiterzuentwickeln.

Schon zu Anfang der FLOSS-Bewegung kam die Analogie der Kathedrale und des Basars auf. Aber ist diese Analogie noch zeitgemäß? Hier kommt es wohl darauf an, wie die Metapher angewandt, wie sie verstanden werden will und wird:

Wer die Gemeinschaft rund um freie Software als einen zentralen Aspekt der FLOSS-Bewegung sieht, wird die Analogie wohl eher im Sinne der sozialen Aspekte interpretieren: Die Kathedrale steht auch für ein autoritäres Entwicklungsmodell.

Wer sich mehr mit den technischen Aspekten hinter "Open-Source"-Software identifiziert, wird die Analogie wohl eher auf das Distributionsmodell übertragen.

Vielleicht liegt es daran, dass ich selbst kein Softwareentwickler und im FLOSS-Bereich momentan eher amateurhaft informiert bin: Ich denke, dass die FLOSS-Gemeinschaft einen nicht zu unterscheidenden Teil des Konzepts "freie Software" ausmacht.

In diesem Sinne möchte ich fragen, ob der Basar wirklich die passende Gegenthese zur Metapher der Kathedrale ist: Ein Basar steht auch für Konkurrenz, ein Feilschen unter der Hand, Eigenwille und Eigennutz.

Eine Kathedrale kann als Analogie der Unterwerfung gesehen werden. Aber steht ein Basar für Vertrauen? Ist das wirklich das Bild, was wir der autoritären Softwareentwicklung nach dem proprietären Modell entgegensetzen wollen, wollten und sollten?

Sicher ist das folgende eine sprachliche Perversion dessen, was mit der ursprünglichen Analogie einst gemeint war. Trotzdem: Warum sprechen wir nicht von "The Cathedral and the Community"?

Wäre es nicht gerade innerhalb der FLOSS-Bewegung eine gute Idee, den Konkurrenzgedanken, der offensichtlich nicht immer gesund und heilsam ist, endlich ad acta zu legen?

Für Innovation braucht es kein ständiges Gegeneinander, wenn wir Probleme lösen wollen, müssen wir nicht durch Konkurrenz neue schaffen. Innovation ist nicht davon abhängig, andere übertreffen zu wollen oder zu müssen.

Ich habe immer wieder das Gefühl, dass es stattdessen zu einer Abhängigkeit von der Konkurrenz als solches, zu einer Dominanz des Wettbewerbs kommt, mit der wir uns manchmal ins Knie schießen. Vielleicht. Ich weiß es nicht.

Bild: Fundación Acceso, CC BY-SA 3.0, via Wikimedia Commons

Tags

FOSS-Community, FLOSS-Community, FOSS, FLOSS

UbIx
Geschrieben von UbIx am 28. Februar 2023 um 07:02

Ich bin mir nicht sicher ob ich deinen Gedankengang so richtig verstanden habe. Aber ich glaube, dass aber gerade die unterschiedlichen Sichtweisen, Motivationen, Konkurrenz, uvm. eine wichtige Basis technischer Entwicklung im Linux Ökosystem ist. Auch sind hierarchische Strukturen wichtig um gemeinsame ziele zu definieren und sie dann auch zeitnah umzusetzen.

PS: Ich finde den Ansatz des imuteable systems genial, da er je nach Umsetzung viele aktuelle Probleme beseitigen kann aber dabei andere Probleme schaft. Aber genau diese Vielfalt ist viel innovativer als nur einen weg zu gehen, denn der Erfolg wird später zeigen ob eine Idee gut war.

mw
Geschrieben von mw am 28. Februar 2023 um 07:59

Ich kann das nicht nachvollziehen. Was soll denn Community sein? Eine Geheimloge oder eine Sekte ist auch eine Community? Würdest Du denen vertrauen wollen? Bazar ist die Analogie zu offen, jeder kann etwas anbieten und jeder kann sich aus allem Angebotenen das für ihn richtige aussuchen. Und genau darum geht es. Die FOSS Welt ist kein Ersatz für die komerziellen Softwareanbieter, sie ist eine echte Alternative. Der Versuch von großen Distributionen das Geschäftsmodell der komerziellen Anbieter in die FOSS Welt zu transferieren schadet uns allen. Vertrauen ist schwierig und in diesen Zeiten ist zero trust angesagt! Du kannst den großen Anbietern vertrauen (warum eigentlich?) und dann feststellen, daß Du immer wieder beschissen wirst, weil nur wirtschaftliche Gründe maßgeblich sind. Konkurrenz lebt von der Differenzierung. Die Frage ist doch, ob Konkurrenz das richtige Modell ist. Wer zuerst die ausgesprochenen und auch die nicht ausgesprochenen Bedürfnisse des Anwenders befriedigen kann, ist erfolgreich. Innovation ist ein dummes Schlagwort, denn nicht alles neues ist zum Besten der Nutzer, manches dient nur dem Geschäft des Anbieters. Ist denn die Sitzheizung im Abo ein Zusatznutzen für den Nutzer? Nein, das dient nur dazu zusätzliche Millarden in die Kassen des Anbieters zu spülen. Und Innovation der Innovation Willen ist nur Blödsinn und dennoch habe ich das Gefühl, daß dies der vorherrrschende Gedanken bei vielen Entwicklern ist. Ständige Verschlimmbesserung ist beileibe keine Innovation sondern nur nervig. Und warum redest Du von Wettbewerb? Das ist im FOSS Umfeld die falsche Wortwahl. Hier handelt es sich um Vielfalt.

understater
Geschrieben von understater am 28. Februar 2023 um 08:30

Könnte man statt "nicht immutable" nicht auch einfach "mutable"schreiben?

manut
Geschrieben von manut am 28. Februar 2023 um 11:45

Für mich ist der einzige Vorteil einer immutable distribution der Sicherheitsaspekt. Uefi lädt signierten bootloader, dieser ein signiertes Unified Image mit Kernel und initrd, das rfs ist dann über dm-verity gesichert. Das geht alles auch mit dem klassischen Distributionsansatz. Ein Snapshot mit ostree oder btrfs, nach einem Paket Update (aus vertrauenswürdiger und sicherer Quelle) erstellen, Snapshot signieren, Booten und das Potential dass Trojaner das System verändern sinkt auf ein kleines Zeitfenster.

Für ein immutable System braucht es kein Flatpak oder snap.

Für mich machen die Container Technologien aber trotzdem Sinn, da hiermit möglich ist, die Zugriffe von Applikationen auf Systemresourcen auf das notwendige Minimum einzuschränken.

Für mich gehört zu security aber auch, dass Sicherheitsupdates meiner Distribution schnellstmöglich installiert werden. Auf einem klassischen System verwendet spätestens nach einem reboot jede Applikation die vom Sicherheitsupdate zur Verfügung gestellte Library. Außer ich habe eine Applikation in einem Container dessen Image noch die alte Version der library enthält.. kleiner Bonus ist dann, dass diese Applikation im Container zumindest maximal isoliert läuft.. aber Zugriff auf private Daten habe ich ihr eventuell schon konfiguriert.. pech!

Ich sehe keinen Vorteil darin X Container Image Layer aktuell halten zu müssen, im Gegensatz zu einer klassischen Distribution. Anderseits ist man teilweise dazu gezwungen, da es gewisse Applikationen in der Distribution meiner Wahl nicht gibt, weil der Distribution die manpower fehlt, die Applikation und alle Abhängigkeiten zu paketieren und zu maintainen.

Also baut jetzt jede moderne Applikation nicht nur sich selber, sondern auch alle Abhängigkeiten selber. Das besagte Vertrauen wandert von der Distribution ab in Richtung Applikationen und deren Container Images und auf Zusammenarbeit bei der Pflege von gemeinsamen Abhängigkeiten verzichten die Applikationsentwickler.

Pideins wird schon von M$ gemaintained, statisch linken ist mit Go und RUST auch akzeptiert. Hier könnte man einen Trend erkennen.

Ich persönlich bleibe erst mal bei Debian.