Выход Linux kernel 5.6 намечен на конец марта. В нашем сегодняшнем материале обсуждаем грядущие изменения — новую файловую систему, протокол WireGuard и обновления драйверов.


Фото — lucas huffman — Unsplash

Долгожданный VPN-протокол


Дэвид Миллер (David Miller), ответственный за сетевую подсистему Linux, решил включить в состав ядра WireGuard. Это — VPN-туннель, разработанный в ИБ-компании Edge Security. Идею обсуждали еще два года назад — тогда её поддержал сам Линус Торвальдс — однако реализацию отложили. Проект был сильно привязан к криптофункциям Edge Security. Но полгода назад авторы нового протокола пошли на компромисс и переключились на поддерживаемые ядром Crypto API.

Есть мнение, что в перспективе WireGuard сможет заменить OpenVPN. Согласно тестам, пропускная способность нового протокола в четыре раза выше, чем у OpenVPN: 1011 Мбит/с против 258 Мбит/с. Но здесь стоит отметить, что переход на штатный Crypto API может ухудшить показатели.

Еще одна особенность WireGuard — он не разрывает соединение, даже если пользователь получил новый IP-адрес, и самостоятельно решает вопросы маршрутизации. Для этих целей каждому сетевому интерфейсу привязывают закрытый ключ. Он генерируется с помощью протокола Диффи — Хеллмана. Само шифрование построено на ChaCha20 и алгоритме Poly1305. Они считаются улучшенными аналогами AES-256-CTR и HMAC.

Новая файловая система


Этой системой стала Zonefs, представленная инженерами Western Digital. Она предназначена для работы с зонированными устройствами хранения (zoned storage). Это — блочные накопители, адресное пространство которых разбито на зоны (например, NVMe SSD). Файловая система позволяет обрабатывать каждую зону как файл — то есть использовать специальные API вместо ioctl для обращения к СХД. Аналогичный подход задействован в базах данных RocksDB и LevelDB. Он дает возможность сократить издержки на перенос кода, изначально заточенного под работу с файлами.

В Linux уже есть функция для взаимодействия с блочными устройствами. В ядре версии 4.13 появился модуль dm-zoned. Он представляет зонированный накопитель как обычное блочное устройство, а Zonefs станет альтернативой.


Фото — Suzan Kirsic — Unsplash

Помимо внедрения новой файловой системы, разработчики Linux kernel внесли изменения в существующие. Были добавлены механизмы сжатия LZO/LZ4 для F2FS — их поддержка пока останется экспериментальной. Её придется включать вручную во время монтирования раздела (опция compress_algorithm). Также апгрейд получит EXT4 — он связан с операциями прямого ввода/вывода. Пакет обновлений представил инженер из IBM Ритеш Харжан (Ritesh Harjan). По его словам, в некоторых случаях патч может повысить производительность файловой системы на 140%.

Обновления драйверов


В ядре появится новый драйвер cpuidle_cooling. Его задача — охлаждать CPU/SoC, встраивая холостые циклы во время работы. В каком-то смысле он похож на драйвер PowerClamp для процессоров Intel, однако не привязан к определенной архитектуре. Систему выпустили специалисты из Linaro, которые занимаются оптимизацией ПО с открытом исходным кодом для платформ ARM.

Также будет добавлена поддержка видеокарт серии GeForce 20 (TU10x). Соответствующий драйвер разработал Бен Скеггс (Ben Skeggs) из проекта Nouveau. К сожалению, GeForce 16 (TU11x) пока останутся «за бортом». Nvidia не предоставили образы микропрограммного обеспечения, необходимые для инициализации карты. Также у новых видеокарт под Linux могут возникнуть проблемы с производительностью из-за отсутствия реклокинга — автоматического управления частотой. В прошлом было установлено, что драйверы Nouveau могут функционировать на 20–30% медленнее оригинальных.


Фото — Andrew Abbate — Unsplash

Еще новое ядро будет поддерживать USB4. Соответствующие изменения предложили инженеры из Intel. Они модифицировали существующую кодовую базу, связанную с Thunderbolt — это примерно две тысячи строк.

Разумеется, это не все обновления, которые придут в ядро, — например, можно ждать поддержку дополнительной периферии и сетевых устройств. Также kernel 5.6 станет первым 32-битным ядром, где будет решена проблема 2038 года. В конце января инженеры внесли финальные изменения в nfsd, xfs, alsa и v4l2. Они надеются, что за восемнадцать оставшихся лет пользователи и разработчики дистрибутивов успеют перейти на kernel 5.6 (или его последующие версии).

Материалы по теме из корпоративного блога 1cloud.ru:

Большая часть суперкомпьютеров работает под управлением Linux — обсуждаем ситуацию
Как обезопасить Linux-систему: 10 советов

О чем мы пишем на Хабре:

Анализируем рекомендации по защите персональных данных и ИБ — на что стоит обратить внимание
Впервые фотон телепортировали с одного чипа на другой
Как IT-сектор помогает миру выбрасывать меньше еды