Developer C (components development group, Middleware team, USB Stack)

Требования

Бэкенд разработчикC

Местоположение и тип занятости

Москва

Компания

ТОП-3 международная компания в области IT безопасности. Один из лучших работодателей России

Описание вакансии

Условия работы

О проекте

KasperskyOS – защищенная микроядерная операционная система. Это не очередной дистрибутив Linux, а собственная разработка, способная успешно конкурировать на международных рынках. Заложенный в KasperskyOS принцип кибериммунности позволяет разрабатывать безопасные решения из потенциально небезопасных компонентов.

Об отделе

Разработкой KasperskyOS занимается отдел Secure Platform Development (SPD), состоящий из нескольких групп, которые отвечают за микроядро ОС, драйверы, системные компоненты, подсистему безопасности, средства виртуализации, а также обеспечивают непрерывный контроль качества разработки. Сейчас у команды много новых, интересных и сложных задач, так что она продолжает расти.

Задачи группы

В команде SPD группа разработки компонентов отвечает за:

  • Инструменты разработки (GCC/Clang, Binutils, Qemu и т.д.);
  • Базовые компоненты KasperskyOS (libc, поддержка POSIX);
  • Поддержку файловых систем и систем хранения данных;
  • Поддержку сетевых стеков и средств коммуникации между устройствами;
  • Средства управления приложениями;
  • Графическую и аудио подсистемы;
  • Поддержку различных фреймворков и системных служб;

О команде

В группе разработки системных компонент команда Middleware отвечает за поддержку компонентов Qt, взаимодействие пользовательских компонентов с драйверами, работу динамически загружаемых библиотек, USB stack.  Кроме того, поскольку мы находимся в рамках общей команды Components, бывают и задачи, связанные со смежными группами.

Ваши задачи

  • Поддержка текущей реализации USB stack;
  • Добавление новых возможностей.
  • Поддержание текущих USB драйверов и написание новых

Что требуется от кандидата

  • Отличное знание языка программирования С;
  • Знание базовых принципов построения современных операционных систем;
  • Знание инструментов разработки в Unix системах (Linux, BSD и пр.);
  • Опыт работы в команде, знакомство с процессами Code Review, CI/CD;
  • Понимание работы Usb Stack Host Mode \ Usb Transfers Type \ Usb Device Desc's Arch \ Usb Hid Drivers (keyboard, mouse)
  • Понимание работы Libusb

Желательно

  • Опыт кросплатформенной разработки;
  • Хорошее знание POSIX;
  • Знакомство с архитектурой операционных систем, внутреннего устройства ядра ОС (управление памятью, межпроцессное взаимодействие, планирование задач, VFS);
  • Знание внутреннего устройства libc
  • знание языка assembler по крайней мере для одной из архитектур (x86, ARM) на уровне, достаточном, для исследования объектного файла;