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