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.

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

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


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.