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