Разработка LINUX



|

Ядро Linux - это огромный проект с открытым исходным кодом, разработка которого ведется уже более 25 лет. Хотя многие думают, что большинство проектов с открытым исходным кодом разрабатываются энтузиастами, над ядром Linux работают профессиональные программисты, которые получают за это деньги.

Согласно данным The Linux Foundation, начиная с 2005 года, более 14 000 индивидуальных разработчиков и более чем 1300 различных компаний внесли свой вклад в ядро. В этой статье мы рассмотрим, как и кем ведется разработка ядра Linux, кто все это финансирует и контролирует.

Содержание статьи:

РАЗРАБОТКА ЯДРА LINUX

Примерно раз в год The Linux Foundation выпускает отчет по процессу разработки ядра с данными о частоте выпусков, скорости изменений и компаниях, которые в этот раз внесли свой вклад. Например, последний отчет был выпущен в августе 2016 года и охватывает версии ядер 3.9 - 4.7.

Одно из наиболее интересных изменений - это уменьшение вклада в развитие ядра со стороны неоплачиваемых разработчиков. За этот период их доля сократилась от 14,6 до 7,7%. Это объясняется тем, что многие из этих разработчиков были наняты компаниями.

Что касается корпоративных взносов, то за этот период доля Intel составила 12,9%, Red Hat - 8%, Linaro - 4%, Samsung - 3,9%, SuSE - 3,2%, IBM - 2,7%. Но несколько лет назад история была совсем иной. В 2010 году Red Hat была на первом месте - 10.2%, за ней Intel - 8,8%, Texsa Instruments - 4,1%, Linaro - 4,1%, SuSE - 3,5%, IBM - 3,1%. Заметно выросла доля Intel. Директор отдела Intel Open Source Technology Center не раз заявлял, что ядро Linux имеет для компании очень важное, стратегическое значение. Как видим, поддержка ядра Linux выполняется многими компаниями.

Также интересным есть увеличение вклада компании Samsung от 2,9 до 3,9%. На фоне других компаний вклад Red Hat снижается, но совместное участие Red Hat и Intel держится достаточно стабильным на протяжении многих лет. Начиная от низкого уровня 18,1% в 2012 и до максимума - 20,9% в 2016.

На конференции LinuxCon в 2016 году генеральный директор Red Hat, Джим Уайтхерст, говорил о том, что на ряду с техническим вкладом в ядро, они строят новую бизнес модель. Возможно, увеличение доли Intel свидетельствует о том, что они пытаются повторить то, что уже было сделано в Red Hat. В плане патчей вклад различных компаний за 2016 год таков: Red Hat - 18,4%, The Linux Foundation - 13,5%, Intel - 12,1%, Linaro - 8,7%, Google - 5,3%, Samsung - 3,5%, SuSE - 2,9%, AMD - 2,1%.

https://youtu.be/lBCaJ5CP5bM?list=PLi_rypOeey5iccgFXie9OxsbI5H6rQ_cG

То, что организация The Linux Foundation находится на втором месте не удивительно, поскольку здесь работает Грег Кроа-Хартман, который занимается поддержкой стабильной ветви ядра, подсистему тестирования, а также несколько других подсистем. Этот человек был ответственен за 13,992 из 14,180 правок от The Linux Foundation.

КТО УПРАВЛЯЕТ ПРОЦЕССОМ?

Тем не менее вклады компаний и разработчиков ничего нам не говорят о том, как принимаются патчи в ядро и как идет разработка ядра Linux. Ядро Linux - это огромный проект, над которым работает большое количество разработчиков. Все это невозможно контролировать одному человеку. Сделаем небольшое описание ядра Linux.

Ядро имеет различные подсистемы, например, графическую, устройств USB, сетевую, планировщик и так далее. Поддержанием каждой из подсистем занимается отдельный человек - сопровождающий. Компании и разработчики отправляют свои патчи сопровождающим тех или иных подсистем.

Сопровождающие просматривают патчи, отправленные другими программистами, или компаниями и принимает их, или же возвращает на доработку. Так происходит с каждой подсистемой. После принятия патча, он добавляется в тестовую ветку ядра, где проходит тестирование, и уже тогда, если все хорошо идет дальше.

Для координации действий всех разработчиков используется рассылка Email. На первый взгляд, может показаться, что это устаревшая технология, но на самом деле это не так. Почта - это лучший способ управления таким большим проектом, как ядро. Она быстрее, чем любая из альтернатив, при количестве изменений от 8 в час от 4000 разработчиков и 400 компаний, нужно очень мощное решение.

Git мог бы давно заменить рассылку, он имеет несколько преимуществ, но он хорош для небольших проектов, что касается таких мощных проектов, как ядро, то возможностей и масштабируемости недостаточно.

ВЫВОДЫ

В этой статье мы сделали описание процесса разработки ядра linux, кто основные разработчики ядра, и как они это делают. Надеюсь, информация была полезной для вас.

Видео "Как разрабатывается Linux" от The Linux Foundation:

 

 

---

 

Некоторые люди все еще заблуждаются, думая, будто Linux написана немытыми хакерами, живущими в подвале родительского дома. Считается, что их единственным развлечением является компьютер, а в интернет-чатах они спорят о преимуществах и недостатках текстовых редакторов vi и EMACS, сравнивая героев известного сериала. Нет ничего более далекого от реальности.

