The OpenNET Project / Index page

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



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

Исходное сообщение
"Релиз ядра Linux 4.12"
Отправлено opennews, 03-Июл-17 08:52 
После двух месяцев разработки Линус Торвальдс представил (https://lkml.org/lkml/2017/7/2/164) релиз ядра Linux 4.13 (https://www.kernel.org/). Среди наиболее заметных изменений: в состав включены планировщики ввода/вывода  BFQ и Kyber, для live-патчей реализована  гибридная модель обеспечения непротиворечивости, добавлен модуль dm-integrity, интегрирован фреймворк TEE (Trusted Execution Environment), в MD RAID5 добавлена поддержка частичного лога чётности, в blk-throttle обеспечена поддержка "мягких" лимитов, в поставку добавлена утилита "AnalyzeBoot".

В новую версию принято более 13 тысяч исправлений от  1500 разработчиков,
размер патча - 89 Мб, что примерно в два раза больше, чем патч для ядра 4.11 (изменения затронули 12364 файлов, добавлено 1300537 строк кода, удалено 266937 строк). Около 45% всех представленных в 4.12
изменений связаны с драйверами устройств, примерно 16% изменений имеют
отношение к обновлению кода специфичного для аппаратных архитектур, 13% связано с сетевым стеком, 3% - файловыми системами и 3% c внутренними подсистемами ядра.


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

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


-  Для многоуровневой системы очередей (multiqueue) реализованы (https://lwn.net/Articles/720675/)  планировщики ввода/вывода BFQ (Budget Fair Queueing) и Kyber, специально рассчитанные на организацию многопоточного доступа к данным на многоядерных системах. Ранее реализация multiqueue считалась незавершённой из-за отсутствия планировщиков, специально созданных для работы с многоуровневыми очередями.  BFQ манипулирует распределением между процессами бюджетов на ввода/вывод и позволяет добиться хороших показателей интерактивной отзывчивости при использовании дисковых носителей или медленных SSD-накопителей. Kyber минималистичен (около 1000 строк кода), оптимизирован для работы с быстрыми  SSD-накопителями и манипулирует двумя основными очередями - очередь для синхронных запросов (операции чтения) и очередь для асинхронных запросов (операции записи);

-  В модуль управления пропускной способностью ввода/вывода blk-throttle добавлено новый лимит "low", который можно использовать для задания мягких ограничений. Группа (cgroup) может превысить low-ограничение, но только при условии, что все  активные группы уже достигли данного лимита. Через настройки можно корректировать период выборки, используемый  контроллером cgroup, для тонкого контроля над нагрузкой на CPU;

-  В подсистему LightNVM добавлен обработчик "pblk", который позволяет работать с SSD-накопителями типа open-channel (https://en.wikipedia.org/wiki/Open-channel_SSD) (не имеют прошивки) как с обычными блочными устройствами;

-  В MD RAID5 добавлена поддержка возможности Partial Parity Log (https://raw.githubusercontent.com/torvalds/linux/master/Docu... (PPL), которая позволяет снизить вероятность повреждения данных в случае работы с рассинхронизированным массивом, один из накопителей в котором не соответствует данным на других дисках, а массив находится в состоянии "degraded", т.е. отсутствует возможность пересчитать блоки чётности;

-  Для Device Mapper реализован новый модуль dm-integrity (https://raw.githubusercontent.com/torvalds/linux/master/Docu... который обеспечивает эмуляцию  блочного устройства с дополнительными метками х в секторах, в которых может сохраняться информация для контроля целостности данных;

-  Удалён (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin... устаревший драйвер hd для жестких дисков с нестандартным интерфейсом, используемым на заре рождения ПК до появления интерфейса IDE. Драйвер был написан Линусом и поставлялся начиная с версии ядра 0.01;

-  Реализована новая ioctl-команда GETFSMAP, которую можно использовать для анализа  физического размещения экстентов в файловой системе. Например, при помощи GETFSMAP можно определить данные какого файла связаны с указанным физическим блоком. В настоящее время GETFSMAP поддерживается для  XFS и ext4;


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


-   В состав включен фреймворк TEE (Trusted Execution Environment), предоставляющий средства для задействования воможностей процессоров, таких как ARM TrustZone (https://www.arm.com/products/security-on-arm/trustzone), для организации выполнения защищённых окружений, аппаратно изолированных даже от ядра. Например, подобные окружения могут применяться (https://www.opennet.ru/opennews/art.shtml?num=44718) для изоляции обработчиков ключей шифрования.

-  В Xen обеспечена возможность применения сетевой файловой системы 9pfs (https://xenbits.xen.org/docs/unstable/misc/9pfs.html), разработанной для Plan 9. При помощи 9pfs в системах виртуализации можно организовать передачу данных из одной виртуальной машины к другой;

-  В гипервизор KVM добавлена поддержка механизма виртуализации "VZ", присутствующего на процессорах  MIPS. Для архитектуры x86 прекращена поддержка механизма назначения устройств, вместо которого следует применять интерфейс VFIO;

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


-  В системном вызове  epoll_wait() обеспечен переход на схему  polling-опроса сетевых сокетов при высокой нагрузке для снижения задержек при приёме пакетов;

-  Прекращена поддержка использования параллельного  NFS (pNFS) поверх устройств объектных хранилищ, которая оказалась невостребована и длительное время находится без сопровождения;

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


-  Для инфраструктуры, предоставляющей универсальный API для динамического применения к работающему ядру патчей без перезагрузки и без остановки работы приложений,
добавлена (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin... поддержка гибридной модели (https://www.opennet.ru/opennews/art.shtml?num=41651) обеспечения непротиворечивости, комбинирующей метод отслеживания непротиворечивости через анализ стека (kPatch) с механизмом оценки отдельных задач (kGraft).  Ранее  доступный в ядре код позволял создавать лишь простые патчи для горячего устранения некоторых типов уязвимостей, но не мог применятся для более сложных изменений, затрагивающих замену функций или изменение семантики данных. По сравнению с kPatch гибридная модель позволяет избежать задержек во время наложения патча, может применяться в ситуациях выполнения подменяемой функции и предоставляет более предсказуемый прогноз успешности выполнения операции. По сравнению с kGraft гибридный метод более прост в реализации и оказывает меньшее влияние на процессы (не требует отправки сигнала спящим задачам).


-  В системный вызов prctl() добавлены две новые операции: ARCH_SET_CPUID для включения отслеживания инструкций CPUID и ARCH_GET_CPUID для получения текущего состояния отслеживания. Операции поддерживаются только для систем x86 и могут быть полезны для трассировки приложений, которые пытаются перехватить и эмулировать CPUID;

-  В виртуальной машине BPF реализована возможность вложенного (каскадного) использования map-структур. В состав ядра включен встроенный тестовый фреймворк для программ BPF, активируемый командой BPF_PROG_TEST_RUN в системном вызове bpf(). Обеспечена поддержка JIT-компиляции для архитектуры SPARC64;

-  В поставку добавлена утилита "AnalyzeBoot", позволяющая сформировать  HTML-отчёт, отражающий хронологию загрузки различных компонентов ядра;

-  Значительно переработан код для доступа к данным пространства пользователя из ядра, который избавлен от множества привязок, специфичных для конкретных архитектур;

-  Прекращена поддержка архитектуры AVR32, которая уже прекратила своё существование, а в ядре не сопровождалась на должном уровне;

-  Добавлен новая опция трассировки  "function-fork", которая позволяет ограничить события трассировки только заданны...

URL: https://lkml.org/lkml/2017/7/2/164
Новость: http://www.opennet.ru/opennews/art.shtml?num=46799

 

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



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

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