Speaker Rabbit

abbra


CIFS: curious information funneled sometimes


Previous Entry Share Next Entry
Linux kernel contributions analysis
Speaker Rabbit
abbra
Johnathan Corbet из Linux Weekly News провел исследование о том, кто же разрабатывает ядро Linux и каков вклад волонтеров и компаний. Отчет доступен пока только подписчикам LWN, но как подписчик я могу выдать специальную ссылку на статью, не требующую ввода пароля: http://lwn.net/SubscriberLink/222773/8cd9ed87ae25432a/

Интересные результаты: в 2.6.20 приблизительно 65% работы (относительно 2.6.19) -- по заказу корпораций и приблизительно 11-35% волонтерской работы. За последний год изменений в ядре в целом -- 10-40% волонтеров и 48% корпоративной работы.

Также за последний год IBM сделала 8% всех изменений в ядре, RedHat -- 9.614.4%, HP - 0.9%, Oracle - 0.8%, Novell -- 3.6%, Интел - 3.1%, QLogic - 3.7%. IBM - на четвертом месте (на первом -- разработчики, которых не удалось соотнести с компаниями либо доказать их волонтерство - 29.5%).

Важный момент -- за последний год в ядро попали изменения от более чем 2000 человек. Это только новые изменения, не учитывается сколько разработчиков написали то, что было до этого момента. Так что о ядре Linux можно говорить как о действительно широко разрабатываемом проекте -- даже у Microsoft над ядро операционной системы работает меньше людей (в Microsoft над всеми продуктами вместе взятыми работает около 10000 разработчиков, над ядром -- порядка 1000, если мне не изменяет память).

  • 1
Удивлен цифрой RedHat -- 9.6%
Чего-то всегда думал(даже не знаю почему), что эта компания наиболее крупный вклад вносит в развитие ядра...

Так и есть -- 9.6% всего, что изменялось в ядре за последний год. Больше только у суммарно неопознанных разработчиков, которых не удалось достоверно приписать к какой-нибудь компании или гарантировать, что они волонтеры.

Между прочим, это очень хороший показатель здоровья проекта -- волонтерский вклад сопоставим с работой двух ведущих компаний (RedHat и IBM).

жаль, что при этом анализ качества кода не проводился...
Понравился прикол с Jeff Garzik

Саш, ты перепутал. У RedHat - 12-14%.

Да, ты прав, посмотрел не в ту строку.

Я, в силу своей привередливости и въедливости, решил проверить правильность подсчёта автора. Для начала в части первой таблицы.

Сначала надобно склонировать себе линусовое дерево (оно у меня уже было, команду привожу для тех, у кого нет):

mkdir linux-2.6
cd linux-2.6
git-clone git://git2.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6


Сам скрипт довольно тупой:

git-log v2.6.19..v2.6.20 --no-merges --pretty=short | egrep ^Author: | \
sed s/\<.*$// | sort | uniq -c | sort -nr > top-authors-2.6.20


Результаты _почти_ такие же, как у Корбета; для экономии места привожу только top5:
    241 Author: Al Viro 
     92 Author: Jiri Slaby 
     88 Author: Andrew Morton 
     87 Author: Adrian Bunk 
     79 Author: Josef Sipek 
     79 Author: Gerrit Renker


Если "огласить весь список", то видно, что Корбет кое-где лоханулся. Вот, напр., 36-я строчка:
     29 Author: Josef "Jeff" Sipek


Таким образом, Сипеку, у которого 79 "очков" (то бишь changesets), следует прибавить ещё 29, что передвигает его с 5-6 позиции на вторую.

Впрочем, это единственная крупная ошибка в первой таблице. Остальные я пока не проверял :)

Далее я стал смотреть на то же, но не ограниченное рамками «между 2.6.19 и 2.6.20», и обнаружил, что многие «топперы» релиза 2.6.20 только в это время (или _почти_ только в это время) и коммитили. Таковы, к примеру, следующие товарищи:
     79 Author: Josef Sipek
     79 Author: Avi Kivity 
     83 Author: Gerrit Renker


Ави Кивити закоммитил KVM, Геррит Ренкер закоммитил DCCP, Йозеф Сипек по большей части сделал небольшой рефакторинг struct path.

Далеко идущие выводы из этого таков: кроме «костяка» кернель тима, периодически появляются новые люди, которые привносят что-то своё.

«Нас» он тоже маленько недосчитал. У него 37, у меня 41. Жалко, что не 42 :(

[kir@kir linux-2.6]$ git-log v2.6.19..v2.6.20 --no-merges --pretty=short |\
> egrep ^Author: | egrep 'Monakhov|Mishin|Dobriyan|Averin|Korotaev|Savochkin|'\
> 'Mirkin|Kuznetsov|kuznet@Tarasov|Andreev|Lunev|Khorenko|Emelianon|xemul@|'\
> '@swsoft\.com|@sw.ru|@openvz.org' | wc -l
41


Неплохой результат, учитывая, что мы мейнтейним нефиговый кусок кода out of the tree, а в мейнстрим засылаем практически одни багфиксы.

А вообще вся эта статистика — от лукавого. Можно заслать патчсет из 100+ патчей, которые меняют название какого-нибудь объекта all over the kernel — и оказаться в топе по ченджсетам (см. пример выше в моих комментах). Можно удалить какой-нибудь старый драйвер — и оказаться в топе по SLOC (см. пример у Корбета).

Вообще говоря, эта статистика по всей истории ядра вполне внятные результаты может дать о кластеризации разработчиков, наиболее активно развиваемых системах, трендах вне зависимости от всяких IDC/Gartner. Вот, например, 8% IBM -- они где? Какие области IBM считает важными для себя и финансирует? Кто еще в этих областях работает? А Oracle? А HP? Почему у последних на порядок меньше "вклада", чем у IBM? И так далее.

Плюс из этого (git-log analysis) вполне хорошо выплывают данные по воспроизводимости проекта во времени, которые уже вполне явным образом могут использоваться при работе "продажников" с заказчиками, как ни странно. "Не будем использовать Linux, потому что неизвестно кто за ним стоит и вдруг он помрет" со стороны промытых про-микрософтовскими партнерами заказчиков в данной ситуации отбиваются гораздо более эффективными способами.

По поводу статистики — есть же много проектов, которые out of the tree. Тот же OpenVZ. У IBM раньше было полно таких проектов.

Насколько я помню, все те IBM-овские проекты, которые не были замержены в мейнстрим, поумирали или агонизируют (CKRM). Видимо, люди спохватились и теперь требуют сразу всё мержить в мейнстрим — и это, в общем-то, правильно. И нам тоже надо было так делать…

Да, ситуация с умирающими out of tree проектами впервые серьезно встала три года назад. Что и привело к созданию той схемы разработки ядра, которая есть сегодня (с sign-off и вся работа в основном ядре). Это была общая позиция IBM, Intel, RedHat и Novell, потому как бэкпортить устали и расфокусирование стало сильно напрягать в том числе и финансово.

Old or new, doesn't matter till its nice. Great find

  • 1
?

Log in

No account? Create an account