Nicht direkt über Linux-Design, aber ich glaube, der Entwicklungsprozess dahinter ist der bemerkenswerteste. Der Kernel selbst entwickelt sich ständig weiter und das mit unglaublicher Geschwindigkeit. Dies ist nur durch die dezentrale Versionskontrolle (git) möglich, die es einer sehr großen Anzahl von Entwicklern ermöglicht, gleichzeitig zu arbeiten.
Auch mit git bisect haben sie etwas bemerkenswertes erreicht; Es ist nun möglich, dass Nicht-Entwickler Fehler aufspüren. Hier ist ein Zitat von David Miller:
Was Menschen nicht bekommen, ist, dass dies eine Situation, in der „Endknoten Prinzip“ gilt. Wenn Sie begrenzte Ressourcen haben (hier: Entwickler) schieben Sie nicht den Großteil der Belastung auf sie. Stattdessen schieben Sie Dinge auf die Ressource, die Sie haben viele, die Endknoten (hier: Benutzer), so dass die Situation tatsächlich skaliert.
Menschen einen Fehler haben Zugriff auf die Umwelt berichten, wo der Fehler passiert, und „git bisect“ automatisch relevante Informationen aus dieser Umgebung extrahieren. Dies ist auch eine gute Möglichkeit, neue Mitwirkende zu bekommen.
Wenn Entwickler Code beisteuern möchten, müssen sie ihren Code unbedingt in kleine, separat anwendbare Patches unterteilen, damit jede Änderung leicht überprüft werden kann. Auf diese Weise kann ein großer Teil ihres Codes von vielen Menschen verstanden werden.
Die Linux Management Style ist eine interessante Lektüre. Linus versucht, eine Atmosphäre zu leben, in der man sich nicht hinter Höflichkeit versteckt, sondern klar angibt, was man denkt. Das mag manchmal etwas unhöflich sein, aber ich bin mir sicher, dass es die Codequalität auf hohem Niveau hält.
Ich verstehe die -1-Stimme nicht wirklich. Es ist eine relevante Frage, nur der Titel klingt zu subjektiv. – dmeister
Ist das eine Frage, die Sie für Hausaufgaben beantworten müssen? –
Wer ist "jeder"? Haben Sie dafür irgendwelche Quellen? –