Quantos desenvolvedores reais trabalham no kernel do Linux?

18

Para um estudo que estou fazendo, perguntaram-me quantos desenvolvedores reais cometem em uma versão típica do kernel.

Eu sei que há Linus Torvalds como desenvolvedor principal, seguido por muitos segundos desenvolvedores principais. Vários dos quais trabalham em empresas. Mas aí vem minhas dúvidas:

  1. Um commit no kernel de uma empresa significa que muitos desenvolvedores dessa empresa trabalharam para tornar esse commit possível ou era apenas um homem (aquele que fez o commit).

  2. Existem grupos de terceiros que ajudam empresas ou desenvolvedores principais?

  3. Qual poderia ser a estimativa do número total de pessoas envolvidas em uma versão específica do Kernel. Não apenas o número total de empresas, mas a quantidade real de pessoas que contribuíram de uma maneira ou de outra para o kernel.

Luis Alvarado
fonte

Respostas:

20

Pode ser interessante clonar o repositório git do linux e consultá-lo imediatamente.

Clonando o repositório

Cuidado, é um arquivo grande! (~ 1.5G)

Instale gite execute o seguinte (em um novo diretório):

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

Consultando o repositório

Depois de cloná-lo, você pode analisar o log de confirmações com git log. Como o registro é longo, convém limitar sua pesquisa a um período menor:

git log <since>..<to>

por exemplo

git log v3.4..v3.5

Teoricamente, isso tem muitas informações que você pode usar. Por exemplo, esse comando imprime os 20 confirmadores mais prolíficos, juntamente com o número de confirmações e o endereço de email.

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

O endereço de email pode fornecer uma idéia sobre os empregadores dos desenvolvedores (google.com, cisco.com, oracle.com).

rahmu
fonte
11
Também é possível consultar o histórico do código sem precisar cloná-lo localmente através da API do github , por exemplo, aqui está a lista de colaboradores api.github.com/repos/torvalds/linux/contributors (parece ser classificado pelo número de confirmações)
matt wilkie
de acordo com este comando acima apenas listas o ramo atual e é preciso usar git log --all ...para uma forma mais abrangente lista
wilkie mate
11
Observe também que isso listará os colaboradores do kernel da linha principal. Existem bifurcações / ramificações do kernel que foram distribuídas que foram criadas com patches de outros desenvolvedores, por exemplo, o kernel usado no Android.
Peter L.
Você provavelmente deseja contar o número de confirmações sem mesclagem e verá que Linus está fazendo muito menos trabalho que isso.
Alexandre Belloni
14

Vá para a cobertura do Kernel em LWN.net e faça uma pesquisa por "Versões" e "Estatísticas do colaborador". Faça também uma pesquisa por "Quem". Existem vários artigos nesse índice com títulos como (mais recentemente) Quem escreveu 3,5 .

Embora esses artigos possam não responder diretamente à sua pergunta, eles são uma resposta tão detalhada quanto é provável que você encontre na rede, sem tentar coletar informações em primeira mão. Em particular, eles devem fornecer pelo menos uma resposta parcial para 3.

A coleta de estatísticas é feita pelo gitdm (artigo do LWN anunciando: gitdm v0.10 disponível ). Obrigado a vonbrand por apontar isso. O repositório pode atualmente (janeiro de 2015) ser obtido com

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

Quanto a 1 e 2, eles não são tão bem definidos. No caso de 1, imagino que a resposta seja quase certa sim, algumas vezes. Mas não está claro o que você está procurando - evidências anedóticas ou algumas estatísticas. Se estatísticas, de que forma? No caso de 2, por "grupos de terceiros", não está claro o que você quer dizer e que tipo de ajuda você está se referindo. As pessoas em um canal de IRC contariam como um grupo de terceiros, por exemplo? Ou você está falando de uma relação contratual mais formal em que o dinheiro muda de mãos? Como uma empresa externa contratada para consultoria temporária? De qualquer forma, seria difícil obter essas informações sem falar diretamente com os desenvolvedores do kernel e, mesmo assim, provavelmente seriam anedóticos. Suponho que fóruns como a lista de discussão do kernel do Linux sejam uma possibilidade nesse caso.

Faheem Mitha
fonte
Obrigado. No terceiro caso, estou procurando pessoas que também ajudaram de alguma forma a fazer um commit. Por exemplo, um grupo de pessoas que ajudaram alguém em uma empresa. Essa pessoa na empresa trabalhou com um grupo que no final se comprometeu com o kernel.
Luis Alvarado
O encontro estatísticas é feito por gitdm (artigo LWN announcig que lwn.net/Articles/290957 , mais recente cometer é de Arpil 2012)
vonbrand