Combien de développeurs réels travaillent sur le noyau Linux?

18

Pour une étude que je fais, on m'a demandé combien de développeurs réels s'engageaient sur une version typique du noyau.

Je sais qu'il y a Linus Torvalds en tant que développeur principal, suivi de nombreux seconds développeurs principaux. Plusieurs d'entre eux travaillent dans des entreprises. Mais voici mes doutes:

  1. Est-ce qu'un commit au noyau d'une entreprise signifie que de nombreux développeurs de cette entreprise ont travaillé pour rendre ce commit possible ou était-ce juste un homme (celui qui a fait le commit).

  2. Existe-t-il des groupes tiers qui aident les entreprises ou les principaux développeurs?

  3. Quelle pourrait être l'estimation du nombre total de personnes impliquées dans une version particulière du noyau. Non seulement le nombre total d'entreprises, mais le nombre réel de personnes qui ont contribué d'une manière ou d'une autre au noyau.

Luis Alvarado
la source

Réponses:

20

Il pourrait être intéressant de cloner le référentiel git de linux et de l'interroger immédiatement.

Clonage du dépôt

Attention, c'est un gros fichier! (~ 1,5 G)

Installez gitet exécutez les éléments suivants (dans un nouveau répertoire):

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

Interroger le référentiel

Une fois que vous l'avez cloné, vous pouvez analyser le journal des validations avec git log. Étant donné que le journal est si long, vous souhaiterez peut-être limiter votre recherche à une période plus courte:

git log <since>..<to>

par exemple

git log v3.4..v3.5

Cela a théoriquement beaucoup d'informations que vous pourriez utiliser. Par exemple, cette commande imprime les 20 committers les plus prolifiques ainsi que leur nombre de commits et leur adresse e-mail.

$ 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]>

L'adresse e-mail peut vous donner une idée des employeurs des développeurs (google.com, cisco.com, oracle.com).

rahmu
la source
1
Il est également possible d'interroger l'historique du code sans avoir à le cloner localement via l' api github , par exemple voici la liste des contributeurs api.github.com/repos/torvalds/linux/contributors (semble être trié par nombre de validations)
matt wilkie
selon cela, la commande ci-dessus ne répertorie que la branche actuelle et il faut utiliser git log --all ...pour une liste plus complète
matt wilkie
1
Notez également que cela répertoriera les contributeurs au noyau principal. Il y a des fourches / branches du noyau qui ont été distribuées et qui ont été construites avec des correctifs d'autres développeurs, par exemple le noyau utilisé dans Android.
Peter L.
Vous voulez probablement compter le nombre de validations non fusionnées et vous verrez que Linus fait beaucoup moins de travail que cela.
Alexandre Belloni du
14

Accédez à la couverture du noyau sur LWN.net et recherchez les «versions» et les «statistiques des contributeurs». Effectuez également une recherche sur "Qui". Il y a divers articles dans cet index avec des titres comme (le plus récemment) Qui a écrit 3.5 .

Bien que ces articles ne répondent pas directement à votre question, ils sont une réponse aussi détaillée que vous êtes susceptible de trouver sur le net, sans essayer de recueillir des informations de première main. En particulier, ils devraient fournir au moins une réponse partielle à 3.

La collecte des statistiques se fait par gitdm (article LWN annonçant: gitdm v0.10 disponible ). Merci à vonbrand de l'avoir signalé. Le référentiel peut actuellement (janvier 2015) être obtenu avec

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

Quant aux 1 et 2, ils ne sont pas si bien définis. Dans le cas de 1, j'imagine que la réponse est presque certainement oui, parfois. Mais ce que vous recherchez n'est pas clair - des preuves anecdotiques ou des statistiques. Si les statistiques, sous quelle forme? Dans le cas de 2, par «groupes tiers», on ne sait pas exactement ce que vous voulez dire et à quel type d'aide vous faites référence. Les personnes sur un canal IRC seraient-elles considérées comme un groupe tiers, par exemple? Ou parlez-vous d'une relation contractuelle plus formelle où l'argent change de mains? Comme une entreprise extérieure retenue pour un conseil temporaire? Dans tous les cas, de telles informations seraient difficiles à obtenir sans parler directement aux développeurs du noyau, et même alors, elles seraient probablement anecdotiques. Je suppose que des forums comme la liste de diffusion du noyau Linux seraient une possibilité dans ce cas.

Faheem Mitha
la source
Je vous remercie. Dans le 3ème cas, je recherche des personnes qui ont également aidé à faire un commit. Par exemple, un groupe de personnes qui ont aidé quelqu'un dans une entreprise. Cette personne dans l'entreprise a travaillé avec un groupe qui à la fin s'est engagé sur le noyau.
Luis Alvarado
La collecte des statistiques est effectuée par gitdm (article LWN l'annonçant lwn.net/Articles/290957 , le dernier commit date d'Arpil 2012)
vonbrand