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.

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 <torvalds@linux-foundation.org>
257  Greg Kroah-Hartman <gregkh@linuxfoundation.org>
196  Mark Brown <broonie@opensource.wolfsonmicro.com>
191  Axel Lin <axel.lin@gmail.com>
172  David S. Miller <davem@davemloft.net>
138  Daniel Vetter <daniel.vetter@ffwll.ch>
132  H Hartley Sweeten <hartleys@visionengravers.com>
128  Al Viro <viro@zeniv.linux.org.uk>
117  Stephen Warren <swarren@nvidia.com>
113  Tejun Heo <tj@kernel.org>
111  Paul Mundt <lethal@linux-sh.org>
104  Johannes Berg <johannes.berg@intel.com>
103  Shawn Guo <shawn.guo@linaro.org>
101  Arnd Bergmann <arnd@arndb.de>
100  Thomas Gleixner <tglx@linutronix.de>
 96  Eric Dumazet <edumazet@google.com>
 94  Hans Verkuil <hans.verkuil@cisco.com>
 86  Chris Wilson <chris@chris-wilson.co.uk>
 85  Sam Ravnborg <sam@ravnborg.org>
 85  Dan Carpenter <dan.carpenter@oracle.com>

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


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.