Компания Red Hat поделилась планами, касающимися Linux-ядра в RHEL 6
На сайте компании 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 лет.
© OpenNet