Developer C (KasperskyOS, Kernel)

Дата размещения вакансии: 22.01.2025
Работодатель: Лаборатория Касперского
Уровень зарплаты:
з/п не указана
Город:
Москва
Ленинградское шоссе 39Ас1
Требуемый опыт работы:
От 3 до 6 лет

О проекте:

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);
  • Навыки оптимизации кода под конкретную аппаратную платформу;
  • Знания в области информационной безопасности.