Осенью мы в YADRO собрали митап про ядро Linux. Можно придумать интересный каламбур, но вместо этого мы поблагодарим SpbLUG, питерское сообщество пользователей GNU/Linux, и расскажем, что было на митапе. На повестке дня — «точечные» обновления ядра Linux без перезагрузки, расширения RISC-V в Linux, а также создание собственного модуля Memory Extender. Далее в посте вы найдете записи и презентации докладов.

Livepatching: «точечные» обновления ядра Linux без перезагрузки

Евгений Шатохин
ведущий инженер-программист, YADRO
О чем доклад. Серверные системы на основе Linux могут работать нон-стоп годами. Но ошибки в ядре никто не отменял. Можно ли устранить их без перезагрузки? Поможет livepatching. Евгений рассказал, как организовать подготовку, тестирование и выпуск livepatch’ей, чтобы исправлять ошибки, приводящие к kernel oops, security-уязвимости и не только. Оказывается, это не так сложно, как может показаться с первого взгляда.
«Как я уже сказал, самому сделать лайвпатчи тоже можно. Это не очень просто, но и не настолько сложно, как Red Hat в своих рекламных проспектах рисует, что там нужны специально обученные люди, прямо гуру-гуру, которые гурее всех гурых. Не. Если вы хорошо знаете язык C и с кодом ядра разбирались, то я думаю, что с 90% лайвпатчей вы справитесь просто на ура».
Презентация →
Смотреть на Youtube →
Архитектура RISC-V и её расширения в Linux

Сергей Матюкевич
ведущий инженер-программист, YADRO
О чем доклад. Список расширений для RISC-V, поддерживаемых ядром Linux, все время растет. Сергей рассказал, какие в принципе бывают расширения RISC-V и какие из них поддерживаются ядром Linux. Отдельно объяснил, как ядро Linux может узнать о доступных расширениях RISC-V на активном процессоре и с какой целью делиться этой информацией с пользовательским ПО.
«Если вы хотите добавить поддержку расширения RISC-V в ядро, при этом само ядро это расширение использовать не будет (ну, чего-нибудь там с плавающей точкой), то все, что вам достаточно сделать, это добавить парсинг соответствующей точки в DTS и возможность узнать об этом расширении через hwprobe. Для более сложных расширений, системных тем более, конечно, это не так».
Презентация →
Смотреть на Youtube →
Расширяя границы доступной RAM, или Создаем свой модуль memory extender

Дмитрий Точанский
старший инженер-программист, YADRO
О чем доклад. Однажды перед Дмитрием встала задача подружить устройство с 32-битным адресным пространством и систему, в которой оперативная память расположена за пределами этого диапазона. На этом примере Дмитрий расскажет, как устроена подсистема DMA в ядре Linux, причем тут iommu и как реализовать свой драйвер iommu, не имея ни драйвера, ни iommu.
«Мы научились программно эмулировать iommu. Это может пригодиться, внезапно, не только тем, кто делает системы на кристалле с легаси или какими-то особенными устройствами. Если вам вдруг понадобится какой-нибудь битик добавить к адресу, который вам выдал DMA (всякое бывает), вы можете воспользоваться таким подходом и сделать программную эмуляцию».
Презентация →
Смотреть на Youtube →
Что еще почитать про Linux
Как отслеживать состояние сетевых интерфейсов на Linux
Как «обмануть» драйвер Linux в QEMU: создаем виртуального двойника Intel NTB Gen3
Запускаем Embedded Linux на Hard- и Soft-CPU Xilinx Zynq: проект программируемой логики
Запускаем Embedded Linux на Hard- и Soft-CPU Xilinx Zynq: сборка операционной системы
