Heim  >  Artikel  >  System-Tutorial  >  Eine kurze Diskussion über neun Lehren aus 25 Jahren Erfahrung in der Linux-Kernel-Entwicklung

Eine kurze Diskussion über neun Lehren aus 25 Jahren Erfahrung in der Linux-Kernel-Entwicklung

WBOY
WBOYnach vorne
2024-01-10 08:34:07784Durchsuche

Eine kurze Diskussion über neun Lehren aus 25 Jahren Erfahrung in der Linux-Kernel-Entwicklung

Originaltext: 9 Lektionen aus 25 Jahren Linux-Kernel-Entwicklung
Von Greg Kroah-Hartman
Übersetzung: Yan Jinghan

Die Linux-Kernel-Community feierte 2016 ihr 25-jähriges Bestehen und viele Leute kamen, um uns nach dem Geheimnis der Langlebigkeit und des Erfolgs des Projekts zu fragen. Normalerweise lache ich und sage dann scherzhaft, dass ich wirklich keine Ahnung hatte, dass 25 Jahre vergangen sind. Das Projekt war immer mit Meinungsverschiedenheiten und Herausforderungen konfrontiert. Aber im Ernst, unsere Fähigkeit, dies zu tun, hängt stark von der Fähigkeit der Gemeinschaft ab, zu reflektieren und sich zu verändern.

Vor etwa 16 Jahren hatten sich die meisten Kernel-Entwickler noch nie getroffen, wir kommunizierten nur per E-Mail, und so kam Ted T’so auf die Idee eines Kernel-Gipfels. Jetzt kommen Kernel-Entwickler jedes Jahr zusammen, um technische Probleme zu lösen und, was noch wichtiger ist, zu überprüfen, was wir im vergangenen Jahr richtig und was falsch gemacht haben. Entwickler können offen diskutieren, wie sie miteinander kommunizieren und wie der Entwicklungsprozess funktioniert. Dann werden wir den Prozess verbessern, neue Tools wie Git entwickeln und die Art und Weise unserer Zusammenarbeit weiter verändern.

Obwohl wir noch nicht alle Hauptgründe für den Erfolg des Linux-Kernels vollständig verstanden haben, gibt es dennoch einige Erfahrungen, die es wert sind, geteilt zu werden.

1. Ein kürzerer Veröffentlichungszyklus ist wichtig

In den frühen Phasen des Linux-Projekts dauerte die Veröffentlichung jeder Hauptversion des Kernels mehrere Jahre, was bedeutete, dass Benutzer lange warten mussten, um in den Genuss neuer Funktionen zu kommen, was für Benutzer und Wiederverkäufer ziemlich frustrierend war. Und was noch wichtiger ist: Ein so langer Zyklus bedeutet, dass viel Code auf einmal integriert werden muss. So viel Code in einer Version zu konsolidieren, ist stressig.

Kürzere Zyklen können all diese Probleme lösen. Neuer Code kann in kürzerer Zeit in die stabile Version integriert werden. Durch die Integration neuen Codes in eine nahezu stabile Basisversion können grundlegende Änderungen mit minimalen Auswirkungen auf das System eingeführt werden. Entwickler wissen, dass es, wenn sie diesen Release-Zyklus verpassen, in zwei Monaten einen weiteren geben wird, sodass sie Code selten vorzeitig zusammenführen.

2. Die Prozesserweiterung erfordert ein verteiltes mehrschichtiges Entwicklungsmodell

Vor langer Zeit gingen alle Änderungswünsche direkt an Linus Torvalds, aber das erwies sich bald als unangemessen, da niemand ein so komplexes Projekt wie den Betriebssystemkern vollständig verstehen konnte. Schon sehr früh kamen Betreuer aus verschiedenen Bereichen des Kernels auf die Idee, Teile des Kernels Personen zuzuweisen, die mit diesem Bereich vertraut sind. Zum Beispiel Netzwerk, Wireless, Treibersubsysteme wie PCI oder USB oder Dateisysteme wie ext2 oder vfat. Dies lässt sich dann auf Hunderte von Betreuern übertragen, die für die Codeüberprüfung und -integration verantwortlich sind, sodass Tausende von Änderungen in jede Version einbezogen werden können, ohne dass die Produktqualität darunter leidet.

3. Die Bedeutung von Werkzeugen

