LINUX.ORG.RU

Увидело свет ядро Linux 5.0

 ,


6

4

Увеличение цифры мажорной версии до 5 не означает каких-то грандиозных изменений или поломок совместимости. Оно просто помогает дорогому нашему Линусу Торвальдсу сохранить душевный покой. Ниже — список некоторых изменений и новшеств.

Сердцевина ядра:

  • Планировщик процессов CFS на асимметричных процессорах вроде ARM работает иначе — первым делом нагружает маломощные и энергоэффективные ядра.
  • Через API отслеживания файловых событий fanotify можно получать уведомления об открытии файла на исполнение.
  • Интегрирован контроллер cpuset, которым можно ограничивать группы процессов по использованию CPU и узлов NUMA.
  • Включена поддержка следующих ARM-устройств: Qualcomm QCS404, Allwinner T3, NXP/Freescale i.MX7ULP, NXP LS1028A, i.MX8, RDA Micro RDA8810PL, Rockchip Gru Scarlet, Allwinner Emlid Neutis N5, и многих других.
  • Улучшения в подсистеме ARM: горячее подключение памяти, защита от Meltdown и Spectre, 52-битная адресация памяти, и др.
  • Поддержка инструкции WBNOINVD для x86-64.

Подсистема памяти:

  • Для инструмента KASAN на ARM64-платформах доступна подстановка проверочных тегов с малым потреблением памяти.
  • Фрагментация памяти кардинально снижена (до 90%), в результате механизм Transparent HugePage работает лучше.
  • Скорость работы mremap(2) на больших областях памяти увеличена до 20 раз.
  • В механизме KSM jhash2 заменена xxhash, благодаря чему на 64-битных системах скорость работы KSM выросла в 5 раз.
  • Улучшения в ZRam и OOM.

Блочные устройства и файловые системы:

  • Механизм blk-mq с многоуровневой системой очередей запросов стал основным для блочных устройств. Весь не-mq код удалён.
  • Улучшения поддержки NVMe, особенно в плане работы устройств через сеть.
  • Для Btrfs реализована полноценная поддержка swap-файлов, а также изменение FSID без перезаписи метаданных.
  • В F2FS добавлен ioctl-вызов для отложенной проверки ФС через fsck.
  • Интегрирована BinderFS — псевдо-ФС для межпроцессного взаимодействия. Позволяет запустить несколько экземпляров Android в одной среде.
  • Ряд улучшений в CIFS: кэш DFS, расширенные атрибуты, протокол smb3.1.1.
  • ZRam оптимальнее работает с неиспользующимися swap-устройствами, экономя память.

Безопасность и виртуализация:

  • Добавлена хэш-функция Streebog (ГОСТ 34.11-2012), разработанная ФСБ РФ.
  • Поддержка алгоритма шифрования Adiantum, разработанного Google для маломощных устройств.
  • Включены алгоритмы XChaCha12, XChaCha20 и NHPoly1305.
  • Обработку вызовов seccomp теперь можно вынести в пространство пользователя.
  • Для гостевых систем KVM реализована поддержка расширений Intel Processor Trace с минимальной просадкой производительности.
  • Улучшения в подсистеме KVM/Hyper-V.
  • Драйвер virtio-gpu получил поддержку симуляции EDID для виртуальных мониторов.
  • В драйвере virtio_blk реализован вызов discard.
  • Реализованы функции безопасности для NV-памяти, основанных на спецификациях Intel DSM 1.8.

Драйверы устройств:

  • Изменения в DRM API для полноценной поддержки адаптивной синхронизации (часть стандарта DisplayPort) и изменчивых частот обновления (часть стандарта HDMI).
  • Включен стандарт Display Stream Compression для сжатия без потерь видеопотоков, адресованных экранам с высоким разрешением.
  • Драйвер AMDGPU теперь поддерживает FreeSync 2 HDR и сброс графического процессора для CI, VI, SOC15.
  • Видеодрайвер Intel получил поддержку чипов Amber Lake, форматов YCBCR 4:2:0 и YCBCR 4:4:4.
  • В драйвер Nouveau включена работа с видеорежимами для видокарт семейства Turing TU104/TU106.
  • Интегрированы драйверы тачскрина Raspberry Pi, панелей CDTech, Banana Pi, DLC1010GIG и др.
  • В драйвере HDA доступна поддержка кнопки «jack», LED-индикаторов, устройств Tegra186 и Tegra194.
  • Подсистема ввода научилась работать с высокоточной прокруткой на некоторых мышах Microsoft и Logitech.
  • Масса изменений в драйверах вебкамер, ТВ-тюнеров, USB, IIO, и др.

Сетевая подсистема:

  • В стеке UDP реализована поддержка механизма zero-copy для передачи данных через сокет без промежуточной буферизации.
  • Там же добавлен механизм Generic Receive Offload.
  • Улучшена производительность поиска в политиках xfrm при большом их количестве.
  • В драйвер VLAN добавлена возможность выгрузки туннелей.
  • Ряд улучшений в поддержке Infiniband и беспроводных сетей.

>>> Полный список изменений (на английском)

Для Btrfs реализована полноценная поддержка swap-файлов, а также изменение FSID без перезаписи метаданных.

Ext4 больше не нужна!

anonymous ()
Ответ на: комментарий от vasya_pupkin

А почему раньше BtrFS swap не поддерживало ??

Это ж просто файл..

Это не «просто файл». Это файл, к которому ядро хочет иметь прямой доступ в обход драйвера ФС. Раньше Btrfs так не умело, теперь, судя по всему, умеет. См. выше.

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 2)

с одной стороны, Линус заявляет что у ARM нет будущего, с другой стороны, описываются изменения впервую очередь затрагивающие ARM. оооокей.

рад обновиться, надо пойти отпраздновать.

Spoofing ★★★★★ ()

Добавлена хэш-функция Streebog (ГОСТ 34.11-2012), разработанная ФСБ РФ.

Забавно, недавно выкинули Speck от одних шпионов, но включили в ядро Стрибога от других. Это конечно разные вещи, но...

whiteout ()
Последнее исправление: whiteout (всего исправлений: 1)

Оно просто помогает дорогому нашему Линусу Торвальдсу сохранить душевный покой.

Не похоже, раз он прогнулся под коковводов.

xaizek ★★★★★ ()
Ответ на: комментарий от anonymous

Ext4 больше не нужна!

Ну-ну, я тут недавно пытался systemd-nspawn использовать на 4.14, так он со своей btrfs внутри loopback вольюма систему раком через раз ставил kernel panic-ами. Хорошо это были всего лишь образы ФС на корневой ext4, а не наоборот.

snizovtsev ★★★ ()
Последнее исправление: snizovtsev (всего исправлений: 1)

Механизм blk-mq с многоуровневой системой очередей запросов стал основным для блочных устройств. Весь не-mq код удалён.

забыл. это надстройка над CFQ или уже как его замена рассматривается?

darkenshvein ★★★★ ()
Ответ на: комментарий от alexferman

Так я угадал насчёт размера?

Почти, 4Гб. Но это как-бы нормальный размер по задумке системд, там дефолт вообще 512Мб и динамическое расширение по необходимости (которое не работает). И зачем контейнеру больше?

snizovtsev ★★★ ()
Последнее исправление: snizovtsev (всего исправлений: 1)