ingoweb

Линус Торвальдс объявил о выходе необыкновенно крупной версии ядра Linux 4.12, в которую было добавлено более 1 млн строк нового кода. Большую их часть занимает поддержка видеокарт AMD Radeon RX Vega, драйвер для Intel Atom IPU и другие драйвера.

Ядро Linux 4.12

Создатель ОС Linux Линус Торвальдс (Linus Torvalds) сообщил о выпуске новой версии ядра Linux под номером 4.12. По сравнению с 4.11, в новую версию был добавлен большой объем нового кода – более 1 млн строк, как подсчитал ресурс Phoronix. Размер патча достигает 89 МБ, он содержит порядка 13 тыс. правок от 1,5 тыс. разработчиков.

«Исторически 4.12 – это один из самых крупных релизов, и я думаю, что, в конечном счете, только 4.9 имеет больше добавлений. Но 4.9 был большим как минимум частично потому, что Грег объявил его ядром с длительным сроком поддержки. А 4.12 просто сам по себе большой», – пишет Торвальдс. Под «Грегом» должен пониматься один из ведущих разработчиков Linux Грег Кроа-Хартман (Greg Kroah-Hartman).

Причины «утяжеления»

Версия 4.12 получилась большой по нескольким причинам. Часть нового кода занимает поддержка новых видеокарт Radeon RX Vega от компании AMD. По словам Торвальдса, это заняло почти половину всего добавочного объема, в результате чего более 85% дописанного кода пришлось на драйвера. Еще одним «тяжелым» дополнением стал драйвер для Intel Atom IPU.

Кроме того, были добавлены обновления для чипов POWER9, ARM и Nvidia, а также менеджер порта USB Type-C. Вдобавок разработчики провели некоторую стабилизацию ядра в форме рандомизации размещения адресного пространства ядра (KASLR), которая по умолчанию используется для систем x86.

Другие изменения

Разработка версии 4.12 началась в середине мая 2017 г. В новом релизе появились планировщики ввода/вывода Budget Fair Queueing (BFQ) и Kyber. Их задача – обеспечить доступ к данным в несколько потоков для многоядерных систем. Таким образом было завершено построение многоуровневой системы очередей.

В структуру API LivePatch, которая позволяет накладывать патчи на работающее ядро, была добавлена гибридная модель обеспечения непротиворечивости. В этой модели мониторинга непротиворечивости анализ стека kPatch совмещен с механизмом оценки отдельных задач kGraft. Теперь в ядро без задержек можно вшивать более сложные, чем раньше, патчи, даже если они касаются изменения функций или семантики данных.

Помимо этого, для Device Mapper был создан модуль dm-integrity, отвечающий за эмуляцию блочного устройства. Также появился фреймворк Trusted Execution Environment (TEE), с помощью которого можно создавать защищенные окружения на чипах ARM TrustZone.