Вышло ядро Linux 3.15

После почти двух с половиной месяцев разработки и восьми кандидатов в релизы вышла новая версия ядра Linux 3.15. С организационной точки зрения этот выпуск примечателен тем, что он состоялся в разгар двухнедельного окна приёма изменений для следующей версии, 3.16. Линус Торвальдс сообщил о проведении такого эксперимента в момент выпуска 3.15-rc8.

Технически же в новой версии произведена масса интересных изменений. Основные новинки ядра по категориям представлены ниже.

  • Файловые системы и подсистема хранения данных.

    • F2FS получила поддержку больших каталогов.
    • В ext4 произведена работа по улучшению масштабируемости. Также в код fallocate добавлена поддержка операций ZERO_RANGE и COLLAPSE_RANGE.
    • В XFS новый дисковый формат версии 5 признан стабильным. Также в этой ФС произведено обновление кода, отвечающего за fallocate и добавлена поддержка O_TMPFILE.
    • В код btrfs внесено множество изменений, направленных на исправление возможных повреждений данных. Также в btrfs отказались от собственной реализации асинхронных потоков в пользу стандартного механизма workqueues.
    • Обновлен код kernfs с тем, чтобы его можно было использовать в большем количестве подсистем.
    • Представлен новый системный вызов renameat2, позволяющий атомарно поменять имена двух файлов.
    • Принят код, реализующий функцию приватной POSIX-блокировки файлов (file-private POSIX locks).
    • Увеличена производительность операций записи в FUSE.
  • Инфраструктурный код.
    • zram теперь может использовать алгоритм сжатия LZ4.
    • В код управления питанием добавлена поддержка асинхронного вывода из режима сна подсистемы SCSI, что позволило значительно сократить общее время просыпания.
    • В коде cgroups произведена оптимизация переключения контекстов.
    • В планировщике процессов продолжена работа по интеграции собственно планировщика и механизма выбора политики простоя (idle state) процессора. В 3.16 работа по улучшению интеграции ещё ведётся.
    • Внесены улучшения в код планирования процессов реального времени.
    • Добавлена поддержка инструкций AVX-512 и RDSEED, реализованных в процессорах Intel.
    • Добавлена поддержка смешанного режима EFI, благодаря которому появилась возможность загрузки 64-битного ядра с помощью 32-битного UEFI, что актуально для некоторых ноутбуков.
    • Добавлена частичная поддержка LTO (Link-Time Optimization). В будущем возможна полная поддержка LTO, что позволит несколько уменьшить итоговый размер образа ядра и повысить его быстродействие.
    • Значительно переработан JIT-компилятор для фильтра пакетов BPF.
    • Код PowerPC KVM теперь поддерживает транзакционную память для гостевых систем. В коде KVM для x86 исправлена поддержка OS X в качестве гостевой системы. Также в KVM улучшена поддержка Windows в качестве гостевой ОС.
    • Переработан механизм балансировки списков активных и неактивных страниц в подсистеме управления памятью, что привело к заметному увеличению производительности при некоторых типах нагрузок.
    • Принято множество патчей, позволяющих компилировать ядро с помощью clang. Добавлены не все патчи, часть недостающих изменений принята в 3.16, ещё одна часть запланирована на 3.17.
    • Размер стека ядра на платформе x86_64 увеличен до 16 КиБ. Это связано с тем, что в ядре выявлены возможные сценарии, при выполнении которых 8 КиБ стека уже не хватает.
    • Удалена поддержка устаревших платформ x86: SGI Visual Workstation, Sequent Computer Systems NUMAQ, IBM Summit/EXA и IA32 Unisys ES7000.
  • Драйверы.
    • В драйвер ACPI для ноутбуков Toshiba добавлена поддержка акселерометра и включения-выключения тачпада.
    • В драйвере Intel DRM произведено множество улучшений, связанных с управлением питанием, поддержкой дисплеев HiDPI и 4K DisplayPort. Также расширена поддержка чипов Broadwell.
    • В код поддержки Samsung Exynos внесены изменения, направленные на поддержку многоплатформенных ядер. Работа над этим ещё не завершена.
    • В коде nouveau представлена начальная поддержка чипов Maxwell.
    • В подсистему V4L добавлена поддержка множества новых устройств.
    • Для ноутбука Lenovo ThinkPad Carbon представлена более полная поддержка клавиатуры.
    • Для подсистемы драйверов реализована поддержка QoS управления питанием.
    • Добавлена поддержка контроллера Dualshock 4, который используется в игровой консоли PlayStation 4.
    • Добавлена поддержка мультитач-устройств, разработанных специально для Windows 8.1.
    • Добавлена поддержка чипа Realtek RTL8723AU (Wi-Fi).
    • Драйвер Radeon теперь поддерживает кодирование видео VCE 2.0.
    • Подсистема AHCI (libata) переработана таким образом, что множество драйверов теперь могут повторно использовать один и тот же код без его дублирования. Также в libata добавлена поддержка асинхронных операций по управлению питанием.
    • Произведены значительные улучшения в звуковой подсистеме, которые затрагивают HD Audio и чистку кода ASoC. Также добавлены драйверы для чипов Analog Devices ADAU1977, TI PCM512x, частично для CSR SiRF SoC, TLV320AIC31XXX, Armada 370 DB и Cirrus cs42xx8.

Отдельно стоит упомянуть о том, что для включения в ядро предложены две интересные вещи.

  • Планировщик ввода-вывода BFQ. Код уже получил хорошие отзывы в LKML, однако разработчиков просят доработать его с учётом некоторых замечаний. Также мейнтейнер блочной подсистемы чётко дал понять, что не собирается принимать в ядро ещё-один-CFQ, но в то же время готов заменить алгоритм CFQ на более разумную реализацию BFQ постепенно. Дискуссия и анализ кода BFQ в LKML продолжается. Прогнозов по срокам пока нет.
  • ФС Tux3, разрабатываемая с 2008-го года. Несмотря на перспективность, код в ядро не включен из-за низкого его качества и нереализованности множества заявленных функций.

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

Скачать тарболл с исходным кодом
Скачать патч на ядро 3.14
Официальный анонс



Яндекс.Метрика
Счётчик ТЦ#65533;Ц LiveRSS: Каталог русскоязычных RSS-каналов