Выход Linux kernel 5.6 намечен на конец марта. В нашем сегодняшнем материале обсуждаем грядущие изменения — новую файловую систему, протокол WireGuard и обновления драйверов.
![](https://habrastorage.org/r/w780q1/webt/wh/sd/ss/whsdsschiysoexfxrvjihltaskq.jpeg)
Фото — lucas huffman — Unsplash
Дэвид Миллер (David Miller), ответственный за сетевую подсистему Linux, решил включить в состав ядра WireGuard. Это — VPN-туннель, разработанный в ИБ-компании Edge Security. Идею обсуждали еще два года назад — тогда её поддержал сам Линус Торвальдс — однако реализацию отложили. Проект был сильно привязан к криптофункциям Edge Security. Но полгода назад авторы нового протокола пошли на компромисс и переключились на поддерживаемые ядром 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 станет альтернативой.
![](https://habrastorage.org/r/w780q1/webt/1y/d3/gi/1yd3gi7sjxbq6uxcw-yv41t9p1q.jpeg)
Фото — Suzan Kiršić — 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% медленнее оригинальных.
![](https://habrastorage.org/r/w780q1/webt/rq/ur/r8/rqurr8ao5ekfe9oji3zyqste4xs.jpeg)
Фото — Andrew Abbate — Unsplash
Еще новое ядро будет поддерживать USB4. Соответствующие изменения предложили инженеры из Intel. Они модифицировали существующую кодовую базу, связанную с Thunderbolt — это примерно две тысячи строк.
Разумеется, это не все обновления, которые придут в ядро, — например, можно ждать поддержку дополнительной периферии и сетевых устройств. Также kernel 5.6 станет первым 32-битным ядром, где будет решена проблема 2038 года. В конце января инженеры внесли финальные изменения в nfsd, xfs, alsa и v4l2. Они надеются, что за восемнадцать оставшихся лет пользователи и разработчики дистрибутивов успеют перейти на kernel 5.6 (или его последующие версии).
![](https://habrastorage.org/webt/wh/sd/ss/whsdsschiysoexfxrvjihltaskq.jpeg)
Фото — 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 станет альтернативой.
![](https://habrastorage.org/webt/1y/d3/gi/1yd3gi7sjxbq6uxcw-yv41t9p1q.jpeg)
Фото — Suzan Kiršić — 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% медленнее оригинальных.
![](https://habrastorage.org/webt/rq/ur/r8/rqurr8ao5ekfe9oji3zyqste4xs.jpeg)
Фото — Andrew Abbate — Unsplash
Еще новое ядро будет поддерживать USB4. Соответствующие изменения предложили инженеры из Intel. Они модифицировали существующую кодовую базу, связанную с Thunderbolt — это примерно две тысячи строк.
Разумеется, это не все обновления, которые придут в ядро, — например, можно ждать поддержку дополнительной периферии и сетевых устройств. Также kernel 5.6 станет первым 32-битным ядром, где будет решена проблема 2038 года. В конце января инженеры внесли финальные изменения в nfsd, xfs, alsa и v4l2. Они надеются, что за восемнадцать оставшихся лет пользователи и разработчики дистрибутивов успеют перейти на kernel 5.6 (или его последующие версии).
Материалы по теме из корпоративного блога 1cloud.ru:
Большая часть суперкомпьютеров работает под управлением Linux — обсуждаем ситуацию
Как обезопасить Linux-систему: 10 советов
О чем мы пишем на Хабре:
Анализируем рекомендации по защите персональных данных и ИБ — на что стоит обратить внимание
Впервые фотон телепортировали с одного чипа на другой
Как IT-сектор помогает миру выбрасывать меньше еды