System Level MeetupПод капотом C/C++ и Linux kernel

info
date
24/05/2025
time
11:00 GMT+3
format
OnlineOffline
C++

О МИТАПЕ

24 мая мы соберемся в Санкт-Петербурге, чтобы поглубже изучить C/C++ и ядро Linux. Наладим сериализацию и десериализацию JSON в проекте на C++, реализуем поддержку Sdtrig в RISC-V Linux и OpenSBI, разберем подход kernel bypass и user space I/O в ядре Linux, вплетем C++ в строго C-шную кодовую базу — и на этом список интересного не заканчивается.

Офлайн-участников также ждет демозона с «железом» YADRO для ЦОД и телеком-операторов, технические интерактивы и подарки от компании.

программа

Направление:

10:0011:00

Регистрация участников

11:0011:10
Зал 1:C++

Приветственное слово

Вы узнаете больше о компании-организаторе, программно-аппаратных комплексах YADRO, их важности для цифровизации экономики, а также о роли и задачах разработчиков на С++ в этих процессах.

Илья Казаков
Илья Казаков
YADRO
Зал 2:C/Linux Kernel

Приветственное слово

Поделимся планами на дальнейшие митапы Linux Kernel. Также расскажем о компании YADRO, организующей их, о программно-аппаратных комплексах YADRO, связанных ролях и задачах разработчиков.

Станислав Богатырев
Станислав Богатырев
YADRO
11:1012:00
Зал 1:C++

Девиртуализация в C++, в компиляторах и в вашей программе

Мы поговорим про виртуальные функции, рассмотрим, какие проблемы они вызывают и как эти проблемы решаются компиляторами. Обсудим спекулятивную девиртуализацию, странные случаи ее несрабатывания, а также дадим рекомендации для практикующих разработчиков.

Константин Владимиров
Константин Владимиров
Syntacore
Андреев Илья
Андреев Илья
Syntacore
Зал 2:C/Linux Kernel

Реализация поддержки Sdtrig в RISC-V Linux и OpenSBI

Мой доклад — о том, как мы добавляли поддержку Hardware Breakpoint в OpenSBI и ядре Linux. Я расскажу об устройстве подсистемы Hardware Breakpoint (расширения Sdtrig) и сравню реализацию ее интерфейса на Linux с реализациями в x86 и arm64. Опишу механизмы, на которых она основана здесь и в имплементациях на других архитектурах — Perf Event Framework, Generic PMU, ptrace syscall.

Далее обсудим плюсы и минусы реализации на RISC-V в сравнении с другими архитектурами, проблемы из-за излишней гибкости спецификаций RISC-V, а также способы их обойти — как эффективные, так и костыльные.

Илья Мамай
Илья Мамай
Syntacore
12:0012:10

Перерыв

12:1013:00
Зал 1:C++

Кодек для json'ов с фиксированной схемой

Мы рассмотрим построение системы сериализации/десериализации json для проекта на C++. Разберем с примерами архитектуру нашего json-кодека: структуры данных, encoder/decoder, аллокатор. Справимся с громоздкими описаниями структур с помощью автогенерации. Сравним кодек с существующими решениями (simdjson, rapidjson, yyjson, nlohmann). Напоследок раскроем текущие ограничения инструмента и то, что еще предстоит в нем реализовать.

Никита Пешаков
Никита Пешаков
YADRO
Зал 2:C/Linux Kernel

Linux Kernel, DPDK и kernel bypass

Мы рассмотрим подход kernel bypass и user space I/O в ядре Linux, уделяя внимание как общим принципам работы, так и реализации на примере DPDK. Обсудим основные компоненты DPDK, включая аллокацию памяти, взаимодействие с драйверами и процесс обработки пакетов. Я покажу, как технологии kernel bypass интегрируются с инфраструктурой Linux и работают на практике — в том числе на примере генератора-анализатора трафика LR100Gen компании ИнфоТеКС.

По итогам доклада вы получите целостное представление о функционировании kernel bypass в рамках Linux Kernel и его применении в современных сетевых решениях.

Степан Репин
Степан Репин
ведущий программист, ИнфоТеКС
13:0014:00

Обед: еда, нетворкинг, а также стенды и квесты от YADRO

14:0015:00
Зал 1:C++

Как писать меньше на C++?

C++ часто кажется незаменимым инструментом. Но что, если на других языках можно добиться большего с меньшим объемом кода?

На дискуссии мы обсудим, когда стоит отказаться от C++ в пользу более гибких решений. Например, использовать Python вместо C++ для написания REST-интерфейса, оставив «плюсы» только для ресурсоемких частей. Ведь современные языки предоставляют понятные интерфейсы для интеграции с C/C++, и это открывает новые возможности для организации кода.

Зачем писать все на C++, если можно использовать более простые и удобные инструменты?

Константин Владимиров
Константин Владимиров
Syntacore
Илья Казаков
Илья Казаков
YADRO
Алексей Щербаков
Алексей Щербаков
МойОфис
Зал 2:C/Linux Kernel

Эволюция ядра Linux

