Недавно в нашем блоге мы рассказывали о релизе Linux kernel 4.17 и его основных фичах. В этом посте речь пойдет о версии 4.18, которая выйдет в августе.
О том, что будет сделано и что уже реализовано — рассказываем под катом.
/ фото Christopher Michel CC
Что будет в 4.18
Восьмого июля Линус Торвальдс с командой разработчиков из сообщества выпустили тестовый релиз 4.18-rc4 kernel. По словам Линуса, если всё и дальше будет хорошо, Linux kernel 4.18 увидит свет где-то в августе.
Новое ядро получит функции, направленные на дальнейшее повышение стабильности работы и уменьшение кодовой базы. В общей сложности за счет удаления устаревших элементов 4.18 уже «полегчал» на 100 тыс. строк кода, по сравнению с 4.17.
Linux kernel 4.18 ждет ряд и других улучшений. Далее, о некоторых из них.
Оптимизировано управление питанием всей системы
Разработчики серьезно взялись за энергоэффективность:
- улучшили показатели iowait для Schedutil — регулятора CPUFreq, который использует данные планировщика процессора для определения его оптимальной рабочей частоты;
- также улучшена работа «форсированного режима» (boost mode) iowait в драйвере CPUFreq Schedutil;
- добавили драйвер CPUFreq для Qualcomm Kryo;
Отметим, что обещанных улучшений в работе регулятора P-State для систем с Intel Skylake, направленных на повышение производительности задач ввода/вывода, в этом релизе не будет. Скорее всего, они появятся в версии 4.19. Полный список апдейтов управления питанием (правда, для rc-1) можно глянуть на lkml.
Улучшения, связанные с безопасностью монтирования файловых систем
Эта проблема решается ещё с 2008 года: тогда был выпущен первый патч-сет с функцией mount(). Сейчас ведется работа над тем, чтобы позволить непривелигированным пользователям безопасно монтировать файловые системы с помощью механизма FUSE. Это должно защитить ядро от потенциальных уязвимостей.
Однако, как отмечает разработчик Дэйв Чиннер (Dave Chinner), над исключением рисков несанкционированного повышения привилегий при автоматическом монтировании файловой системы (например, с USB) предстоит еще дополнительно поработать.
Добавлена поддержка переноса TCP-данных с помощью zero copy
API дает читать данные из TCP-канала без их копирования между ядром и пространством пользователя. Обычно ядро «не знает», какие пакеты будут загружены через сетевой интерфейс, поэтому оно не в состоянии заранее определить получателя пакета, принятого буфером. В случае с zero copy буферы будут «связываться» с памятью пользовательского пространства после поступления пакета и его ассоциации с открытым сокетом. По мнению разработчиков, весь процесс станет более простым и предсказуемым.
Подсистема AF_XDP ускорит работу в сети
Её задача — позволить коду, выполняемому в пользовательском пространстве, более эффективно управлять пакетами, то есть использовать как можно меньше аппаратных ресурсов.
Bpfilter – основа для создания файрволов ядра нового поколения
Bpfilter — новый механизм фильтрации пакетов на базе виртуальной машины BPF. Суть его работы в том, что он позволяет создавать BPF-программы, которые можно «привязать» к точкам на пути следования сетевого пакета и при необходимости выполнять фильтрацию.
BPF позволяет писать правила для файрволов на С, что может стать хорошим подспорьем для разработчиков. Сам код будет проверяться верификатором BPF, который добавит дополнительный «слой» безопасности для всей системы.
Продолжается работа над проблемой 2038
В посте про релиз 4.17 мы упоминали проблему Y2038 — предполагаемые сбои в ПО из-за представления времени по стандарту POSIX, которые произойдут 19 января упомянутого года. Для решения этой проблемы разработчики добавляют фиксы для ряда систем в каждом обновлении. Например, апдейт 4.15 включал фиксы добавления меток времени для модуля безопасности TOMOYO, а также новую функцию счётчика времени, которая позволяет его «перезаводить».
В релизе 4.18 разработчики продолжают заниматься интерфейсами COMPAT. Они консолидировали заголовки SySV UAPI для метода обмена сообщениями IPC и конвертировали SySV IPC в новый механизм COMPAT_32BIT_TIME.
/ фото Christopher Michel CC
Что пока не вошло в релиз
В версию 4.18 решили не включать файловые системы Bcachefs, Reiser4 и NOVA, а также поддержку для VPN-туннеля WireGuard. Эти вещи, по мнению разработчиков, еще не готовы стать частью ядра. Также «за бортом» остались подсистема BUS1 и драйвер OpenChrome VIA DRM.
Всё это мы, возможно, увидим в 4.19 или 5.0. Что касается 4.18, то, как уже было отмечено, она выйдет где-то в начале-середине августа.
P.S. Еще пара статей из нашего блога на Хабре:
- Релиз Linux kernel 4.17: что о нем нужно знать
- SUSE Linux вновь меняет владельца — почему?
- 30 материалов, практических руководств и советов по теме ПД, ИБ и IaaS
Автор: ИТ-ГРАДовец