¿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.

Luis Alvarado
fuente

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

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

rahmu
fuente
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.

Faheem Mitha
fuente
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