Мы поговорим о том, как поменялось ядро Linux за последние годы, какие технологии появляются в разработке сегодня и с какими вызовами сталкиваются разработчики на системном уровне. Обсудим ключевые фичи этих технологий и то, как подходы к производительности, безопасности и архитектуре трансформируются под новые нагрузки.

Владимир Исаев
Владимир Исаев
Syntacore
Владислав Шиповский
Владислав Шиповский
Сбер
Ярослав Бесараб
Ярослав Бесараб
YADRO
15:0015:15

Перерыв

15:1515:50
Зал 2:C/Linux Kernel

DMA из Userspace на Zynq US+

Этот доклад посвящен одному из вариантов сбора AXI-Stream данных для обработки на CPU. Мы рассмотрим блок AXI DMA, его возможности и требования. Примерим роль аппаратного дизайнера, поуправляем когерентностью кэшей (hw/sw hp/hpc/lpd порты в цинке) и увидим, что на самом деле требуется от драйвера ядра.

Данил Ефимов
Данил Ефимов
YADRO
15:5016:40
Зал 1:C++

Шаблонное мета-программирование в современном C++ для задач космической баллистики

Рассмотрим, как надежность mission-critical IT-решений в российской аэрокосмической индустрии растет благодаря программированию с развитыми системами типов, а именно на C++ стандартов 11–23.

Для этой цели реализованы библиотеки C++ с открытым исходным кодом. SpaceBallistics включает type-safe-модели динамики ракет-носителей и космических аппаратов, методы дизайна и оптимизации траекторий. DimTypes реализует систему размерных типов на основе compile-time Z_p-арифметики.

Леонид Меркин
Леонид Меркин
доктор математических наук
16:4017:10

Кофе-пауза ☕

17:1018:00
Зал 1:C++

C++ внутри PostgreSQL: удобство против традиций

Работая над СУБД Pangolin, основанной на PostgreSQL, я попробовал аккуратно вплести C++ в строго C-шную кодовую базу. Цель была прагматичная: упростить управление ресурсами и сделать код понятнее. В результате я смог достичь тонкого баланса между философией PostgreSQL и выразительностью C++.

В докладе расскажу, где C++ действительно помог, как мы решали вопросы совместимости и как не наломать дров в кодовой базе с миллионами строк на C. Покажу конкретные участки кода «до» и «после». Под конец обсудим «грабли» и удачные решения, которые также применимы в других проектах.

Илья Шишков
Илья Шишков
Сбертех
Зал 2:C/Linux Kernel

Использование Rust для написания драйверов устройств

Подробно поговорим о поддержке Rust в ядре Linux и о том, как с помощью фреймворка VFIO можно писать драйверы PCI-устройств в пространстве пользователя. Обсудим, насколько Rust вообще готов для такой задачи.

Владислав Шиповский
Владислав Шиповский
Сбер
18:0019:00

Закрытие: еда, нетворкинг, а также стенды и квесты от YADRO

Спикеры

Программный комитет

Фото Илья Казаков

Илья Казаков

разработчик в команде систем хранения данных, YADRO

Ведущий потока С++. Начал писать на С еще в школе. Затем стал схемотехником: работал со звуком, делал источники питания. В 2020 году попал в настоящее IT и начал писать на С++. Работает в команде, которая занимается системами хранения данных Datapath. Спикер и соведущий конференции C++ Russia.

Ведущий потока С++. Начал писать на С еще в школе. Затем стал схемотехником: работал со звуком, делал источники питания. В 2020 году попал в настоящее IT и начал писать на С++. Работает в команде, которая занимается системами хранения данных Datapath. Спикер и соведущий конференции C++ Russia.
Фото Илья Мамай

Илья Мамай

инженер-программист, Syntacore

Ранее исследовал out-of-order-микроархитектуры, искал в коде узкие места реализаций микроархитектур. Сейчас работает с обратной стороной «железа» — загрузчиками и ОС, расширяет их функционал и поддержку новых расширений RISC-V. Иногда возвращает к жизни советские процессоры.

Ранее исследовал out-of-order-микроархитектуры, искал в коде узкие места реализаций микроархитектур. Сейчас работает с обратной стороной «железа» — загрузчиками и ОС, расширяет их функционал и поддержку новых расширений RISC-V. Иногда возвращает к жизни советские процессоры.
Фото Илья Шишков

Илья Шишков

R&D-разработчик в СУБД Pangolin, Сбертех

Ex-Яндекс, создатель курсов «Пояса по С++». Программирует на C++ с 2006 года.

Фото Никита Пешаков

Никита Пешаков

инженер-программист YADRO

Познает код через починку багов. Вырос на телекоме. Стажером писал 4G Packet Core. Сейчас в роли техлида разрабатывает 5G Packet Core. К приходу 6G надеется дотянуться до архитектора.

Познает код через починку багов. Вырос на телекоме. Стажером писал 4G Packet Core. Сейчас в роли техлида разрабатывает 5G Packet Core. К приходу 6G надеется дотянуться до архитектора.
Фото Степан Репин

Степан Репин

ведущий программист ИнфоТеКС

Последние пять лет работает над генератором-анализатором трафика на базе DPDK. Интересуется оптимизацией программ, сетевыми технологиями и операционными системами.

