Wie viele tatsächliche Entwickler arbeiten am Linux-Kernel?

18

Für eine Studie, die ich mache, wurde ich gefragt, wie viele tatsächliche Entwickler sich für eine typische Kernel-Version entscheiden.

Ich weiß, dass es Linus Torvalds als Hauptentwickler gibt, gefolgt von vielen zweiten Hauptentwicklern. Einige davon arbeiten in Unternehmen. Aber hier kommen meine Zweifel:

  1. Bedeutet ein Commit eines Unternehmens an den Kernel, dass viele Entwickler dieses Unternehmens daran gearbeitet haben, dieses Commit zu ermöglichen, oder war es nur ein Mann (derjenige, der das Commit ausgeführt hat)?

  2. Gibt es Gruppen von Drittanbietern, die Unternehmen oder Hauptentwicklern helfen?

  3. Wie hoch könnte die Schätzung der Gesamtzahl der Personen sein, die an einer bestimmten Version des Kernels beteiligt sind? Nicht nur die Gesamtzahl der Unternehmen, sondern auch die tatsächliche Anzahl der Personen, die auf die eine oder andere Weise zum Kernel beigetragen haben.

Luis Alvarado
quelle

Antworten:

20

Es könnte interessant sein, das Git-Repository von Linux zu klonen und es sofort abzufragen.

Repo klonen

Vorsicht, es ist eine große Datei! (~ 1,5 g)

Installieren Sie gitFolgendes und führen Sie es aus (in einem neuen Verzeichnis):

git clone http://github.com/torvalds/linux.git

Repo abfragen

Sobald Sie es geklont haben, können Sie das Protokoll der Commits mit analysieren git log. Da das Protokoll so lang ist, können Sie Ihre Recherche auf einen kürzeren Zeitraum beschränken:

git log <since>..<to>

zum Beispiel

git log v3.4..v3.5

Dies hat theoretisch eine Menge Informationen, die Sie verwenden könnten. Mit diesem Befehl werden beispielsweise die 20 produktivsten Committer zusammen mit der Anzahl der Commits und ihrer E-Mail-Adresse gedruckt.

$ git log v3.4..v3.5 | grep Author | cut -d ":" -f 2 | sort | uniq -c | sort -nr | head -n 20
417  Linus Torvalds <[email protected]>
257  Greg Kroah-Hartman <[email protected]>
196  Mark Brown <[email protected]>
191  Axel Lin <[email protected]>
172  David S. Miller <[email protected]>
138  Daniel Vetter <[email protected]>
132  H Hartley Sweeten <[email protected]>
128  Al Viro <[email protected]>
117  Stephen Warren <[email protected]>
113  Tejun Heo <[email protected]>
111  Paul Mundt <[email protected]>
104  Johannes Berg <[email protected]>
103  Shawn Guo <[email protected]>
101  Arnd Bergmann <[email protected]>
100  Thomas Gleixner <[email protected]>
 96  Eric Dumazet <[email protected]>
 94  Hans Verkuil <[email protected]>
 86  Chris Wilson <[email protected]>
 85  Sam Ravnborg <[email protected]>
 85  Dan Carpenter <[email protected]>

Die E-Mail-Adresse kann Ihnen einen Eindruck über die Arbeitgeber der Entwickler vermitteln (google.com, cisco.com, oracle.com).

rahmu
quelle
1
Es ist auch möglich , den Code Geschichte abfragen , ohne es lokal über das klonen mit Github api , zum Beispiel hier ist die Liste der Mitwirkenden api.github.com/repos/torvalds/linux/contributors (erscheint nach der Anzahl der Commits sortiert werden)
matt Wilkie
nach dieser das Kommando über nur Listen der aktuellen Zweig und man braucht , um den Einsatz git log --all ...für eine umfassendere Liste
matt wilkie
1
Beachten Sie auch, dass hierdurch die Mitwirkenden am Hauptkernel aufgelistet werden. Es wurden Forks / Branches des Kernels verteilt, die mit Patches anderer Entwickler erstellt wurden, zum Beispiel der in Android verwendete Kernel.
Peter L.
Sie möchten wahrscheinlich die Anzahl der nicht zusammengeführten Commits zählen und werden feststellen, dass Linus viel weniger Arbeit leistet.
Alexandre Belloni
14

Gehen Sie zu Kernel Coverage bei LWN.net und suchen Sie nach "Releases" und "Contributor Statistics". Suchen Sie auch nach "Who". In diesem Index befinden sich verschiedene Artikel mit Titeln wie (zuletzt) Who wrote 3.5 .

Obwohl diese Artikel Ihre Frage möglicherweise nicht direkt beantworten, sind sie so ausführlich, wie Sie es wahrscheinlich im Internet finden, ohne dass Sie versuchen, Informationen aus erster Hand zu sammeln. Insbesondere sollten sie zumindest eine teilweise Antwort auf 3 geben.

Das Sammeln der Statistiken wird von gitdm durchgeführt (LWN-Artikel, der dies ankündigt: gitdm v0.10 verfügbar ). Vielen Dank an vonbrand für den Hinweis. Das Repository kann derzeit (Januar 2015) mit bezogen werden

git clone git://git.lwn.net/gitdm.git

Was 1 und 2 betrifft, so sind sie nicht so gut definiert. Im Fall von 1 stelle ich mir die Antwort mit ziemlicher Sicherheit ja vor. Es ist jedoch nicht klar, wonach Sie suchen - Anekdoten oder Statistiken. Wenn Statistiken, in welcher Form? Im Fall von 2 ist unter "Gruppen von Drittanbietern" nicht klar, was Sie meinen und auf welche Art von Hilfe Sie sich beziehen. Würden beispielsweise Personen in einem IRC-Kanal als Drittanbieter-Gruppe gezählt? Oder handelt es sich um ein förmlicheres Vertragsverhältnis, bei dem das Geld den Besitzer wechselt? Wie ein externes Unternehmen, das für eine vorübergehende Beratung zurückgehalten wird? In jedem Fall wären solche Informationen schwer zu bekommen, ohne direkt mit den Kernel-Entwicklern zu sprechen, und selbst dann wären sie wahrscheinlich anekdotisch. Ich nehme an, Foren wie die Linux-Kernel-Mailingliste wären in diesem Fall eine Möglichkeit.

Faheem Mitha
quelle
Vielen Dank. Im dritten Fall suche ich Leute, die mir auch irgendwie geholfen haben, ein Commit zu machen. Zum Beispiel eine Gruppe von Menschen, die jemandem in einem Unternehmen geholfen haben. Diese Person in der Firma arbeitete mit einer Gruppe zusammen, die am Ende eine Verpflichtung gegenüber dem Kernel einging.
Luis Alvarado
Die Erfassung der Statistiken erfolgt durch gitdm (LWN-Artikel lwn.net/Articles/290957 , spätestes Commit ist vom Arpil 2012)
vonbrand