- PVSM.RU - https://www.pvsm.ru -

Вышел Linux 4.20 — что изменилось в новой версии ядра

Мы уже рассказывали о нововведениях, которые были сделаны в Linux kernel 4.18 [1]. Сегодня поговорим о том, что внедрили в 4.20, и проведем краткий обзор последующего релиза.

С большой долей вероятности он будет назван «5.0».

Вышел Linux 4.20 — что изменилось в новой версии ядра - 1 [2]
/ фото Gregory «Slobirdr» Smith [3] CC BY-SA [4]

Последняя версия ядра вышла в минувшем декабре. Обновление доступно для скачивания на официальном сайте [5]. Этот релиз стал [6] рекордсменом по числу добавленных строк кода — их количество выросло на 354 тыс. Больше добавляли только в версии Linux 4.13 (сентябрь 2017). Среди главных обновлений [7]: новые драйвера, усиление безопасности и изменения в работе с массивами.

Новые драйверы и новое железо

В Linux 4.20 добавили поддержку гибридных процессоров [8] AMD Picasso и Raven 2, системы на кристалле Snapdragon 835 [9] компании Qualcomm, а также китайского CPU Hygon Dhyana на базе архитектуры AMD Zen. Это расширит количество устройств, на которых получится запустить ОС Linux.

Также началась [10] работа над кодом для архитектуры AMD Zen 2, однако в последующих версиях его ждут серьезные правки. Изменения коснулись и чипов Intel Icelake — разработчики добавили поддержку контроллера DSI [11] и функциональность для управления режимами питания процессора.

Был добавлен код, отвечающий за работу с AMD Vega 20, хотя его продолжат совершенствовать как минимум до выхода графического процессора (его релиз намечен на первый квартал 2019 года [12]).

Изменения также коснулись драйвера VKMS (Virtual Kernel Mode-Setting), который добавили [13] еще в прошлой версии ядра. Он симулирует простейшее виртуальное устройство вывода и используется для организации работы X-сервера [14] или любой другой графической подсистемы на машинах без монитора. При этом он предоставляет возможность использовать имеющиеся GPU. В Linux kernel 4.20 VKMS получил [15] поддержку GEM и курсора.

Также новое ядро получило возможность [16] работать с трекпадами Apple Magic Trackpad 2 и контроллерами Xbox.

Изменения в работе с массивами

Из ядра убрали массивы переменной длины [17] (VLA), размер которых определяется на этапе выполнения, а не компиляции кода. Они замедляли работу и могли влиять на безопасность операционной системы. Линуса Торвальдса уже давно просили [18] избавиться от VLA, да и сам он активно критиковал [19] решение использовать массивы переменной длины. В kernel 4.20 большую часть из них наконец исключили.

Также была реализована структура данных XArray, которую пытались внедрить [20] еще в 4.17. Это абстрактный тип данных, который ведет себя как большой массив указателей. В отличие от динамических массивов [21], при использовании XArray не нужно что-то менять в блоке управления памятью для расширения структуры. Но пока на XArray переводят только страничный кэш ядра и memremap [22].

Обновления безопасности

Из Linux 4.20 убрали блочный шифр Speck [23], так как ранее в его реализации обнаружили [24] бэкдоры. Еще внедрили функцию STACKLEAK [25] (не попала в 4.19), которая защищает пользователей Linux от нескольких типов уязвимостей.

В частности, она сокращает объемы полезной для злоумышленников информации, поступающей из стека ядра в пользовательское пространство. Также STACKLEAK блокирует ряд атак на неинициализированные переменные и предлагает инструменты для слежения за «переполнением» стека ядра.

Еще в Linux 4.20 добавили [26] патч STIBP (Single Thread Indirect Branch Predictors), защищающий от атак типа Spectre. Они нацелены на аппаратную уязвимость современных процессоров, связанную с реализацией спекулятивных вычислений [27].

Что думает сообщество о Linux kernel 4.20

Резиденты Hacker News отмечают [28], что у Linux всегда были сложности с драйверами и количеством поддерживаемого железа. Обновления 4.20 помогли частично исправить эту проблему, расширив спектр доступных для работы архитектур. Однако ряд пользователей беспокоит тот факт, что с переходом на новое ядро ОС стала работать медленнее.

Причиной «регрессии» стал дополнительный код для защиты [29] от Spectre. Патч STIBP активируется по умолчанию и приводит [30] к «тормозам» на системах, использующих SMT/Hyper-Threading. В отдельных случаях производительность может снижаться на 50%. Линус Торвальдс уже поднимал вопрос [31] о запуске функции по желанию пользователя, а не автоматически. Но пока с этим ничего не сделали.

Вышел Linux 4.20 — что изменилось в новой версии ядра - 2
/ фото hackNY.org [32] CC BY-SA [4]

Чему «научат» 5.0

Если следовать подходу Торвальдса к нумерации релизов [33] по количеству пальцев у человека, версии 21 быть не должно [34]. По этой причине с большой долей вероятности 2019 станет годом рождения Linux kernel 5.0.

Среди улучшений грядущей версии будет [35] поддержка нового аппаратного обеспечения и дополнительных устройств. Вероятно, пользователям предоставят возможность подключить геймерскую клавиатуру Cougar 700K и работать с Chameleon96 [36] — FGPA компании Intel.

Продолжится работа над проблемой Y2038 [37] и другими вопросами безопасности, а также новыми драйверами для графических, гибридных и центральных процессоров. Еще в ядро должен будет прийти долгожданный VPN-туннель WireGuard [38].

