Конец осени, первый снег и идеальный момент, чтобы заглянуть под капот системного софта. 22 ноября в Москве соберем системных инженеров, исследователей и разработчиков, чтобы обсудить, как устроены компиляторы, ядро Linux и драйверы. Митап разделен на два потока: С++ и C/Linux kernel. Регистрируйтесь и подключайтесь — офлайн или онлайн.
Что в программе
Направление С++
Корутинные оптимизации в компиляторах

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

Юлий Тарасов
старший инженер-программист в Синтакоре
Вы узнаете, как компилятор работает с корутинами и какие оптимизации применяет на практике. Разберем ключевые особенности корутин в стандарте C++ и покажем, как теоретические принципы стандарта реализуются в реальном компиляторе.
Модули C++20 в существующий проект: легкая прогулка или прыжок в бездну?

Сергей Чеботарёв
старший инженер-программист C++ в «Криптоните»
В поиске способов ускорить сборку обратили внимание на модули C++20 — как на более надежную альтернативу Precompiled Headers. В докладе — опыт внедрения, неожиданные сложности (вроде отказа от import std) и практические выводы: действительно ли модули оправдывают усилия.
LRU-кэш: от решения с собеседования до продакшен-уровня

Илья Шишков
R&D-разработчик в СУБД Pangolin в СберТехе
Задачу «Напишите LRU-кэш» знают многие — она часто встречается на собеседованиях. Но что, если такую реализацию запустить в продакшене? В докладе опишу реальный путь от простого решения до высокопроизводительного кэша, используемого в СУБД Pangolin.
Дискуссия. AI-ассистенты в разработке на C++: панацея или опасный костыль?

Илья Казаков
разработчик в команде систем хранения данных в YADRO
Остальных спикеров дискуссии мы объявим немного позже. Среди них — практикующие C++-разработчики, уже использующие AI-ассистентов в работе.
Когда действительно нужны алгоритмы: опыт оптимизации KD-Tree

Александр Голубев
руководитель службы разработки инфраструктуры назначения исполнителя в Яндекс Доставке
Алгоритмы актуальны не только в учебниках и собеседованиях. В реальных сервисах, например при поиске ближайших объектов, приходится серьезно оптимизировать структуры вроде KD-Tree. В докладе расскажу, как несколько продуманных инженерных решений дали заметный прирост производительности на практике.
Анатомия чекеров в clang-tidy

Анастасия Черникова
инженер-программист в Синтакоре
Вы узнаете, как устроены и создаются чекеры в статическом анализаторе clang-tidy. Я коротко расскажу об архитектуре инструмента и роли AST (Abstract Syntax Tree), а затем покажу, как на этой базе можно построить собственный инструмент для поиска ошибок в коде.
Строки, строки, строки и initializer_list

Антон Полухин
руководитель группы разработки общих компонент в Яндекс Go
Вернемся к основам — std::string_view и std::string. Разберемся, что такое нуль-терминированность строки и почему это важно. Поговорим о constinit: зачем он нужен и почему std::string с ним несовместим. Посмотрим, как создавать «бессмертные» constinit-строки и обойдем ограничения std::initializer_list.
Направление C/Linux kernel
RISC-V Supervisor Binary Interface: история и перспективы развития

Константин Невидин
старший инженер-программист в Синтакоре
RISC-V SBI (Supervisor Binary Interface) — интерфейс между ядром операционной системы и платформой, который обеспечивает переносимость супервизорного ПО между различными реализациями RISC-V. Он определяет единый слой абстракции для специфичной функциональности платформы или гипервизора.
В докладе я расскажу, как появился SBI, как он развивался и какую поддержку получил со стороны ОС. А еще — почему он постепенно утрачивает свое изначальное назначение.
Сборка ядра Linux, патчинг Debian и их автоматизация

Тимур Аммаев
инженер по разработке ПО в YADRO
Вносить и проверять изменения в исходном коде ядра можно значительно быстрее, если автоматизировать процесс сборки и тестирования. В докладе я покажу, как с помощью моего open source-репозитория можно развернуть полноценную среду за 10 минут — с поддержкой clangd и готовностью к работе на мощном железе.
Универсальный хост: как одна ОС запускает все

Илья Клементьев
инженер-программист в YADRO
Современные операционные системы все чаще стремятся стать универсальными платформами, способными запускать приложения из других экосистем. Но как это реализуется на практике? В докладе мы разберем проблему «зоопарка» приложений для разных ОС, обсудим традиционные подходы — двойную загрузку и виртуализацию — и посмотрим, к каким безопасным и эффективным решениям пришли современные системы.
Вечный IOCTL: вызовы, требующие помощи ядра

Никита Шубин
ведущий инженер по разработке ПО в YADRO
Разберем, почему для полноценной эмуляции устройств с переиспользованием существующих инструментов и библиотек необходим вызов IOCTL, как реализована такая эмуляция в CUSE и какие у нее есть ограничения. Также обсудим, почему для корректной работы с GPIO_V2_GET_LINE_IOCTL потребовалось создание внутриядерного драйвера GUSE.
Состав докладов на направление C/Linux Kernel — не финальный, обновления и новые темы еще впереди.
Где и когда встречаемся
System Level Meetup состоится 22 ноября в Москве по адресу 2-й Кожуховский пр., 29, корп. 6 (МЦК, станция «ЗИЛ»). Начало митапа — в 11:00, а гостей ждем с 10:00.
Участие в митапе бесплатное, но требуется регистрация. Подробности и расписание — на странице мероприятия.
Если вы хотите узнать больше о Linux и С++ прямо сейчас, читайте статьи на Хабре:
Кто быстрее: исследую производительность std::format
Отсекая лишнее: как сократить бинарный код программы на C++ и не потерять нужную функциональность
Вирт, Кормен и диалекты Basic: что изучить про алгоритмы и структуры данных разработчикам на С++
Ищем Арнольда Шварценеггера среди мужчин, женщин и детей с помощью нейросети на С++
Девять desktop- и embedded-систем для создания собственного Linux-дистрибутива: какой выбрать для вашего проекта