Ilu rzeczywistych programistów pracuje na jądrze Linuksa?

18

W ramach przeprowadzanego przeze mnie badania zapytano mnie, ilu rzeczywistych programistów popełnia typową wersję jądra.

Wiem, że Linus Torvalds jest głównym programistą, a za nim wielu drugich głównych programistów. Kilka z nich działa w firmach. Ale oto moje wątpliwości:

  1. Czy zatwierdzenie jądra przez firmę oznacza, że ​​wielu deweloperów z tej firmy pracowało, aby umożliwić to zatwierdzenie, czy też był to tylko jeden człowiek (Ten, który dokonał zatwierdzenia).

  2. Czy istnieją grupy osób trzecich, które pomagają firmom lub głównym deweloperom?

  3. Jaka może być szacunkowa liczba osób zaangażowanych w daną wersję jądra. Nie tylko łączna liczba firm, ale faktyczna liczba osób, które wniosły taki czy inny wkład do jądra.

Luis Alvarado
źródło

Odpowiedzi:

20

Interesujące może być sklonowanie repozytorium git systemu Linux i natychmiastowe sprawdzenie go.

Klonowanie repozytorium

Uwaga, to duży plik! (~ 1,5 g)

Zainstaluj giti uruchom następujące elementy (w nowym katalogu):

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

Sprawdzanie repozytorium

Po sklonowaniu możesz analizować dziennik zatwierdzeń za pomocą git log. Ponieważ dziennik jest tak długi, możesz ograniczyć swoje badania do krótszego okresu:

git log <since>..<to>

na przykład

git log v3.4..v3.5

Ma teoretycznie wiele informacji, które możesz wykorzystać. Na przykład to polecenie drukuje 20 najbardziej płodnych podmiotów zatwierdzających wraz z ich liczbą zatwierdzeń i ich adresem 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]>

Adres e-mail może dać ci wyobrażenie o pracodawcach programistów (google.com, cisco.com lub oracle.com).

rahmu
źródło
1
Możliwe jest również przeszukiwanie historii kodu bez konieczności klonowania go lokalnie za pomocą interfejsu github api , np. Oto lista autorów api.github.com/repos/torvalds/linux/contributors (wydaje się, że jest posortowana według liczby zatwierdzeń)
mat wilkie
zgodnie z tym powyższe polecenie wyświetla tylko bieżącą gałąź i należy skorzystać git log --all ...z bardziej wyczerpującej listy
matt wilkie
1
Zauważ też, że wyświetli to listę autorów jądra głównego. Istnieją rozwidlenia / gałęzie jądra, które zostały rozproszone, które zostały zbudowane z łatkami innych programistów, na przykład jądro używane w systemie Android.
Peter L.
Prawdopodobnie chcesz policzyć liczbę zatwierdzeń bez scalania, a zobaczysz, że Linus wykonuje znacznie mniej pracy niż to.
Alexandre Belloni,
14

Przejdź do pokrycia jądra na LWN.net i wyszukaj „Wydania” i „Statystyki autora”. Wyszukaj także „Who”. W tym indeksie znajdują się różne artykuły z tytułami takimi jak (ostatnio) Kto napisał 3.5 .

Artykuły te mogą nie odpowiadać bezpośrednio na twoje pytanie, ale są tak szczegółowe, jak to zwykle można znaleźć w sieci, bez próby zbierania informacji z pierwszej ręki. W szczególności powinny one udzielić przynajmniej częściowej odpowiedzi na 3.

Gromadzenie statystyk odbywa się za pomocą gitdm (artykuł LWN ogłasza to: gitdm v0.10 dostępny ). Dzięki vonbrand za zwrócenie na to uwagi. Repozytorium można obecnie uzyskać (styczeń 2015 r.) Za pomocą

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

Jeśli chodzi o 1 i 2, nie są one tak dobrze zdefiniowane. W przypadku 1, wydaje mi się, że odpowiedź jest prawie na pewno tak, czasami. Ale nie jest jasne, czego szukasz - anegdotyczne dowody lub niektóre statystyki. Jeśli statystyki, w jakiej formie? W przypadku 2 przez „grupy zewnętrzne” nie jest jasne, co masz na myśli i do jakiej pomocy się odnosisz. Czy ludzie na kanale IRC liczą się na przykład jako grupa zewnętrzna? A może mówisz o bardziej formalnym stosunku umownym, w którym pieniądze zmieniają się w ręce? Jak zewnętrzna firma zatrzymana na czasowe konsultacje? W każdym razie takie informacje byłyby trudne do uzyskania bez bezpośredniej rozmowy z programistami jądra, a nawet wtedy byłyby prawdopodobnie niepotwierdzone. Podejrzewam, że fora takie jak lista mailingowa jądra Linuksa byłyby w tym przypadku możliwe.

Faheem Mitha
źródło
Dziękuję Ci. W trzecim przypadku szukam ludzi, którzy również pomogli w jakiś sposób w zatwierdzeniu. Na przykład grupa ludzi, która pomogła komuś w firmie. Ta osoba w firmie pracowała z grupą, która ostatecznie zatwierdziła jądro.
Luis Alvarado
Gromadzenie statystyk jest wykonywane przez gitdm (artykuł LWN ogłasza to lwn.net/Articles/290957 , ostatnie zatwierdzenie pochodzi z Arpil 2012)
vonbrand