The OpenNET Project / Index page

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



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

Исходное сообщение
"Релиз ядра Linux 4.20"
Отправлено opennews, 24-Дек-18 08:12 
После двух месяцев разработки Линус Торвальдс представил (https://lkml.org/lkml/2018/12/23/187) релиз ядра Linux 4.20. Среди наиболее заметных изменений в ядре 4.20: поддержка процессорной архитектуры C-SKY, планировщик трафика taprio, подсистема PSI (Pressure Stall Information), P2P DMA для PCI, рефакторинг кода обработки сигналов, подключение диссекторов сетевого потока (разбор трафика) через BPF, перевод страничного кэша на новую структуру XArray, объединение драйверов amdgpu и amdkfd.


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


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

-  TCP-стек переведён на использование модели, определяющей
наиболее раннее время отправления (https://www.files.netdevconf.org/d/46def75c2ef345809bbe/file... каждого пакета при распределении исходящего трафика. Реализованная модель пытается решить проблемы с масштабированием через использование вместо очередей исходящих пакетов закольцованной структуры на основе таймера, определяющего самое раннее время, в которое каждый пакет может быть отправлен. Подобная структура позволяет увеличить эффективность распределения отправляемых пакетов и более точно вычислять время приёма-передачи (RTT, round-trip time) при формировании потока;

-  Добавлена возможность (https://lwn.net/Articles/764200/) загрузки в виде BPF-программ обработчиков, осуществляющих разбор заголовков пакетов в сетевом потоке (network flow dissectors), что позволяет добиться более высокой производительности и защищённости по сравнению c ранее предлагаемой реализацией на языке Си;

-  Реализован (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin... новый планировщик трафика "taprio", позволяющий управлять   отправкой пакетов в соответствии с предварительно сгенерированным временным рядом. Метод планирования определён в спецификации  IEEE 802.1Qbv (https://en.wikipedia.org/wiki/Time-Sensitive_Networking#Diff...учитывает требования к передаче трафика,  чувствительного ко времени доставки пакетов (например, видео и звуковые потоки) и использует разные временные интервалы для различных классов трафика;

-  Для протокола rtnetlink реализован (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin... режим строгой проверки ("rigid checking"), дающий возможность убедиться, что в пространство пользователя передаётся актуальная информация, соответствующая поступившему запросу;

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

-  Большая часть драйверов блочных устройств переведена на новый API blk-mq (multiqueue), поддерживающий разделение очередей для блочных устройств. Поддержку старого API планируют прекратить в следующем выпуске ядра. Некоторые драйверы также переведена на базовый DMA mapping API;
-  К коду Btrfs применена (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin... серия патчей с оптимизациями производительности, позволивших увеличить скорость обработки файлов в тесте fsmark,  увеличить производительность многопоточных операций (улучшились показатели тестов filebench и dbench), сократить число переключений контекста и повысить эффективность размещения данных в памяти. Ускорено переключение между режимами блочного доступа и доступа к накопителям с вращающимися дисками. Ускорены операции балансировки с использованием qgroups;

-  Изменения в Ext4 (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin... и XFS (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin... в основном были сосредоточены на исправлении ошибок и внесении мелких оптимизаций. В Ext4 добавлен новый механизм ожидающего резервирования блоков (pending reservation);
-  Реализованы две новые команды ioctl() для работы с зонированными блочными устройствами: BLKGETZONESZ для получения размера зоны и
BLKGETNRZONES для получения числа зон. Для нормальных блочных устройств (без зонирования) обе команды выдают на выходе ноль;
-  В системный вызов fanotify_mark() добавлен новый тип маркеров  - FAN_MARK_FILESYSTEM, который может использоваться для отслеживания всех событий с файловой системой;
-  В реализацию NFS 4.2 добавлена поддержка протокола асинхронного копирования данных на стороне сервера;
-  В файловую систему UBIFS добавлена (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin... поддержка аутентифицированного доступа ко всем файлами и метаданным для защиты от атак, проводимых через модификацию структур данных или файлов на носителе;


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

-  Для архитектуры arm64 предоставлена возможность использование  PSTATE-бита SSBS (Speculative Store Bypass Safe), предоставляемого процессорами на базе обновлённой архитектуры ARMv8.5-A (https://community.arm.com/processors/b/blog/posts/arm-a-prof... для защиты от атак с использованием уязвимости Spectre 4 (https://www.opennet.ru/opennews/art.shtml?num=48639);

-  Для более надёжной защиты от атак Spectre 2 при переключении между несвязанными процессами реализовано более агрессивное использование MSR-команды IBPB (Indirect Branch Prediction Barriers);

-  Из ядра удалена поддержка блочного шифра Speck (https://github.com/iadgov/simon-speck), разработанного (https://ru.wikipedia.org/wiki/Speck) Агентством национальной безопасности США, но, в конечном счёте, отклонённого комитетом ISO для стандартизации из-за опасения в подстановке скрытых уязвимостей;
-  Добавлены (https://git.kernel.org/linus/a6f37cee6e4f6fa9d61962efbcb06a0... API и простая утилита для вывода статистики об использовании криптографической подсистемы ядра;

-  Добавлена поддержка GCC-плагина stackleak, обеспечивающего инициализацию всех хранимых в стеке переменных  для предотвращения утечки информации из ядра через неинициализированные переменные, которые могут содержать остатки ранее сохранённых в стеке данных;

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

-  Значительно переработана (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin... обработка сигналов в ядре, что в результате позволило простить код и повысить надёжность выполнения обработчиков. Модернизация привела к небольшому изменению размера структуры, доступной из пространства пользователя, но разработчики не выявили каких-либо программ, на которые могло бы повлиять внесённое изменение;
-  В состав ядра добавлена подсистема PSI (https://lwn.net/Articles/759781/) (Pressure Stall Information), разработанная компанией Facebook в рамках проекта по созданию обработчика (https://www.opennet.ru/opennews/art.shtml?num=48994) нехватки памяти в системе (OOM, Out Of Memory), вынесенного в пространство пользователя. PSI позволяет проанализировать информацию о времени ожидания получения различных аппаратных ресурсов для определённых задач или наборов процессов в cgroup. При помощи PSI обработчики в пространстве пользователя могут более точно проанализировать причины замедления работы системы;

-  Для архитектуры RISC-V реализована (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin... поддержка системного вызова futex() для ожидания изменения значения по заданному адресу в памяти;

-  Добавлена поддержка двух новых типов BPF-отображений (map) - queue и stack, которые можно использовать (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin......

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

 

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



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

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