Только представьте, что в ядре каждый день добавляется 4300 строк кода, удаляется 1800 и подвергается изменению 1500 и это каждый день начиная с 2007 года! Ядро растет и меняется вместе с драйверами и устройствами которое оно поддерживает. Только 55% изменений затрагивает работу над драйверами, 5% требует изменения ядра системы для поддержки новых стандартов и совершенствовании механизмов внутри ядра линукса. Так как само ядро постоянно меняется это приводит к разрушению API внутри ядра и требует адаптации части кода драйверов для работы в новом окружении. Это конечно вносит некоторый переполох в разработку и чтобы избежать полной нестабильности считается замороженным интерфейс API управления ядром из пользовательских приложений (/proc). И это означает что если вы написали программу для работы с ядром 2.6.10 скорей всего она так же хорошо запустится на ядре 2.6.25.
Модель управления такой системы состоит из иерархии разработчиков и мейнтейниров во главе которой стоит Линус. На первый взгляд структура сообщества представляет из себя небольшой бюрократический механизм состоящий из набора узлов, каждый из которых выполняет определенную работу по определению качества соответствия любых изменений попадаемых в ядро. Однако, при дальнейшем изучении становиться понятно, что вы свободны делать выбор и создать независимый процесс от устоявшегося внутри сообщества. Никакие правила не запрещают вам держать свой код драйверов ядра в своей компании и поддерживать его параллельно с работой основной ветки ядра, и не делиться им с сообществом линукса.
Релиз цикл ядра около 2+1\4 месяца. Это означает что сообщество выпускает исходный код приблизительно указанный выше срок, что заменило собой старые правила выпуска ядра разделенного на стабильные версии и не стабильные.
За это время между релизами в основную ветку попадают различные нововведения и исправления ошибок, что приводит ядро в не стабильное состояние и его не рекомендуется использовать в этот момент. Каждые несколько недель выпускается релиз кандидат, который проверяется на работоспособность всеми разработчиками и остальным мировым сообществом пользователей. К сожалению, изменения вносимые в ядро не могут быть протестированы 100% и никакие тесты не заменят запуска ядра на реальном оборудовании, хотя бы потому, что нет возможности проемулировать поведение всех известных устройств поддерживаемых ядром. Кроме того объем кода гигантский и в версии ядра 2.6.25 содержится 9.2 миллиона строк кода. Поэтому новое ядро может не заработать на вашем оборудовании или потерять поддержку части устройств (что и случается на практике).
Помимо работы над релизами сообщество разработчиков занимается поддержкой предыдущей стабильной ветки ядра. Все найденные ошибки связанные с безопасностью и небольшие исправления перемещаются в стабильную устаревшую ветку и помечаются 4 числом в версии ядра 2.6.19.2. После релиза поддержка устаревшего ядра пачами прекращается, однако примичательно к опенсорс модели каждый может поддерживать любую ветку до бесконечности если в этом есть необходимость.
На данный момент в разработке ядра задействовано 2399 разработчиков, но не смотря на это 40 людей делают 30% основной работы. Кто эти люди:
- Любители 24%
- RedHat 11%
- IBM 7%
- Novell 6%
- Intel 4%
- Oracle 2%
- other companies rest%


0 коммент.:
Отправить комментарий