¿Cuántos desarrolladores reales trabajan en el kernel de Linux?


18

Para un estudio que estoy haciendo, me preguntaron cuántos desarrolladores reales se comprometen en una versión típica del kernel.

Sé que Linus Torvalds es el desarrollador principal, seguido de muchos segundos desarrolladores principales. Varios de los cuales trabajan en empresas. Pero aquí vienen mis dudas:

  1. ¿Un compromiso con el núcleo de una empresa significa que muchos desarrolladores de esa empresa trabajaron para hacer posible ese compromiso o fue solo un hombre (El que hizo el compromiso).

  2. ¿Hay grupos de terceros que ayudan a las empresas o desarrolladores principales?

  3. ¿Cuál podría ser la estimación del número total de personas involucradas en una versión particular del Kernel? No solo el número total de empresas, sino la cantidad real de personas que contribuyeron de una forma u otra al núcleo.

Respuestas:


20

Podría ser interesante clonar el repositorio git de linux y consultarlo de inmediato.

Clonando el repositorio

¡Cuidado, es un archivo grande! (~ 1.5G)

Instale gity ejecute lo siguiente (en un nuevo directorio):

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

Consultando el repositorio

Una vez que lo haya clonado, puede analizar el registro de confirmaciones con git log. Dado que el registro es muy largo, es posible que desee limitar su investigación a un período de tiempo menor:

git log <since>..<to>

por ejemplo

git log v3.4..v3.5

Teóricamente, esto tiene mucha información que podrías usar. Por ejemplo, ese comando imprime los 20 confirmadores más prolíficos junto con su número de confirmaciones y su dirección de correo electrónico.

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

La dirección de correo electrónico puede darle una idea sobre los empleadores de los desarrolladores (google.com, cisco.com, oracle.com).


1
También es posible consultar el historial del código sin tener que clonarlo localmente a través de la api github , por ejemplo, aquí está la lista de contribuyentes api.github.com/repos/torvalds/linux/contributors (parece estar ordenada por número de confirmaciones)
mate wilkie

de acuerdo con esto, el comando anterior solo enumera la rama actual y uno debe usar git log --all ...para una lista más completa
matt wilkie

1
También tenga en cuenta que esto enumerará los contribuyentes al núcleo de la línea principal. Hay bifurcaciones / ramas del núcleo que se han distribuido y que se crearon con parches de otros desarrolladores, por ejemplo, el núcleo utilizado en Android.
Peter L.

Probablemente desee contar el número de confirmaciones que no son de fusión y verá que Linus está haciendo mucho menos trabajo que eso.
Alexandre Belloni

14

Vaya a Cobertura de kernel en LWN.net y busque "Comunicados" y "Estadísticas de contribuidor". También haga una búsqueda de "Quién". Hay varios artículos en ese índice con títulos como (más recientemente) Quién escribió 3.5 .

Si bien estos artículos pueden no responder directamente a su pregunta, son una respuesta tan detallada como es probable que encuentre en la red, sin intentar recopilar información de primera mano. En particular, deben proporcionar al menos una respuesta parcial a 3.

La recopilación de estadísticas la realiza gitdm (artículo LWN que lo anuncia: gitdm v0.10 disponible ). Gracias a vonbrand por señalar esto. El repositorio se puede obtener actualmente (enero de 2015) con

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

En cuanto a 1 y 2, no están tan bien definidos. En el caso de 1, me imagino que la respuesta es casi seguro que sí, algunas veces. Pero no está claro lo que está buscando: evidencia anecdótica o algunas estadísticas. Si las estadísticas, ¿en qué forma? En el caso de 2, por "grupos de terceros" no está claro a qué se refiere y a qué tipo de ayuda se refiere. ¿Las personas en un canal IRC contarían como un grupo de terceros, por ejemplo? ¿O estás hablando de una relación contractual más formal donde el dinero cambia de manos? ¿Como una compañía externa contratada para consultoría temporal? En cualquier caso, tal información sería difícil de obtener sin hablar directamente con los desarrolladores del kernel, e incluso entonces probablemente sería anecdótica. Supongo que foros como la lista de correo del kernel de Linux serían una posibilidad en ese caso.


Gracias. En el tercer caso, estoy buscando personas que también hayan ayudado de alguna manera a comprometerse. Por ejemplo, un grupo de personas que ayudaron a alguien en una empresa. Esta persona en la empresa trabajó con un grupo que al final se comprometió con el núcleo.
Luis Alvarado

La recopilación de estadísticas la realiza gitdm (artículo de LWN que lo anuncia lwn.net/Articles/290957 , el último compromiso es de Arpil 2012)
vonbrand
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.