Системный разработчик (группа микроядра, команда разработки 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++.