Linux kernel 5.14 — что изменится в новом ядре

Линус Торвальдс представит его в конце августа. Поговорим об изменениях — инженеры удалили устаревший IDE-драйвер, сделали шаги для принятия Rust в качестве официального инструмента разработки и обновили сетевые компоненты.

Unsplash / Dylan ShawUnsplash / Dylan Shaw

Сброс балласта

Из ядра уберут legacy-драйвер, обеспечивающий работу устройств с интерфейсом IDE/PATA — оптических дисководов, жестких дисков и «флоповодов». Кодовая база сократится на 41 тыс. строк. Команда давно планировала удалить код, связанный с работой IDE. Инженеры считают, что стандарт устарел и его поддержка не имеет смысла — тот же SATA предлагает более высокую скорость обмена данными и возможность «горячей замены» накопителей — поэтому еще два года назад они пометили соответствующий драйвер флагом deprecated и прекратили развитие.

Продолжить работу со старыми устройствами можно будет благодаря библиотеке libATA. Она остается частью ядра и реализует API драйверов ATA. По словам Кристофа Хеллвига, который занимается развитием kernel 5.14, libATA использует большинство дистрибутивов, и у остальных не должно возникнуть сложностей с переходом. Однако стоит отметить, что в библиотеке нет драйверов для семейства микропроцессоров m68k, хотя эту ситуацию планируют справить силами комьюнити.

Старые драйвера не единственное, что могут «вырезать» из ядра. Идут разговоры о прекращении поддержки процессоров, давно не получавших обновления. В список на удаление попали десятки чипов, в том числе ARM Footbridge и MIPS Cobalt.

Время «ржавчины»

Еще одно нововведение — признание Rust официальным инструментом разработки ядра (наравне с C). В kernel 5.14 появятся необходимые обновления. Инициативу продвигает Google — по словам его представителей, язык сократит число ошибок памяти, которые составляют 70% баг-фиксов в открытых проектах.

Также стоит отметить, что в Linux будет поддержка ARM и RISC-V благодаря компоненту rustc_codgen_gcc. Это — генератор кода GCC для компилятора rustc. Последний выполняет компиляцию Rust-кода, а GCC — backend-компиляцию, что дает возможность работать с новыми архитектурами. Участники сообщества уже предлагают внедрить аналогичную функциональность на уровне языка, однако такой подход может привести к конфликту лицензий. Дело в том, что Rust использует MIT License и Apache v2, а GCC — GPLv3. Хотя представитель The Rust Foundation в треде на GitHub сообщил, что лицензии совместимы, поэтому можно предположить, что разработчики языка предпримут шаги в этом направлении.

Сетевые улучшения

По словам Линуса Торвальдса, в kernel 5.14 упор был сделан на работу с драйверами, поэтому будет добавлена поддержка новых сетевых компонентов. Среди них — модем M.2 для мобильных компьютеров от Intel, адаптер MikroTik 10G/25G, а также модули Qualcomm QCN9074 и WCN6855.

Unsplash / Aleza van der WerffUnsplash / Aleza van der Werff

Еще разработчики модифицировали сетевой код ядра: расширили возможности генератора трафика pktgen — на 23% для одного потока и на 44% для двух потоков — и оптимизировали работу с Wi-Fi на частоте 6 ГГц. В прошлом году Федеральная комиссия по связи США открыла этот диапазон для беспроводных сетей.

Kernel 5.14 должен повысить производительность гостевых Linux-систем на гипервизоре Hyper-V и реализовать NVMe/TCP. По оценке сайта Phoronix, который освещает темы, связанные с развитием дистрибутивов Linux, последнее обновление может сократить нагрузку на CPU примерно на 15%. Также разработчики выпустили некаторе количество баг-фиксов. Среди них — исправление ошибок, связанных с общими папками в VirtualBox. В целом до релиза новой версии ядра остается месяц, за это время разработчики реализуют другие изменения, которые подготовят фундамент для дальнейшей оптимизации и развития ядра.

Материалы о работе провайдеров у нас на сайте:

У нас в блоге на Хабре:

© Habrahabr.ru