Rust-Maintainer für den Linux-Kernel tritt zurück
Wedson Almeida Filho, ein Maintainer des Rust für Linux Projekts, hat kürzlich seinen Rücktritt angekündigt und als Grund für seinen Weggang "nichttechnischen Unsinn" angegeben.
Diese Entscheidung folgt einem Muster der Feindseligkeit einiger Linux-Kernel-Entwickler gegenüber der Integration der Programmiersprache Rust in den Linux-Kernel.
Filhos Rücktritt wurde über die Linux Kernel Mailingliste bekanntgegeben. In der E-Mail drückte Filho seinen Dank gegenüber dem Rust-for-Linux-Team aus, erklärte jedoch, dass er nicht mehr die Energie habe, sich mit der Negativität rund um das Projekt auseinanderzusetzen.
Er schloss seine Nachricht mit den Worten ab, dass er zwar glaubt, speichersichere Sprachen wie Rust sind die Zukunft der Kernel-Entwicklung, er jedoch befürchtet, dass, wenn Linux dies nicht übernimmt, ein anderer Kernel es schließlich ersetzen wird.
Hier ist die tatsächliche E-Mail von Wedson:
Hey Leute,
Dies ist eine so kurze Serie, wie sie nur sein kann: Ich entferne mich einfach als Maintainer des Rust-for-Linux-Projekts.
Ich werde mich aus dem Projekt zurückziehen. Nach fast 4 Jahren fehlt mir die Energie und Begeisterung, die ich einst hatte, um auf einigen der nichttechnischen Unsinnigkeiten zu reagieren, daher ist es am besten, dies denen zu überlassen, die sie noch in sich haben.
An das Rust-for-Linux-Team: Danke, ihr seid großartig. Es war eine Freude, mit euch allen zusammenzuarbeiten; die Zeiten, die wir damit verbracht haben, technische Probleme zu diskutieren, Wege zu finden, um Sicherheitslücken zu beheben, usw., habe ich immer genossen und mich darauf gefreut. Ich zähle mich glücklich, mit einer so talentierten und freundlichen Gruppe zusammengearbeitet zu haben.
Ich wünsche dem Projekt allen Erfolg.
Ich glaube wirklich, dass die Zukunft von Kerneln bei speichersicheren Sprachen liegt. Ich bin kein Visionär, aber wenn Linux das nicht übernimmt, fürchte ich, dass ein anderer Kernel damit dasselbe tun wird, was es mit Unix getan hat.
Zuletzt werde ich hier ein kleines, 3 Minuten 30 Sekunden langes Beispiel zur Kontextualisierung hinterlassen:
https://youtu.be/WiPp9YEBV0Q?t=1529 -- und um es noch einmal zu betonen, versucht niemand, jemanden zum Lernen von Rust zu zwingen, noch Refactorings von C-Code zu verhindern.Danke,
-Wedson
Wie Sie vielleicht bemerkt haben, enthielt die E-Mail auch einen Link zu einem YouTube-Video eines Vortrags, den Filho auf dem Linux Kernel Summit 2024 gehalten hat, während dessen er von einigen Mitgliedern des Publikums erheblichen Widerstand bezüglich der Verwendung von Rust im Kernel erhielt.
Kritiker im Publikum argumentierten, dass die Integration von Rust eine unzumutbare Belastung für C-Entwickler darstellen würde, die gezwungen wären, eine neue Sprache zu lernen und die Kompatibilität mit Rust-Bindungen zu bewahren.
Darüber hinaus äußerten einige Entwickler Bedenken hinsichtlich der Stabilität der Rust-Bindungen und der Möglichkeit von Funktionsstörungen, wenn Änderungen am C-Code vorgenommen werden.
Filho und andere Befürworter von Rust im Kernel sind jedoch der Meinung, dass diese Bedenken übertrieben sind und dass Rust zusammen mit C existieren kann, ohne die Stabilität des Kernels zu gefährden. Sie argumentieren, dass die Vorteile von Rust, insbesondere seine Speichersicherheitsfunktionen, die Herausforderungen der Integration überwiegen.
Die Debatte über die Aufnahme von Rust in den Linux-Kernel unterstreicht eine breitere Spannung in der Open-Source-Community zwischen der Aufrechterhaltung einer stabilen Codebasis und der Förderung von Innovation.
Während einige Entwickler die Vertrautheit und Zuverlässigkeit von C schätzen, sehen andere die Annahme neuerer, sichererer Sprachen wie Rust als wesentlich für die langfristige Gesundheit und Sicherheit des Linux-Kernels an.
Das Ergebnis dieser Debatte wird wahrscheinlich erhebliche Auswirkungen auf die Zukunft von Linux und das breitere Open-Source-Ökosystem haben.
Reaktion der Linux-Community
Unter der Linux-Community gibt es viele hitzige Diskussionen darüber, ob Rust in den Linux-Kernel aufgenommen werden soll oder nicht. Wie ich in dieser Reddit-Diskussion gesehen habe, sind hier die Argumente für und gegen die Verwendung von Rust im Linux-Kernel.
Argumente für die Aufnahme von Rust in den Linux-Kernel
1. Erhöhte Speichersicherheit:
Rusts Speicher-Sicherheitsfunktionen können helfen, eine große Klasse von Fehlern und Sicherheitslücken zu verhindern, die C- und C++-Code plagen. Dies ist besonders wichtig in einem Codebestand, der so groß und komplex ist wie der Linux-Kernel, wo selbst hochqualifizierte Programmierer Fehler machen können.
Außerdem deuten Daten von Google darauf hin, dass die Verwendung von Rust statt C und C++ in bestehenden Codebasen die Anzahl der hochkritischen Sicherheitslücken verringern kann.
2. Neue Entwickler anziehen:
Die Einbeziehung von Rust in den Kernel könnte dazu beitragen, neue Entwickler anzuziehen, die mit modernen Sprachen vertrauter sind und sich möglicherweise von der wahrgenommenen Schwierigkeit und Komplexität der Arbeit mit C abgeschreckt fühlen. Dies war einer der Hauptgründe, warum Linus Torvalds, der Schöpfer von Linux, der Aufnahme von Rust in den Kernel zugestimmt hat.
Argumente gegen die Aufnahme von Rust in den Linux-Kernel
1. Widerstand gegen Veränderungen von Kernel-Entwicklern:
Viele langjährige Kernel-Entwickler sind widerstandsfähig gegenüber dem Erlernen einer neuen Sprache, besonders wenn sie keinen klaren Bedarf dafür sehen. Sie argumentieren, dass sie ihre Zeit lieber damit verbringen würden, mehr über Kernel-Themen zu lernen, als eine neue Art zu lernen, die Arbeit zu erledigen, die sie bereits beherrschen.
Dieser Widerstand hat sich in feindlichem und unprofessionellem Verhalten gegenüber denen gezeigt, die sich für Rust im Kernel einsetzen, wie zum Beispiel die Behandlung von Wedson Almeida Filho.
2. Die Schwierigkeit, die Kompatibilität zwischen C- und Rust-Code aufrechtzuerhalten
Sicherzustellen, dass Änderungen am C-Code den Rust-Code nicht beeinträchtigen und umgekehrt, ist eine erhebliche Herausforderung. Dies ist besonders problematisch, wenn umfassende automatisierte Tests im Kernel fehlen.
3. Bedenken hinsichtlich der Reife von Rust:
Einige Kernel-Entwickler sind besorgt, dass Rust noch nicht ausgereift genug ist, um in einem so kritischen Projekt wie dem Linux-Kernel eingesetzt zu werden. Sie befürchten, dass die Sprache und ihre Werkzeuge sich noch zu schnell weiterentwickeln und dass ihre Nutzung zu Instabilität und unvorhergesehenen Problemen führen könnte.
Warum der Widerstand gegen Rust im Linux-Kernel?
Aus dem oben genannten Reddit-Diskussionsthread und Wedson Almeida Filhos Rücktritts-E-Mail geht klar hervor, dass es Widerstand gegen die Integration von Rust in den Linux-Kernel gibt.
Dieser Widerstand rührt nicht unbedingt von Hass auf die Sprache selbst her, sondern von einem Zusammenfluss verschiedener Faktoren, von denen viele breitere Probleme in der Softwareentwicklung widerspiegeln. Hier ist ein differenzierter Blick auf die Gründe für diesen Widerstand:
1. Technische Bedenken
1.1. Wartungsaufwand und API-Stabilität:
Ein wiederkehrendes Anliegen dreht sich um die Praktikabilität der Aufrechterhaltung der Kompatibilität zwischen C und Rust. Kernel-Entwickler, von denen viele langjährige C-Experten sind, äußern Bedenken wegen der zusätzlichen Verantwortung, sicherzustellen, dass ihre Änderungen am C-Code nicht versehentlich Rust-Komponenten beeinträchtigen. Dies ist besonders relevant angesichts der begrenzten automatisierten Tests im Kernel.
1.2. Komplexität und das ‚Unsichere‘ Dilemma:
Einige Entwickler argumentieren, dass das Überbrücken der Lücke zwischen Rusts strengen Sicherheitsregeln und den inhärenten Komplexitäten der Kernel-Level-Programmierung möglicherweise die übermäßige Verwendung des 'unsafe'-Schlüsselworts in Rust erforderlich macht. Dies wird als potenziell untergrabend für die Sicherheit angesehen, die Rust zu bringen versucht.
2. Menschliche Faktoren
2.1. Widerstand gegen Veränderungen und Lernkurve:
Viele langjährige Kernel-Maintainer äußern ihre Zurückhaltung, Zeit und Mühe in das Erlernen einer neuen Sprache zu investieren, insbesondere wenn sie C seit Jahren erfolgreich verwenden. Dieser Widerstand wird durch die Wahrnehmung verstärkt, dass die Verantwortung für die Anpassung an Rust bei ihnen liegt und nicht umgekehrt.
2.2. Kommunikationszusammenbruch und wahrgenommene Feindseligkeit:
Die Art und Weise, wie einige Kritiken gegen Rust-Befürworter gerichtet wurden, wie im Video im Zusammenhang mit Filhos Rücktritt zu sehen ist, hat ein feindliches Umfeld geschaffen und offenen Dialog entmutigt. Dies hat potenzielle Rust-Befürworter innerhalb der Kernel-Gemeinschaft weiter entfremdet.
3. Tiefere philosophische und kulturelle Konflikte
3.1. Konfligierende Entwicklungsphilosophien:
Es scheint eine grundlegende Diskrepanz in den Entwicklungsphilosophien zwischen einigen Kernel-Entwicklern und Rust-Befürwortern zu geben. Die Kernel-Community, die Stabilität, bewährte Methoden und ein tiefes Verständnis eines komplexen Codebestands schätzt, könnte die strengen Regeln von Rust und die Betonung der Speichersicherheit eher als zusätzliche Einschränkung denn als Vorteil wahrnehmen.
3.2. Wahrgenommener 'Elitismus' und Generationsunterschied:
Einige Kommentare in der beigefügten Reddit-Diskussion deuten auf eine Wahrnehmung der Rust-Befürworter als 'elitär' oder darauf hin, dass sie die Expertise von C-Entwicklern herabsetzen. Dies, zusammen mit einer möglichen Generationenkluft zwischen langjährigen C-Entwicklern und jenen, die mit neueren Sprachen vertrauter sind, erschwert zusätzlich die Integration von Rust in eine Gemeinschaft mit etablierten Normen und Hierarchien.
Bitte beachten Sie, dass nicht alle Linux-Kernel-Entwickler gegen Rust sind. Viele sehen die potenziellen Vorteile und unterstützen seine Einbeziehung. Aber die oben genannten Punkte heben das komplexe Zusammenspiel technischer, sozialer und philosophischer Faktoren hervor, die zum Widerstand gegen Rust im Linux-Kernel-Team beitragen.
Zukunft von Rust im Linux-Kernel
Die Zukunft von Rust im Linux-Kernel hängt davon ab, wie effektiv diese Bedenken angesprochen werden. Offene Kommunikation, eine klare Demonstration der Vorteile von Rust in realen Kernel-Szenarien und ein kollaborativer Ansatz, der die Expertise sowohl der C- als auch der Rust-Entwickler respektiert, werden für eine erfolgreiche Integration wichtig sein.
Während diese Debatte noch läuft und es keine Reaktion von Linus Torvalds gibt, können wir noch zu keinem Schluss kommen. Wir werden Sie auf dem Laufenden halten. Bleiben Sie für zukünftige Updates dran.
Ähnliche Lektüre:
- Berichten zufolge plant Linus Torvalds, Rust-Code in den Linux-Kernel zu integrieren
- Asahi-Linux-Gründer Hector Martin tritt wegen Kernel-Konflikten zurück
- Rust im Linux-Kernel: Christoph Hellwig tritt als DMA-Maintainer zurück
- Debian-Entwickler geben Bcachefs-Tools-Paket aufgrund von Konflikten mit dem Upstream auf
- Die Zukunft von Bcachefs im Linux-Kernel nach Streit über den Verhaltenskodex unsicher