Последние пять лет работает над генератором-анализатором трафика на базе DPDK. Интересуется оптимизацией программ, сетевыми технологиями и операционными системами.
Фото Константин Владимиров

Константин Владимиров

руководитель отдела компиляторов и инструментов разработки Syntacore

Регулярный докладчик крупных конференций. Ведущий YouTube- и Telegram-канала с лекциями о С++, автор книги «Оптимизирующие компиляторы».

Регулярный докладчик крупных конференций. Ведущий YouTube- и Telegram-канала с лекциями о С++, автор книги «Оптимизирующие компиляторы».
Фото Илья Андреев

Илья Андреев

старший инженер в отделе компиляторов и средств разработки Syntacore

Специалист с опытом более пяти лет в разработке компиляторов, автор улучшенной девиртуализации в Syntacore Development Toolkit.

Специалист с опытом более пяти лет в разработке компиляторов, автор улучшенной девиртуализации в Syntacore Development Toolkit.
Фото Владимир Исаев

Владимир Исаев

ведущий инженер-программист Syntacore

Занимается системным софтом для сетевых устройств и процессоров.

Фото Данил Ефимов

Данил Ефимов

инженер-программист YADRO

Последние четыре года работает в телекоме и сейчас активно занимается алгоритмом DPD (digital predistortion). Участвовал в разработке модема для миссии «Рассвет-2».

Последние четыре года работает в телекоме и сейчас активно занимается алгоритмом DPD (digital predistortion). Участвовал в разработке модема для миссии «Рассвет-2».
Фото Станислав Богатырев

Станислав Богатырев

эксперт по разработке ПО YADRO

Ведущий секции Linux Kernel. Координатор и активный участник сообщества SPbLUG с опытом в индустрии более двадцати лет.

Ведущий секции Linux Kernel. Координатор и активный участник сообщества SPbLUG с опытом в индустрии более двадцати лет.
Фото Леонид Меркин

Леонид Меркин

прикладной математик, Computer Scientist и C++ инженер. Doctor of Mathematics (TU Delft, The Netherlands, 1997)

В 2020–2022 гг. был научным руководителем проекта InnoChain по созданию первой в мире формально верифицированной системы распределенного реестра. Сегодня является профессором Департамента информатики НИУ ВШЭ в Санкт-Петербурге. Также преподает в МФТИ (Физтех-школа прикладной математики и информатики) и работает в финансовой индустрии. Основные области компетенций: финансовая математика, стохастический анализ, численные методы, теория типов, формальная верификация ПО, высоконадежные системы реального времени, платформы и стратегии высокочастотной алгоритмической торговли.

В 2020–2022 гг. был научным руководителем проекта InnoChain по созданию первой в мире формально верифицированной системы распределенного реестра. Сегодня является профессором Департамента информатики НИУ ВШЭ в Санкт-Петербурге. Также преподает в МФТИ (Физтех-школа прикладной математики и информатики) и работает в финансовой индустрии. Основные области компетенций: финансовая математика, стохастический анализ, численные методы, теория типов, формальная верификация ПО, высоконадежные системы реального времени, платформы и стратегии высокочастотной алгоритмической торговли.
Фото Алексей Щербаков

Алексей Щербаков

старший разработчик и тимлид МойОфис

Более семи лет опыта в разработке настольных приложений на C++ с использованием Qt. Руководит командой разработки библиотеки для построения диаграмм на TypeScript с использованием D3.js и ее интеграцией в C++/Qt-приложение.

Более семи лет опыта в разработке настольных приложений на C++ с использованием Qt. Руководит командой разработки библиотеки для построения диаграмм на TypeScript с использованием D3.js и ее интеграцией в C++/Qt-приложение.
Фото Ярослав Бесараб

Ярослав Бесараб

руководитель отдела в TATLIN.FLEX, YADRO

Долгое время работал с операционными системами в режиме SMM. Успел написать несколько UEFI-модулей. Также писал приложения для работы с TEE. В настоящее время руководит командой разработки модулей ядра Linux. Полностью погружен в работу над улучшением Data Plane в СХД.

Долгое время работал с операционными системами в режиме SMM. Успел написать несколько UEFI-модулей. Также писал приложения для работы с TEE. В настоящее время руководит командой разработки модулей ядра Linux. Полностью погружен в работу над улучшением Data Plane в СХД.
Фото Владислав Шиповский

Владислав Шиповский

тимлид команды системного ПО Сбер

Закончил МГТУ им. Баумана по специальности «Плазменные энергетические установки». В системном программировании 10 лет, занимался в основном разработкой драйверов для различных устройств. Энтузиаст использования Rust для системного программирования. Области интересов: высокопроизводительный I/O, техники kernel-bypass.

Закончил МГТУ им. Баумана по специальности «Плазменные энергетические установки». В системном программировании 10 лет, занимался в основном разработкой драйверов для различных устройств. Энтузиаст использования Rust для системного программирования. Области интересов: высокопроизводительный I/O, техники kernel-bypass.

запишись на митап

Выберите формат:

Доклады какого трека тебе интересны в первую очередь*

FAQ

инфопартнеры