На сайте компании Red Hat опубликован обзор планов по подготовке Linux-ядра для будущего релиза Red Hat Enterprise Linux 6.
Как известно, ядро из состава RHEL сильно отличается от базового ядра,
например, число добавленных и бэкпортированых патчей для ядра 2.6.18 из
состава RHEL 5 соизмеримо с размером стандартного ядра 2.6.18: в состав
пакета с ядром входит около 4 тыс. патчей, суммарный размер которых
превышает 130 Мб.
Подготовка ядра для промышленного дистрибутива не такая простая
задача, в стандартном ядре постоянно ведется разработка каких-то
новшеств, не все из которых отвечают промышленным стандартам качества,
кроме того, реализация некоторых новых систем имеет долгосрочную
перспективу и часто не добавляется целиком после готовности, а
разделяется на этапы, размытые на несколько релизов. В качестве примера
приводится инициатива по увеличению отзывчивости ядра при выполнении
задач реального времени, постепенно развиваемая от версии к версии. Поэтому задача подготовки ядра для RHEL сводится к выбору оптимального баланса, сочетающего:
- Включение зрелой промышленной функциональности;
- Включение скрытых возможностей, добавленных с
расчетом на будущее, например, элементы повышения масштабируемости для
аппаратных систем, которые возможно получат распространение только
через несколько лет;
- Отключение компонентов, которые не имеют отношения или еще не готовы для промышленных систем.
В состав первой бета-версии RHEL 6 входило ядро 2.6.32, но на самом
деле номер версии пакета с ядром носит условный характер, его
содержимое мало связано с содержимым аналогичной "ванильной" версии,
например, в настоящий момент в ядре RHEL6 больше от ядра 2.6.34, чем от
2.6.32. В будущем перенос новых возможностей из основной ветки ядра
будет продолжен и ядро из состава RHEL будет постоянно поддерживаться в
актуальном состоянии, в него будет добавляться поддержка нового
оборудования и код новых подсистем. При этом важным моментом является гарантированная неизменность ABI-интерфейса ядра на всем протяжении семилетнего жизненного цикла
дистрибутива, как с точки зрения стабильности системных вызовов, так и
с позиции интерфейса для драйверов устройств. Например, релиз RHEL 4
(RHEL 5) был выпущен в 2005 году (2007 г.), добавление поддержки нового
оборудования в ядро производилось до 2009 года (2011 г.), а выпуск
обновлений с исправлением ошибок продлится до 2012 года (2014 г.).
Из новшеств, которые планируется реализовать в ядре для RHEL 6, но которые ранее отсутствовали в RHEL 5, можно отметить:
- Cgroups (Control Groups). Группы контроля позволяют
организовать тонкий контроль за распределением и управлением ресурсами
аппаратного обеспечения. Cgroups работают на уровне групп процессов и
позволяют управлять доступом к ресурсам процессора, памяти, пропускной
способности сетевых интерфейсов и дисковой подсистемы ввода/вывода.
Cgroups также позволяет определить ограничения для гостевых
операционных системы при их виртуализации.
- Улучшение поддержки Realtime: многие наработки по
обеспечению гарантированного и предсказуемого времени выполнения задач,
ранее представленные в рамках продукта Red Hat Enterprise MRG Realtime, будут интегрированы в основное ядро дистрибутива;
- Управление питанием. Из возможностей, связанных с управлением питанием отмечается tickless-режим,
позволяющий ядру динамически менять интенсивность генерации прерываний
таймера, что увеличивает время нахождения процессора в состоянии с
пониженным энергопотреблением, как следствие процессор меньше
нагревается и уменьшаются расходы на электроэнергию.
- Виртуализация. В код по поддержке работы ядра в
гостевом окружении будет добавлена серия оптимизаций, направленных на
увеличение производительности ввода/вывода, на уменьшение потребления
памяти и поддержку виртуализированных аппаратных устройств. Данные
нововведения позволят организовать прямое обращение к аппаратным
устройствам из гостевой ОС, без траты ресурсов на трансляцию запросов
через гипервизор, увеличат производительность при обращении к большим
наборам страниц памяти.
- Поддержка менеджера памяти KSM ("Kernel Samepage
Merging"), определяющего факты использования разными процессами
идентичных по содержанию областей памяти и производящего их объединение
в один блок. Особенно эффективна данная система для систем
виртуализации, в которых наблюдается больше дублирование данных в
памяти (данные типовых ОС или просто забитые нулями области), через
совместное использование одинаковых блоков в разных виртуальных
окружениях можно высвободить существенное количество памяти.
- Переключение видеорежимов на уровне ядра - KMS
(Kernel Mode Setting), позволяет увеличить производительность
графической подсистемы, добиться бесшовной загрузки, избежать скачков и
мерцания при переключении видеорежима, обеспечить работу нескольких
мониторов и проекторов, решить проблемы с переходом в спящий режим.
- Масштабируемость: ядро RHEL 6 будет поддерживать
новейшие конфигурации систем с большим количеством процессоров,
огромным объемом памяти и наличием большого количества связанных шин и
периферии. Так как уже сегодня можно приобрести сервер с 64 CPU и 2 Тб
ОЗУ, задел в масштабируемость делается с запасом, сделанным с расчетом
на будущее развитие индустрии в течение ближайших 5 лет.
Источник
|