Системный разработчик (Drivers, команда разработки KasperskyOS)
Требования
Местоположение и тип занятости
Компания
Описание вакансии
Условия работы
О проекте
KasperskyOS – защищенная микроядерная операционная система. Это не очередной дистрибутив Linux, а собственная разработка, способная успешно конкурировать на международных рынках. Заложенный в KasperskyOS принцип кибериммунности позволяет разрабатывать безопасные решения из потенциально небезопасных компонентов.
Об отделе
Разработкой KasperskyOS занимается отдел Secure Platform Development (SPD), состоящий из нескольких групп, которые отвечают за микроядро ОС, драйверы, системные компоненты, подсистему безопасности, средства виртуализации, а также обеспечивают непрерывный контроль качества разработки. Сейчас у команды много новых, интересных и сложных задач, так что она продолжает расти.
О группе
Группа разработки гипервизора реализует функции виртуализации, позволяющие запускать гостевые ОС под управлением KasperskyOS, используя все ее преимущества. Также команда занимается поддержкой TrustZone в микроядре KasperskyOS.
Задачи
- Доработка ядра KasperskyOS для поддержки ARM TrustZone на архитектуре ARMv8;
- Разработка безопасного гипервизора для архитектур x86 и ARMv8;
- Разработка front-end и back-end эмулируемых устройств;
- Проектирование и имплементация архитектурных паттернов безопасности с использованием гипервизора и KasperskyOS;
- Оптимизация гипервизора в интересах конкретных гостевых ОС (Linux, QNX, Windows);
- Проектирование и имплементация механизмов безопасности гипервизора.
Что требуется от кандидата
- Отличное знание С;
- Понимание принципов виртуализации и архитектуры современных операционных систем;
- Понимание принципов работы различных аппаратных средств (PCI, USB, контроллеры прерываний и т.д.);
- Знание архитектур ARMv8 и x86;
- Опыт разработки на ассемблере для архитектур ARMv8 и x86;
- Знание классических алгоритмов и структур данных;
- Опыт разработки в Linux-окружении (POSIX shell, binutils, gcc, make, git);
- Практика тестирования и документирования написанного кода;
- Умение писать грамотные и понятные технические документы;
- Владение английским языком на уровне чтения технической документации.
Желательно
- Знакомство с механизмами аппаратной виртуализации x86 (VT-x, VT-d, AMD-V);
- Знакомство с механизмами аппаратной виртуализации архитектуры ARMv8;
- Знакомство с внутренним устройством открытых виртуальных машин (QEMU, KVM, VirtualBox, Xen, bhyve);
- Знакомство с архитектурой микроядерных ОС;
- Знание спецификации ACPI;
- Опыт работы с BIOS и UEFI;
- Опыт разработки драйверов;
- Знания в области информационной безопасности;
- Знание языка программирования C++.