О компании и команде
О проекте:
KasperskyOS – защищенная микроядерная операционная система. Это не очередной дистрибутив Linux, а собственная разработка, способная успешно конкурировать на международных рынках. Заложенный в KasperskyOS принцип кибериммунности позволяет разрабатывать безопасные решения из потенциально небезопасных компонентов.
Об отделе:
Разработкой KasperskyOS занимается отдел Secure Platform Development (SPD), состоящий из нескольких групп, которые отвечают за микроядро ОС, драйверы, системные компоненты, подсистему безопасности, средства виртуализации, а также обеспечивают непрерывный контроль качества разработки. Сейчас у команды много новых, интересных и сложных задач, так что она продолжает расти.
О группе:
Группа отвечает за реализацию программной и аппаратной поддержки 2D и 3D графики (DRM/KMS, Mesa, OpenGL, OpenGL ES, Vulkan, WebGL), протоколы/сервера композитинга (Wayland), а также интеграцию графического стека в фреймворки для создания UI (Qt, Flutter)
Ожидания от кандидата
- Отличное знание языка программирования С;
- Знание базовых принципов построения современных операционных систем (особенно в части графического стека и принципов композитинга);
- Опыт многопоточного программирования;
- Знание классических алгоритмов и структур данных;
- CMake, Make, Git;
Желательно:
- Хорошее знание языка программирования C++;
- Опыт работы с Linux-based ОС, командной строкой (bash/sh);
- Опыт работы с MESA или иными имплементациями OpenGL/OpenGL ES/Vulkan;
- Опыт работы с композиторами и протоколами композитинга (Wayland, Weston, Flutter, Cage и т.п.);
- Опыт работы с исходными кодами Qt 5/6 (QtWayland, QtDeclarative, QtMultimedia)
- Опыт работы с Buildroot;
- Опыт кроссплатформенной разработки.
Условия работы
Задачи:
- Реализация инфраструктуры DRM/KMS;
- Реализация поддержки OpenGL/OpenGL ES/Vulkan в KasperskyOS с использованием MESA;
- Реализация поддержки WebGL для Chromium;
- Портирование open source и разработка собственных компонентов: инфраструктуры и протоколов оконного композитинга (Wayland based, Flutter, собственный композитор), интерфейсов интеграции с Qt/Flutter;
- Поддержка существующих компонентов и системы сборки;
- Прототипирование прикладных решений, написание тестов, в том числе для оценки производительности;