Linux kernel 5.6 — что ждать в новой версии ядра

    Выход 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 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% медленнее оригинальных.


    Фото — Andrew Abbate — Unsplash

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

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

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

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

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

    Анализируем рекомендации по защите персональных данных и ИБ — на что стоит обратить внимание
    Впервые фотон телепортировали с одного чипа на другой
    Как IT-сектор помогает миру выбрасывать меньше еды
    1cloud.ru
    IaaS, VPS, VDS, Частное и публичное облако, SSL

    Comments 13

      0
      OpenVPN пока заменить не сможет.
      Настроить сейчас так, что бы получить доступ ко внутренней сети организации не пойми как, за пол дня так и не решил вопрос, причем развернутый с помощью pivpn OpenVPN сделал это без конфигурирования: скрипт установки, добавил пользователя и все.
        0
        А он и не собирается заменять. Каждой задаче свой инструмент. У OpenVPN есть свои преимущества и недостатки.
          +1
          для простых задач — vpn для доступа к заблокированным ресурсам, например. Или просто проброс в локалку WireGuard шикарен. Простой и быстрый. Я не профессионал и по мануалам openvpn (первый раз) устанавливал день с кучей проблем, уже руки опускались — добил просто на характере...(потом конечно быстрее)
          С wireguard разобрался за 30 мин.
          P.S. И скорость… на топовой Raspberry Pi 4 с 4Gb — openvpn давал до 10 MB/s — на WireGuard — до 40 MB/s
          0
          pivpn уже поддерживает WireGuard. За 1 минуту делается всё.
          0
          По его словам, в некоторых случаях патч может повысить производительность файловой системы на 140%.
          То есть аж в 2,4 раза, что ли?
            0

            Кажется в 1.4

              +1
              Но ведь «на 140%», значит надо добавлять 140% к изначальным 100%.
                0

                Та таки в 2.4.

                • UFO just landed and posted this here
                +2
                Вот кто бы вразумил Линуса, что меняя так часто средние и мажорные версии он очень сильно рискует обречь линуксоидов на работу только на ограниченном круге железа. Потому что производители просто забьют на то, чтобы модули ядра к своим железкам так часто обновлять!
                Я, хоть и не произвожу железо, но работаю с парой железяк, для которых доступны лишь модули каких-то допотопных версий (2-с-чем-то и 3-с-чем-то). Ядро обновляю раз в 2-3 года. И каждый раз начинается: эта железка не работает, та не работает… Сиди, трать n-е количество времени на то, чтобы изменить старый модуль на работу с новым ядром! В ноутбуке вообще косяк возник: если я работаю с wifi, нельзя крышку закрывать (т.к. модуль от производителя рассчитан был на 4.х, а мне пришлось допиливать его до 5.0.4; понятно, что я — далеко не kernel developer, и где-то накосячил, в результате при выходе изо сна wifi остается спящим)…
                В общем, ругань сплошная на столь частую смену API!
                  +1

                  Я думаю делается это для того, чтобы делать закрытые драйвера вне дерева ядра было напряжно. Производители которые не могут сделать открытые драйвера и добавить в ядро будут общаться с гневными пользователями и в идеале лишатся клиентов.

                    0
                    Я думаю делается это для того

                    Звучит так как будто это делают специально. Прямо выделенный разработчик работает над задачей сломать драйверы к релизу X.
                    ИМХО просто драйверы составляют огромную часть ядра Linux, и все время приходят новые драйверы, изменения в существующих и т.д., чтобы не рухнуть в пучину костылей, что с такой огромной кодовой базой будет прямой путь на дно, нужно время от времени рефакторить и вписывать в общую архитектуру новые фичи новых устройств. Что неминуемо ведет к "слому" имеющегося ядреного API.

                      0
                      +

                  Only users with full accounts can post comments. Log in, please.