image

Сегодня, после двух месяцев работы, Линус Торвальдс представил ядро Linux 4.11. Среди прочих изменений стоит выделить такие пункты, как включение поддержки журналирования в программном RAID 4/5/6, системный вызов statx(), плюс поддержка протокола Opal, что позволяет работать с самошифруемыми накопителями информации.

О масштабах изменений можно судить по количеству принятых исправлений — около 12000 от полутора тысяч разработчиков. Размер патча составляет 39 МБ. Изменены 12479 файлов, добавлено чуть больше полумиллиона строк кода, удалено более 200 тысяч. Примерно половина представленных изменений имеет отношение к драйверам устройств, около 20% — поддержка различных аппаратных архитектур, остальное — сетевой стек, файловые системы и внутренние подсистемы ядра.

Обновления, чтобы получить о них лучшее представление, стоит разделить на несколько секций. Это «железо», «память», «сетевая подсистема», «дисковая и файловые системы» и «виртуализация».

Железо


  • Здесь добавлено несколько ожидаемых многими элементов, включая интеграцию в DRM-драйвер начальной реализации системы регулирования энергопотребления. Речь идет о Power budget, как это называется на английском. Кроме того, усовершенствована поддержка режима, который обеспечивает загрузку завершенных цифровой подписью блобов с прошивками NVIDIA. Это требуется для того, чтобы позволить активировать средства 3D ускорения графики в GeForce-1000 и более новых видеоадаптерах. К сожалению, полная поддержка новых прошивок будет обеспечена лишь в ядре 4.12;
  • В драйвер AMDGPU добавили предварительную поддержку технологии виртуализации ввода-вывода SR-IOV (Single Root Input/Output Virtualization), которая поддерживается в профессиональных картах FirePro. Появились PCI-идентификаторы для чипов POLARIS12;
  • Кроме того, в драйвере для GPU от Intel добавлены PCI-идентификаторы видеоподсистемы SoC Gemini Lake. Примечательно, что она еще не поступила в продажу, предназначена она для смены Apoolo Lake;
  • Разработчики добавили поддержку таких ARM-плат, как Banana Pi M64, HiSilicon Kirin960/Hi3660/HiKey960, SolidRun MACCHIATOBin, Broadcom BCM958712DxXMC NorthStar2, NXP LS1012a, а также систем на баз Allwinner H2+ и V3;
  • Есть новый звуковой драйвер и драйвер камеры, которая используется в Raspberry Pi.

Дисковая и файловые системы


  • Разработчики ядра добавили поддержку журналирования в RAID 4/5/6. Этот ход позволил защитить систему от потери данных в случае отключения питания или падения. Разрабатывала этот компонент компания Facebook. Журнал ведется на отельном носителе, причем данные изначально отражаются в журнале, а после — разносятся по различным дискам, которые входят в RAID-массив. В том случае, если отключается питание, даже, если информация была записана только на часть дисков, повреждений можно избежать;
  • Что касается файловой системы ext4, здесь реализована команда нового типа EXT4_IOC_SHUTDOWN. Она позволяет убедиться в том, что раздел уже остановлен и необходимости в сбросе данных, которые находятся в оперативной памяти, нет;
  • Как и говорилось выше, разработчики реализовали работу с накопителями, которые соответствуют спецификации Opal. Эта спецификация определяет принцип шифрования хранимых данных, что позволяет не допустить утечку информации в случае, если носитель с ценными данными украден или потерян. Пользователям предоставлена возможность изменять ряд настроек;
  • Для F2FS, системы, которая разрабатывается корпорацией Samsung, включена опция inline_xattr, обеспечивающеая inline-хранение в inode атрибутов xattr;
  • Поддержка NFSv4 по UDP отключена, поскольку она была неработоспособной. Плюс ко всему, отключены по умолчанию метки безопасности для NFS.

Виртуализация


  • В ядро теперь встроена реализация алгоритма SipHash, которая представляет собой безопасный и быстрый метод хэширования;
  • Добавлен интерфейс /sys/kernel/security/lsm — через него теперь можно узнать список активных LSM-модулей;
  • Добавлена реализация алгоритма шифрования AES, которая обеспечивает фиксированное время выполнения для защиты от атак определенного типа, когда злоумышленник пытается определить тип данных на основе изменения времени обработки операции;
  • Генератор псевдослучайных чисел переведен с хэширования MD5 на использование безопасного и быстрого алгоритма поточного шифра ChaCha20.

Сеть


  • Здесь реализован новый тип сокетов, "SMC-R" (Shared Memory Communications over RDMA, RFC-7609), который предназначен для организации каналов связи поверх RDMA (Remote Direct Memory Access). Этот протокол разработан корпорацией IBM и обеспечивает возможность адаптировать написанные для TCP приложения для работы в
  • сетях RoCE (RDMA over Converged Ethernet);
  • Появился новый модуль «psample» для выборки сетевых пакетов, которые проходят через сетевой интерфейс для дальнейшего отсеивания фильтром-классификатором;
  • В TCP-стеке включен по умолчанию механизм RACK, позволяющий определять потери пакетов. В этом случае используется время передачи, а не последовательность прихода пакетов;
  • Для TCP-сокетов добавлена новая опция TCP_FASTOPEN_CONNECT;
  • Есть новый драйвер для создания сетевых интерфейсов Ipvlan, драйвер — ipvtap.

Память


  • Здесь добавлен системный вызов statx(), где реализован более эффективный и функциональный вариант stat() с возвращением расширенной информации о файле, с включением времени создания файла и специфичных для файловых систем флагов;
  • Появилась реализация раздельных буферов прокрутки для VGA-консолей;
  • Система подкачки оптимизирована, адаптирована на работу с SSD с малым постоянным временем доступа;
  • Появилась возможность использования разгона процессоров Turbo Boost Max 3.0 на системах без поддержки HWP (Hardware P-States);
  • Устройства PCI Express получили поддержку дополнительных режимов энергосбережения ASPM L1;
  • Также реализована поддержка средств управления энергопотреблением APST (Autonomous Power State Transitions), которые обеспечивают возможность на 20-30% снизить потребление энергии SSD-накопителями на базе технологии NVE.

Как всегда Латиноамериканский Фонд свободного ПО представил свою версию ядра Linux-libre 4.11-gnu, полностью свободного от проприетарных элементов. Так, здесь «почищен» код для поддержки криптоакселераторов Cavium, а также драйверы для GPU Rockchip, Ethernet-контроллеров Netronome NFP 4000/6000 и сенсорных экранов Silead.

Более подробная информация о ядре доступна здесь и здесь.

Поделиться с друзьями
-->

Комментарии (5)


  1. zuborg
    01.05.2017 17:35
    +2

    Ещё для blk_mq добавили iosched, пока что только deadline, но все равно это жирный плюс для многодисковых сторов.


  1. alexoron
    01.05.2017 23:27
    +2

    Помнится еще недавно компилил ядро 2.4, чтобы влезло на флопик самозагрузочной системой.
    А тут уже 4.11 )))


  1. Wesha
    02.05.2017 00:59
    -1

    DRM-драйвер

    Линус, я не понял, копирасты и до тебя добрались?.. А как же GNU и… (плачет)


    1. evocatus
      02.05.2017 01:02
      +9

      https://en.wikipedia.org/wiki/Direct_Rendering_Manager


    1. RomanArzumanyan
      02.05.2017 01:42
      +3

      DRM в данном случае — это библиотека, которая используется при написании драйверов видеокарт. Не имеет отношения к копирайтам.