Фонд развития Linux Foundation (LF) недавно выпустил новый отчет “Развитие ядра Linux: насколько быстро оно продвигается, кто этим занимается, что эти люди делают и кто их спонсирует”. Это всеобъемлющее исследование, посвященное трем последним годам разработки версий 2.6.11—2.6.24 ядра Linux. Оно показывает, что труд среднестатистического разработчика Linux оплачивается крупнейшими корпорациями, которые поддерживают данную ОС.

Если быть точным, то за последние три года примерно 70--95% программистов трудились над Linux в корпорациях и получали за это зарплату. “Более 70% вклада в развитие ядра внесли программисты, работающие в таких компаниях, как IBM, Intel, The Linux Foundation, MIPS Technology, MontaVista, Movial, NetApp, Novell и Red Hat”.

С годами численность Linux-программистов росла. Над версией 2.6.11 работало только 483 человека, создавших действительно включенный в ядро системы код. К написанию более поздней версии ядра 2.6.24 было привлечено уже 1057 человек. За три года в ядро Linux был включен код, над которым трудилось 3678 разработчиков.

После всех этих сведений в отчете говорится, что “…несмотря на многочисленность индивидуальных разработчиков, основную часть работы по-прежнему выполняет сравнительно небольшое число программистов. За последние три года десять лучших из них внесли почти 15% изменений, а тридцать — 30%”.

В действительности же только на долю пятерых основных программистов — Эла Вайро (1,9% общего числа изменений в ядре), Дэвида Миллера (1,8%), Адриана Банка (1,7%), Ральфа Бехле (1,6%) и Эндрю Мортона (1,5%) — приходится 8,5% изменений, внесенных за последнее время в код Linux.

74,1% разработчиков трудятся над Linux по заданию своих компаний. Среди остальных многие (12,9%, место работы которых неизвестно) внесли по десять и менее изменений в ядро. И лишь 13,9% разработчиков совершенно определенно занимались Linux в качестве хобби.

Таким образом, хотя существенный вклад в развитие Linux вносят любители, основная масса кода этой системы написана корпоративными программистами. В ее создании принимают участие следующие компании (в порядке убывания внесенного ими вклада):

1) Red Hat -- 11,2%;

2) Novell -- 8,9%;

3) IBM -- 8,3%;

4) Intel -- 4,1%;

5) LF -- 3,5%;

6) SGI -- 2,0%;

7) MIPS Technology -- 1,6%;

8) Oracle -- 1,3%;

9) MontaVista -- 1,2%;

10) Lintronix -- 1,0%.

Кроме того, благодаря консультантам было выполнено еще 2,5% общего объема работ по Linux.

Авторы исследования, разработчики ядра Linux Джонатан Корбет и Грег Кроах-Хартмен, а также директор фонда Linux Foundation по маркетингу Аманда Макферсон, отмечают также: “Мы видим, что значительная доля изменений внесена в ядро усилиями небольшого числа компаний. Но выстроилась длинная очередь из тех, кто внес существенные изменения”.

Авторы исследования подчеркивают также, что “…ни одна из этих компаний не оказывает поддержку разработке Linux в порядке благотворительности; каждая из них считает, что совершенствование ядра поможет им повысить свою конкурентоспособность на соответствующем рынке”.

У производителей дистрибутивов Linux, таких как Red Hat, Novell и MontaVista, четко прослеживается стремление к получению прибыли. Помимо них, говорится в исследовании, свой вклад в разработку ОС вносят “…такие компании, как IBM, Intel, SGI, MIPS, Freescale, HP и другие, желающие обеспечить устойчивую работу Linux на своём оборудовании. Это в свою очередь повышает привлекательность их продуктов для пользователей Linux, что ведет к росту продаж”.

“Другие компании, принимающие участие в разработке Linux, например Sony, Nokia и Samsung, поставляют эту ОС в качестве одного из компонентов своих продуктов — видеокамер, телевизионных приставок и мобильных телефонов. Причастность к разработке позволяет этим компаниям гарантировать, что Linux и в дальнейшем останется прочной основой их устройсттв”.

Сейчас в совершенствовании Linux принимают участие не только ИТ-компании. Авторы исследования констатируют, в частности: “Ядро версии 2.6.25 будет включать сетевой протокол PF_CAN (Controller Area Network), представленный корпорацией Volkswagen. С его помощью устанавливается надежный обмен информацией между различными компонентами в среде, где возможна интерференция, например, в автомашине. Сначала Linux стала для Volkswagen платформой, на основе которой ей удалось создать свой сетевой протокол; в дальнейшем корпорация сочла целесообразным сделать этот протокол своим вкладом в развитие Linux, чтобы он поддерживался наряду с прочими компонентами ядра”.

Таким образом, типичный разработчик Linux -- это скорее всего программный инженер, принадлежащий к верхнему слою среднего класса. Так почему же сохраняется предубеждение по отношению к Linux-программистам? “Дело в том, -- считает Макферсон, -- что большинству трудно понять, как масса людей может в одно и то же время сотрудничать и конкурировать друг с другом. Совершенно очевидны отличия от прежних моделей управления. Надо приложить много усилий, чтобы освоиться с мыслью, что компании могут платить своим сотрудникам за разработку ПО, которое будет использоваться конкурентами и приносить им прибыль”.

Макферсон продолжила: “Люди все еще мыслят устаревшими категориями игры с нулевой суммой. Но теперь, располагая данными наподобие тех, что получены нами, они могут видеть, что компании, поддерживающие создание открытого исходного кода, получают прибыль благодаря совместному финансированию исследований и разработок. Мифы живучи. Однако когда открытый код будет использоваться шире, чем патентованные разработки, думаю, отношение к нему изменится”.