Еще в следующем релизе появится [39] подсистема I3C, которую не успели добавить в 4.20. Она воплощает преимущества протоколов I2C и SPI [40] и подходит для работы с IoT.


Первый блог о корпоративном IaaS:

Наш IaaS-блог в Telegram:

Автор: ИТ-ГРАДовец

Источник [46]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/linux/304357

Ссылки в тексте:

[1] Linux kernel 4.18: https://habr.com/company/it-grad/blog/417155/

[2] Image: https://habr.com/company/it-grad/blog/435214/

[3] Gregory «Slobirdr» Smith: https://www.flickr.com/photos/slobirdr/32050680035/

[4] CC BY-SA: https://creativecommons.org/licenses/by-sa/2.0/

[5] официальном сайте: https://www.kernel.org/

[6] стал: https://www.phoronix.com/scan.php?page=news_item&px=2018-Biggie-Kernel

[7] Среди главных обновлений: https://www.phoronix.com/scan.php?page=news_item&px=Linux-4.20-Biggest-Features

[8] гибридных процессоров: https://ru.wikipedia.org/wiki/Accelerated_Processing_Unit

[9] Snapdragon 835: https://www.phoronix.com/scan.php?page=news_item&px=Linux-4.20-5.0-ARM

[10] началась: https://www.phoronix.com/scan.php?page=news_item&px=AMD-Zen-2-Linux-Temp-Driver

[11] контроллера DSI: https://www.intel.com/content/www/us/en/programmable/solutions/partners/partner-profile/northwest-logic/ip/dsi--mipi--controller-core.html

[12] первый квартал 2019 года: https://www.kitguru.net/tech-news/featured-tech-news/damien-cox/amds-7nm-vega-20-gpu-to-arrive-in-q1-2019/

[13] добавили: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1c7c5fd916a0ff66501467f1e8e79d3ff8eca112

[14] X-сервера: https://ru.wikipedia.org/wiki/X_Window_System

[15] получил: https://www.phoronix.com/scan.php?page=article&item=linux-420-features&num=1

[16] получило возможность: https://www.crn.com.au/news/linux-420-appears-under-the-tree-517296

[17] массивы переменной длины: https://en.wikipedia.org/wiki/Variable-length_array

[18] просили: https://lkml.org/lkml/2018/3/7/621

[19] активно критиковал: https://www.phoronix.com/scan.php?page=news_item&px=Linux-Kills-The-VLA

[20] пытались внедрить: https://www.phoronix.com/scan.php?page=news_item&px=XArrays-Possibly-For-Linux-4.17

[21] динамических массивов: https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2

[22] memremap: https://lwn.net/Articles/653585/

[23] Speck: https://ru.wikipedia.org/wiki/Speck

[24] обнаружили: https://threatpost.ru/nsa-encryption-got-declined-again/25855/

[25] STACKLEAK: https://www.phoronix.com/scan.php?page=news_item&px=STACKLEAK-Tries-For-Linux-4.20

[26] добавили: https://www.theregister.co.uk/2018/12/04/linux_kernel_spectre_mitigation/

[27] спекулятивных вычислений: https://nplus1.ru/news/2018/01/04/meltdown

[28] отмечают: https://news.ycombinator.com/item?id=18750836

[29] защиты: https://www.phoronix.com/scan.php?page=article&item=linux-420-bisect&num=2

[30] приводит: https://tproger.ru/news/linus-torvalds-hesitates-stibp/

[31] поднимал вопрос: https://lkml.org/lkml/2018/11/19/37

[32] hackNY.org: https://www.flickr.com/photos/hackny/8673947261/

[33] подходу Торвальдса к нумерации релизов: https://habr.com/company/it-grad/blog/413931/

[34] быть не должно: https://lkml.org/lkml/2018/6/3/142

[35] будет: https://www.phoronix.com/scan.php?page=news_item&px=Linux-4.21-Jump-Start-2019

[36] Chameleon96: https://www.phoronix.com/scan.php?page=news_item&px=Intel-FPGA-Chameleon96-DTS

[37] проблемой Y2038: https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0_2038_%D0%B3%D0%BE%D0%B4%D0%B0

[38] долгожданный VPN-туннель WireGuard: https://habr.com/company/it-grad/blog/419769/

[39] появится: https://www.phoronix.com/scan.php?page=news_item&px=I3C-Pull-Request-Linux-4.21

[40] протоколов I2C и SPI: https://www.byteparadigm.com/applications/introduction-to-i2c-and-spi-protocols/

[41] Производители оборудования и IaaS: гонка за облачным трендом: https://iaas-blog.it-grad.ru/tendencii/proizvoditeli-oborudovaniya-i-iaas-gonka-za-oblachnym-trendom/

[42] Бессерверные вычисления в облаке — тренд современности или необходимость?: https://iaas-blog.it-grad.ru/tendencii/besservernye-vychisleniya-v-oblake-trend-sovremennosti-ili-neobxodimost/

[43] Необычные ЦОДы — какими они бывают и где используются: https://t.me/iaasblog/184

[44] ИТ-компании прокладывают все новые подводные кабели — зачем им это?: https://t.me/iaasblog/181

[45] Дата-центры с собственными ДНК — как это?: https://t.me/iaasblog/180

[46] Источник: https://habr.com/post/435214/?utm_source=habrahabr&utm_medium=rss&utm_campaign=435214