Die Kernel-Entwicklung hat versucht, den Anwendungsbereich der Entwickler zu erweitern, bis BitKeeper, ein Quellcode-Verwaltungssystem, aufkam. Die Praktiken der Community änderten sich fast über Nacht, und das Aufkommen von Git brachte einen weiteren Sprung. Ohne die richtigen Tools funktioniert ein Projekt wie der Kernel nicht richtig und wird unter seinem eigenen Gewicht zusammenbrechen.

4. Ein starkes Modell zur Führung der öffentlichen Meinung ist sehr wichtig

Wenn ein leitender Entwickler eine eingereichte Änderung ablehnt, wird die Änderung im Allgemeinen nicht zusammengeführt. Es ist sehr frustrierend, wenn ein Entwickler herausfindet, dass Code, den er vor Monaten eingereicht hat, auf der Mailingliste abgelehnt wurde. Es stellt aber auch sicher, dass sich die Kernel-Entwicklung an eine große Anzahl von Benutzern und Problemen anpassen kann. Keine Benutzergemeinschaft kann Änderungen auf Kosten anderer Gruppen vornehmen. Wir verfügen über eine Codebasis, die alles von Mikrosystemen bis hin zu Supercomputern unterstützen und auf viele Szenarien angewendet werden kann.

5. Eine strenge „No Return“-Regel ist ebenfalls wichtig

Vor etwa einem Jahrzehnt versprach die Kernel-Entwickler-Community, dass alle nachfolgenden Kernel-Versionen auch in dieser Umgebung ordnungsgemäß funktionieren würden, wenn ein bestimmter Kernel in einer bestimmten Umgebung ordnungsgemäß ausgeführt würde. Wenn die Community feststellt, dass eine Änderung andere Probleme verursacht hat, wird sie das Problem schnell beheben. Diese Regel verspricht Benutzern, dass Systemaktualisierungen ihre ursprünglichen Systeme nicht zerstören. Daher sind Betreuer bereit, diesen Kernel weiterzuführen und gleichzeitig neue Funktionen zu entwickeln.

6. Es ist für Unternehmen von entscheidender Bedeutung, sich am Entwicklungsprozess zu beteiligen, aber kein einzelnes Unternehmen kann die Kernelentwicklung dominieren

Seit der Veröffentlichung der Kernel-Versionsnummer 3.18 im Dezember 2014 haben rund 5062 einzelne Entwickler aus fast 500 Unternehmen zum Linux-Kernel beigetragen. Die meisten Entwickler werden für ihre Arbeit bezahlt und die Änderungen, die sie vornehmen, dienen dem Unternehmen, für das sie arbeiten. Obwohl jedoch jedes Unternehmen den Kernel entsprechend spezifischer Anforderungen verbessern kann, kann kein Unternehmen die Entwicklung dazu veranlassen, Dinge zu bewirken, die anderen schaden oder die Funktionalität des Kernels einschränken.

7. Es sollte keine internen Grenzen im Projekt geben

Kernel-Entwickler müssen sich auf bestimmte Teile des Kernels konzentrieren, aber jeder Entwickler kann Änderungen an jedem Teil des Kernels vornehmen, solange die Änderung gerechtfertigt ist. Dadurch werden Probleme gelöst, wenn sie auftreten, und nicht vermieden. Entwickler haben viele und unterschiedliche Meinungen über den Kernel als Ganzes, und selbst die hartnäckigsten Betreuer können notwendige Verbesserungen in einem bestimmten Subsystem nicht auf unbestimmte Zeit aufschieben.

8. Wichtige Funktionen beginnen nach und nach

Der ursprüngliche Kernel der Version 0.01 hatte nur 10.000 Zeilen Code; jetzt kommen alle zwei Tage mehr als 10.000 Zeilen hinzu. Einige grundlegende, winzige Funktionen, die Entwickler jetzt hinzufügen, könnten in Zukunft zu wichtigen Subsystemen werden.

9. Zusammenfassend lässt sich sagen, dass die 25-jährige Geschichte der Kernel-Entwicklung zeigt, dass eine kontinuierliche Zusammenarbeit gemeinsame Ressourcen hervorbringen kann, die nicht von einer einzelnen Gruppe entwickelt werden können

Seit 2005 haben rund 14.000 Einzelentwickler aus mehr als 1.300 Unternehmen zum Kernel beigetragen. Daher hat sich der Linux-Kernel durch die Bemühungen vieler Unternehmen, die in starkem Wettbewerb miteinander stehen, zu einer großen öffentlichen Ressource entwickelt.

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über neun Lehren aus 25 Jahren Erfahrung in der Linux-Kernel-Entwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:jb51.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen