The OpenNET Project / Index page

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



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

Исходное сообщение
"Релиз ядра Linux 4.18"
Отправлено opennews, 13-Авг-18 07:27 
После двух месяцев разработки Линус Торвальдс представил (https://lkml.org/lkml/2018/8/12/103) релиз ядра Linux 4.18 (https://kernel.org). Среди наиболее заметных изменений в ядре 4.18: возможность монтирования ФС на базе FUSE непривилегированным пользователем, пакетный фильтр bpfilter, подсистема AF_XDP (eXpress Data Path), новый тип модулей ядра umh (usermode helper), device-mapper модуль writecache, поддержка
SoC Qualcomm Snapdragon 845.


В новую версию принято  13 тысяч исправлений от       1668  разработчиков,
размер патча - 50 Мб (изменения затронули    12866 файлов, добавлено   521039 строк кода,
удалено -  619603 строк). Около 49% всех представленных в 4.18
изменений связаны с драйверами устройств, примерно 14% изменений имеют
отношение к обновлению кода специфичного для аппаратных архитектур, 13%
связано с сетевым стеком, 5% - файловыми системами и 3% c внутренними
подсистемами ядра. 9.5% всех исправлений подготовлено разработчиками компании Intel, 7.5% - Red Hat, 4.6% - AMD, 4.3% - IBM, 3.8% - Linaro,  3.4% - Renesas Electronics, 3.0% - Google, 2.9% - SUSE, 2.8% - Samsung, 2.2% - Mellanox, 2.1% - Huawei, 2.0% - Oracle.

Основные (http://kernelnewbies.org/Linux_4.18) новшества (https://lwn.net/Articles/756898/):

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


-  В состав ядра включен новый механизм фильтрации пакетов bpfilter (https://www.opennet.ru/opennews/art.shtml?num=48690), использующего предоставляемую ядром подсистему eBPF, но предлагая  привычный синтаксис iptables. Bpfilter обрабатывает запросы API iptables и транслирует их в программы BPF, привязываемые к различным подсистемам.  В настоящий момент в ядро добавлена только базовая инфраструктура для bpfilter, но ещё нехватает некоторых компонентов, необходимых для полноценного применения bpfilter для фильтрации пакетов;

-  В качестве сопутствующей bpfilter разработки в ядро добавлен новый тип модулей ядра umh (https://lwn.net/Articles/749108/) (usermode helper), которые выполняются в пространстве пользователя и привязываются в базовым модулям, предоставляя для них вспомогательную функциональность, которую нецелесообразно или опасно выполнять c привилегиями ядра (например в модуле bpfilter.ko через них выполняется разбор и трансляция в BPF правил фильтрации). Модули umh функционируют под управлением ядра, оформляются в виде модулей ядра  и загружаются через modprobe, но выполняются в пространстве пользователя с привилегиями пользовательских приложений.  Взаимодействие umh-модулей с обычными модулями ядра производится с использованием неименованных каналов (unix pipe);

-  В состав ядра включена (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin... подсистема AF_XDP (eXpress Data Path (https://www.iovisor.org/technology/xdp)), которая  предоставляет средства для запуска BPF-программ на уровне сетевого драйвера, с возможностью прямого доступа к DMA-буферу пакетов, что позволяет создавать высокопроизводительные обработчики для работы в условиях большой сетевой нагрузки. В качестве примера реализованы обработчики для быстрой блокировки (https://www.opennet.ru/opennews/art.shtml?num=48925) и перенаправления пакетов.


-  Реализована (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin... возможность (https://lwn.net/Articles/754681/) чтения данных из сетевого сокета в режиме zero-copy (флаг TCP_ZEROCOPY_RECEIVEY), позволяющем организовать передачу данных по сети без промежуточного копирования данных между ядром и пространством пользователя (поддержка записи в режиме zero-copy  была представлена в ядре 4.14);

-  В реализации (https://github.com/torvalds/linux/blob/master/Documentation/... протокола TLS на уровне ядра (KTLS) добавлена возможность задействования аппаратного ускорения операций с использовнием специализированных чипов. В настоящее время вынос связанных с работой TLS вычислений на плечи оборудования доступен только при использовании драйвера Mellanox mlx5;
-  В TCP-стек добавлена поддержка режима сжатия для выборочного подтверждения соединений (SACK), что позволяет сократить число отправляемых SACK-пакетов при перегрузке сети;

-  Добавлена возможность прикрепления BPF-программ к сокету и запуска обработчиков при вызове sendmsg(). Подобные обработчики могут применяться для выполнения такхи задач, как перезапись IP-адресов в исходящих пакетах;


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

-  В подсистему шифрования (crypto) добавлена (https://git.kernel.org/torvalds/c/3e1a29b3bf66c2850ea8eba78c... поддержка  шифров AEGIS (https://www.techrepublic.com/resource-library/whitepapers/ae... и MORUS (https://competitions.cr.yp.to/round3/morusv2.pdf), а также алгоритма сжатия Zstandard (https://www.opennet.ru/opennews/art.shtml?num=45058);

-  Пользователь с правами root в пространстве имён идентификаторов пользователя (user namespaces) теперь может монтировать файловые системы, даже если у него нет на это прав вне пространства имён.
При этом файловая система должна быть специально помечена для разрешения подобных операций (в настоящий момент операции разрешены (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin... только для ФС, реализуемых в пространстве пользователя при помощи модулей FUSE);
-  В модуль fscrypt, применяемый для шифрования ФС F2FS и ext4, добавлена (https://git.kernel.org/torvalds/c/fd59ccc53062964007beda8787... поддержка шифров Speck128 и Speck256 (https://github.com/iadgov/simon-speck), разработанных (https://ru.wikipedia.org/wiki/Speck) Агентством национальной безопасности США. Шифры обеспечивают очень высокую производительность программной реализации, которая обгоняет AES на системах без наличия средств аппаратного ускорения AES. Использование Speck позволяет применять шифрование на маломощных устройствах, на которых применение AES не оправдано из-за больших накладных расходов;


-  Для 32-разрядной архитектуры ARM обеспечена  защита от уязвимостей Spectre 1 и Spectre 2 (ранее защита от Spectre была обеспечена для архитектур x86, ARM64 и S390). Для ARM64 добавлена защита от Spectre v4.

-  Проведена (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin... работа по переводу ядра  на более защищёные от переполнения буфера варианты функций распределения памяти. Например, вызовы "kmalloc(count*size, gfp_flags)" заменены на "kmalloc_array(count, size, gfp_flags)";

-  Изменены (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin... настройки для включения защиты от переполнения стека - теперь автоматически включается наиболее действенный механизм защиты, доступный для текущей конфигурации;


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

-  Для Device Mapper реализован новый модуль "writecache (https://github.com/torvalds/linux/blob/master/Documentation/... который может применяться для кэширования операций записи блоков на  SSD-накопителях или в постоянной памяти (кэширование операций записи не реализовано, так как такие операции и так кэшируются кэше страниц памяти в ОЗУ);


-  В файловой системе Btrfs обеспечена (https://git.kernel.org/torvalds/c/704996566f97e0e24c97052f81... возможность удаления пустого подраздела при помощи вызова rmdir() без специальных дополнительных привилегий. Добавлены новые ioctl-команды FS_IOC_FSGETXATTR и FS_IOC_FSSETXATTR для манипуляции с различными атрибутами файла (append, immutable, noatime, nodump и sync), которые в отличие от  команд GET/SETFLAGS могут выставить атрибуты на уровне отдельных inode. Также реализован набор ioctl-команд для получения непривилегированным пользователем информации о подразделах;


-  В фа...

URL: https://lkml.org/lkml/2018/8/12/103
Новость: https://www.opennet.ru/opennews/art.shtml?num=49040

 

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



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

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