The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Релиз ядра Linux 5.1"
Отправлено opennews, 06-Май-19 09:06 
После двух месяцев разработки Линус Торвальдс представил (https://lkml.org/lkml/2019/5/5/278) релиз ядра Linux 5.1 (https://www.kernel.org). Среди наиболее заметных изменений в ядре 5.1: новый интерфейс для асинхронного ввода/вывода io_uring, возможность использования NVDIMM в качестве ОЗУ, поддержка в Nouveau разделяемой виртуальной памяти, поддержка масштабируемого мониторинга очень больших ФС через fanotify, возможность настройки уровней сжатия Zstd в Btrfs, новый обработчик cpuidle  TEO, реализация системных вызовов для решения проблемы 2038 года, возможность загрузки с устройств device-mapper без initramfs, поддержка комбинированных live-патчей.


Основные (https://kernelnewbies.org/Linux_5.1) новшества (https://lwn.net/Articles/783084):


-  
Дисковая подсистема, ввод/вывод и файловые системы


-  Реализован новый интерфейс для асинхронного ввода/вывода - io_uring (http://kernel.dk/io_uring.pdf), который примечателен поддержкой поллинга ввода/вывода и  возможностью работы как с буферизацией, так и без буферизации. Напомним, что предлагаемый ранее механизм асинхронного ввода/вывода "aio" не поддерживал буферизированный ввод/вывод, мог работать только в режиме O_DIRECT (без буферизации и в обход кэша) и имел проблемы с возникновением блокировок из-за ожидания доступности метаданных и накладными расходами из-за копирования данных в памяти.


В рамках API
io_uring разработчики попытались устранить недостатки старого интерфейса aio. По производительности (https://lore.kernel.org/linux-block/20190116175003.17880-1-a... io_uring очень близок к SPDK (https://spdk.io/) и существенно опережает libaio при работе с включенным поллингом. Для использования io_uring  в конечных приложениях, работающих в пространстве пользователя, подготовлена библиотека liburing (http://git.kernel.dk/cgit/liburing/), предоставляющая высокоуровневую обвязку над интерфейсом ядра.


-  В механизм отслеживания событий в ФС fanotify() добавлена (https://github.com/amir73il/fsnotify-utils/wiki/Super-block-... поддержка отслеживания событий, приводящих к изменению суперблока и структуры dirent (https://ext4.wiki.kernel.org/index.php/Ext4_Disk_Layout) (события создания, удаления и перемещения каталогов). Представленные возможности помогают решить проблемы с масштабируемостью, возникающие при создании рекурсивных отслеживаний изменений в очень больших ФС при помощи механизма inotify (изменения dirent ранее можно было отследить только через inotify, но
эффективность в условиях рекурсивного отслеживания больших вложенных каталогов оставляла желать лучшего). Теперь подобный мониторинг можно эффективно производить через fanotify;

-  В файловой системе  Btrfs добавлена (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin... возможность  настройки уровня сжатия для алгоритма  zstd, который может рассматриваться как оптимальный компромисс, между быстрым но неэффективным lz4 и медленным но хорошо сжимающим xz. По аналогии с тем как раньше можно было устанавливать уровень сжатия при применении zlib для zstd  добавлена поддержка опции монтирования "-o compress=zstd:level". При тестировании первый уровень обеспечил сжатие данных в 2.658 раз при скорость сжатия 438.47 MB/s, скорости распаковки 910.51 MB/s и потреблении памяти 780 MB, а 15 уровень - в 3.126 раз, но при скорости сжатия в 37.30 MB/s, распаковки 878.84 MB/s и потреблении памяти 2547 MB;


-  Добавлена (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin... возможность загрузки с файловой системы, размещённой на устройстве device-mapper, без применения initramfs. Начиная с текущего выпуска ядра устройства device-mapper можно напрямую использовать в процессе загрузки, например, как раздел с корневой ФС. Настройка раздела осуществляется при помощи загрузочного параметра "dm-mod.create". Среди разрешённых для загрузки модулей device-mapper: "crypt", "delay", "linear", "snapshot-origin" и "verity";

-  В ориентированную на Flash-накопители файловую систему F2FS добавлен флаг F2FS_NOCOW_FL, позволяющий отключить режим copy-on-write для заданного файла;

-  Из ядра удалена файловая система Exofs (https://www.opennet.ru/opennews/art.shtml?num=22084), представляющая собой вариант ext2, адаптированный для работы с хранилищами объектов OSD (Object-based Storage Device). Также удалена поддержка SCSI-протокола для подобных устройств хранения объектов;


-  
Виртуализация и безопасность


-  В prctl() добавлена опция PR_SPEC_DISABLE_NOEXEC для управления  спекулятивным выполнением инструкций для выбранного процесса. Новая опция позволяет выборочно отключать спекулятивное выполнение для процессов, которые потенциально могут быть атакованы при помощи атаки типа Spectre. Блокировка действует до первого вызова exec();

-  Реализован  LSM-модуль SafeSetID (https://www.kernel.org/doc/html/latest/admin-guide/LSM/SafeS... позволяющий системным сервисам безопасно управлять пользователями без повышения привилегий (CAP_SETUID) и без получения полномочий пользователя root. Назначение привилегий осуществляется через определение в securityfs правил на основе белого списка допустимых привязок (в форме "UID1:UID2");

-  Добавлены низкоуровневые изменения, необходимые для стековой организации загрузки модулей безопасности (LSM). Представлен параметр загрузки ядра "lsm", позволяющий управлять тем, какие модули загружаются и в каком порядке;

-  В подсистему аудита добавлена поддержка пространств имён файлов;

-  Расширены (https://git.kernel.org/linus/81a56f6dcd20) возможности GCC-плагина structleak, позволяющего блокировать потенциальные утечки содержимого памяти Обеспечена инициализация любых переменных, которые используются в коде через обращение по ссылке в стеке;


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

-  Для сокетов реализована (https://git.kernel.org/linus/f5dd3d0c9638) новая опция  "SO_BINDTOIFINDEX", похожая на
"SO_BINDTODEVICE", но принимающая в качестве аргумента индексный номер сетевого интерфейса вместо имени интерфейса;

-  В стек mac80211 добавлена возможность назначения одному устройству нескольких  BSSID (MAC-адресов). В рамках проекта по оптимизации производительности WiFi в стек mac80211 добавлен учёт распределения эфирного времени  и возможность распределять эфирное время между несколькими станциями (при работе в режиме точки доступа выделение меньшего времени на передачу медленным беспроводным станциям, вместо равномерного распределния времени между всеми станциями);


-  Добавлен механизм "devlink health (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin... ппредоставляющий уведомления при возникновении проблем с сетевым интерфейсом;


-  
Память и системные сервисы


-  Реализована (https://git.kernel.org/torvalds/c/a9dce6679d736cb3d612af39ba... безопасная доставка сигналов, учитывающая возможность повторного использования PID. Например, при выполнении системного вызова kill ранее могла возникнуть  ситуация, когда сразу после отправки сигнала целевой PID мог быть освобождён из-за завершения работы процесса  и занят другим процессом, и в итоге сигнал применялся для другого процесса. Для исключения подобных ситуаций добавлен новый системный вызов pidfd_send_signal, который использует файловые дескрипторы из /proc/pid для обеспечения стабильной привязки к процессу. Даже если PID будет повторно задействован во время обработки системного вызова, файловый дескриптор не изменится и его можно безопасно использовать для отправки сигнала процессу;

-  Добавлена (https://lwn.net/Articles/777212/) возможность использования устройств постоянной памяти (persistent-memory, например NVDIMM (https://en.wikipedia.org/wiki/NVDIMM)) в качестве ОЗУ. До сих пор в ядре подобные устройства поддерживались в к...

URL: https://lkml.org/lkml/2019/5/5/278
Новость: https://www.opennet.ru/opennews/art.shtml?num=50631

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру