После двух месяцев разработки Линус Торвальдс анонсировал (http://lkml.iu.edu/hypermail/linux/kernel/1502.1/00199.html) релиз ядра Linux 3.19 (https://www.kernel.org/). Среди наиболее заметных улучшений: средства защиты от переполнения буфера на основе расширений Intel MPX, проверка целостности и быстрая замена дисков Btrfs RAID 5/6, сжатие LZ4 в squashfs, возможность привязки BPF-программ к сетевым сокетам, протокол TIPC, системный вызов execveat(), драйвер "ipvlan" для связи контейнеров, драйвер "AMD KFD" для GPGPU-вычислений, поддержка архитектуры Altera Nios II.
В новую версию принято примерно 11500 исправлений от 1200 разработчиков,
размер патча - 38 Мб (изменения затронули 10742 файлов, добавлено 487475 строк кода, удалено 350946 строк). Около 46% всех представленных в 3.19 изменений связаны с драйверами устройств, примерно 19% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 12% связано с сетевым стеком, 4% - файловыми системами и 4% c внутренними
подсистемами ядра.
Из наиболее интересных новшеств (http://kernelnewbies.org/Linux_3.19) можно отметить:
-
Дисковая подсистема, ввод/вывод и файловые системы
- В Btrfs появилась возможность быстрой замены дисков в RAID 5/6 без предварительного добавления нового диска, переноса данных и вывода из массива старого диска, т.е. теперь при помощи утилиты btrfs-replace можно просто поменять на лету один диск на другой, как это делалось для накопителей, не состоящих в RAID. Для RAID 5/6 также добавлена функция проверки целостности данных ("Scrubbing", сверка контрольных сумм, сохранённых и вычисленных на основе фактических данных), которая ранее не могла быть применена только к RAID разделам Btrfs;
- Существенно увеличена производительность модуля Device Mapper, обеспечивающего динамическое выделение места в хранилище (thin provisioning) и позволяющего создать несколько виртуальных дисковых разделов, суммарный размер которых превышает физический размер доступных накопителей, а физическое дисковое пространство выделяется по мере необходимости. Производительность возросла в основном благодаря поддержке агрегирования операций с идентичными блоками до обращения к основному устройству;
- В файловой системе Ceph добавлена поддержка inline-размещения данных, что привело к увеличению производительности для мелки файлов. Также добавлена поддержка верификации сообщений по цифровой подписи для аутентификации обмена данными между клиентами и серверами;
- В F2FS, развиваемую компанией Samsung высокопроизводительную файловую систему для Flash-накопителей, добавлена опция "fastboot", которую можно использовать для сокращения числа проверок во время загрузки;
- В файловую систему squashfs добавлена поддержка сжатия данных с использованием алгоритма LZ4;
-
Виртуализация и безопасность
- Поддержка расширений MPX (http://en.wikipedia.org/wiki/Intel_MPX) (Memory Protection Extensions), которые появятся в следующих поколениях микроархитектур процессоров Intel (Skylake и Goldmont) и дадут возможность организовать проверку ссылок на соблюдение границ, связанных с ними областей памяти. Для использования данной возможности для каждой ссылки на память процессору необходимо сообщить сведения о допустимых границах области памяти, что требует дополнительной адаптации программного обеспечения, т.е. использование для сборки компилятора и runtime-библиотек, поддерживающих MPX. С практической стороны, MPX позволит выявлять ошибки при работе с памятью и блокировать совершение атак, основанных на переполнении буфера.
- Добавлен драйвер "ipvlan", позволяющий создавать виртуальные сетевые устройства для связи между изолированными контейнерами. Драйвер напоминает macvlan, но рассчитан на эффективную работу с сетевыми пространствами имён (network namespaces) и производит мултиплексирование трафика на более высоком уровне сетевого стека;
- Для архитектуры ARM64 реализован механизм seccomp, используемый (http://www.opennet.ru/opennews/art.shtml?num=33654) для ограничения доступа приложений к системным вызовам;
- В связи с устранением возможного вектора атаки (CVE-2014-8989) изменена обработка системного вызова setgroups(), при его использовании в пространствах имён для непривилегированных пользователей (user namespaces), что может (http://lwn.net/Articles/626665/) потенциально привести к нарушению нормальной работы некоторых приложений, выполняющих маппинг произвольных идентификаторов групп пользователей.
- Прекращена поддержка использования системы виртуализации KVM на серверах с архитектурой Itanium (ia64), так как данная возможность не использовалась на практике и оставалась без сопровождения;
- Добавлен (http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.g... интерфейс для доступа из пространства пользователя к функциям блочного шифрования AEAD (https://ru.wikipedia.org/wiki/AEAD_%D1%80%D0&...
-
Сетевая подсистема
- В клиент и сервер NFS добавлена поддержка опций ALLOCATE и DEALLOCATE, определённых в стандарте NFS 4.2 и позволяющих заранее зарезервировать место в хранилище для файла, до его фактической записи;
- В сетевой стек добавлена новая подсистема для задействования аппаратных механизмов ускорения коммутации и маршрутизации на поддерживающем данные возможности оборудовании;
- Поддержка (https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.... netlink API для сетевого протокола TIPC (http://tipc.sourceforge.net/) (Transparent Inter-process Communication) для организации межпроцессного взаимодействия в кластере. Протокол предоставляет средства для быстрого и надёжного взаимодействия приложений, независимо от того, на каких узлах в кластере они выполняются.
- В подсистеме InfiniBand обеспечена поддержка подкачки по необходимости (on-demand paging), что позволяет создавать и размещать области RDMA через обработчик обращений к невыделенным страницам памяти (page faults), т.е. тогда, когда память действительно используется;
-
Память и системные сервисы
- В системный вызов getsockopt() добавлена новая опция SO_INCOMING_CPU, при помощи которой можно определить CPU, используемый для обработки указанного сокета. Используя данную опцию приложение может распределить связанную с сокетами работу по нескольким процессорам, увеличив общую пропускную способность;
- Возможность (http://lwn.net/Articles/625224/) привязки расширенных BPF-программ к сетевым сокетам. В настоящее время функциональность ограничена сбором статистики, но в будущем ожидается расширение возможностей;
- Добавлен системный вызов execveat(), который позволяет запустить исполняемый файл из открытого файлового дескриптора или найти исполняемый файл при передаче файлового дескриптора директории;
- Из экспериментального staging-дерева в основной состав ядра перемещён механизм межпроцессного взаимодействия Binder, предложенный разработчиками платформы Android;
- Поддержка (http://lwn.net/Articles/616859/) оверлеев Device Tree (http://devicetree.org), призванных упростить получение информации о вспомогательном оборудовании на стадии загрузки системы;
- В подсистеме ftrace добавлена возможность использования в фильтрах выражений с логической операцией НЕТ ("!");
-
Аппаратные архитектуры
- Поддержка микропроцессорной архитектуры с программным ядром Altera Nios II (http://www.altera.com/devices/processor/nios2/ni2-index.html) (soft-процессор (https://ru.wikipedia.org/wiki/Soft-%D0%BC%D0&... конкурирующей с архитектурой MicroBlaze;
-
Оборудование
- Добавлен др...
URL: http://lkml.iu.edu/hypermail/linux/kernel/1502.1/00199.html
Новость: http://www.opennet.ru/opennews/art.shtml?num=41634