Системный разработчик (группа микроядра, команда разработки KasperskyOS)
Требования
Местоположение и тип занятости
Компания
Описание вакансии
Условия работы
О проекте
KasperskyOS – защищенная микроядерная операционная система. Это не очередной дистрибутив Linux, а собственная разработка, способная успешно конкурировать на международных рынках. Заложенный в KasperskyOS принцип кибериммунности позволяет разрабатывать безопасные решения из потенциально небезопасных компонентов.
Об отделе
Разработкой KasperskyOS занимается отдел Secure Platform Development (SPD), состоящий из нескольких групп, которые отвечают за микроядро ОС, драйверы, системные компоненты, подсистему безопасности, средства виртуализации, а также обеспечивают непрерывный контроль качества разработки. Сейчас у команды много новых, интересных и сложных задач, так что она продолжает расти.
О группе
Группа разработки микроядра отвечает за системный уровень KasperskyOS – ядро, его сервисы, API для работы с ними, а также за разработку драйверов и поддержку аппаратных платформ.
Задачи
- Изучение всего нового, что происходит в области разработки операционных систем;
- Проектирование и реализация системных сервисов и библиотек;
- Обеспечение работоспособности KasperskyOS на различных аппаратных платформах.
Что требуется от кандидата
- Отличное владение языком программирования C;
- Знание архитектур современных процессоров;
- Знание языка assembler по крайней мере для одной из архитектур (x86, ARM);
- Отличное понимание принципов построения операционных систем;
- Понимание того, как работает «железо»;
- Знание классических алгоритмов и структур данных;
- Git, Make, GCC;
- Практика тестирования и документирования написанного кода;
- Умение писать грамотные и понятные технические документы;
- Английский язык на уровне чтения технической документации.
Желательно
- Знание и понимание работы различных подсистем ОС, таких как управление памятью, межпроцессное взаимодействие, синхронизация, планирование задач, специфика работы multicore и принципов работы различной аппаратуры (PCI, USB, SATA и т.д.);
- Знакомство с особенностями микроядерных операционных систем;
- Опыт написания драйверов устройств;
- Знание специфики разработки под специализированные ОС (real-time, embedded);
- Опыт разработки под различные архитектуры (ARM, PowerPC, MIPS);
- Навыки оптимизации кода под конкретную аппаратную платформу;
- Знания в области информационной безопасности;
- Хорошее знание языка программирования C++.