Москва
Ленинградское шоссе 39Ас1
Ленинградское шоссе 39Ас1
О проекте:
KasperskyOS – защищенная микроядерная операционная система. Это не очередной дистрибутив Linux, а собственная разработка, способная успешно конкурировать на международных рынках. Заложенный в KasperskyOS принцип кибериммунности позволяет разрабатывать безопасные решения из потенциально небезопасных компонентов.
Об отделе:
Разработкой KasperskyOS занимается отдел Secure Platform Development (SPD), состоящий из нескольких групп, которые отвечают за микроядро ОС, драйверы, системные компоненты, подсистему безопасности, а также обеспечивают непрерывный контроль качества разработки. Сейчас у команды много новых, интересных и сложных задач, так что она продолжает расти.
О команде:
Группа разработки микроядра отвечает за управление физической и виртуальной памятью, планирование потоков исполнения, межпроцессное взаимодействие (IPC), механизм Object Capability, интерфейсы I/O для драйверов изоляцию драйверов посредством IOMMU, загрузку ядра. Также мы развиваем базовые библиотеки пространства пользователя для доступа к API ядра. Наше ядро написано с нуля.
Задачи:
-
Изучение всего нового, что происходит в области разработки операционных систем;
-
Проектирование и реализация подсистем ядра, системных сервисов и библиотек;
-
Обеспечение работоспособности KasperskyOS на различных аппаратных платформах.
Что требуется от кандидата:
-
Отличное владение языком программирования C;
-
Знание архитектур современных процессоров;
-
Знание языка ассемблера по крайней мере для одной из аппаратных архитектур (x86, Arm);
-
Отличное понимание принципов построения операционных систем общего назначения;
-
Понимание того, как работает «железо»;
-
Знание классических алгоритмов и структур данных;
-
Git, make, gcc/clang;
-
Практика тестирования и документирования написанного кода;
-
Умение писать грамотные и понятные технические документы;
-
Английский язык на уровне чтения технической документации.
Желательно:
-
Знание и понимание работы различных подсистем ОС, таких как управление физической и виртуальной памятью, межпроцессное взаимодействие, синхронизация, планирование задач, параллелизм, обработка прерываний;
-
Знакомство с особенностями микроядерных операционных систем;
-
Знание специфики различной периферии (PCI, UART, RTC и т.д.);
-
Опыт написания драйверов устройств;
-
Знание специфики разработки под специализированные ОС (real-time, embedded);
-
Опыт разработки под различные архитектуры (Arm, PowerPC, MIPS);
-
Навыки оптимизации кода под конкретную аппаратную платформу;
-
Знания в области информационной безопасности.