Конец осени, первый снег и идеальный момент, чтобы заглянуть под капот системного софта. 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 и С++ прямо сейчас, читайте статьи на Хабре: