О проекте
KasperskyOS – защищенная микроядерная операционная система. Это не очередной дистрибутив Linux, а собственная разработка, способная успешно конкурировать на международных рынках. Заложенный в KasperskyOS принцип кибериммунности позволяет разрабатывать безопасные решения из потенциально небезопасных компонентов.
О команде
В команде разработки системных компонентов группа Networking отвечает за поддержку сетевого стека, всех компонентов для работы с сетью (DHCP, DNS, TLS и др.), а также других connectivity-стеков (Bluetooth, GPS, GSM). Также, поскольку мы находимся в рамках общей команды Components, бывают и задачи, связанные со смежными группами.
Задачи группы
Группа разработки компонентов отвечает за:
-
Инструменты разработки (GCC/Clang, Binutils, Qemu и т.д.);
-
Базовые компоненты KasperskyOS (libc, поддержка POSIX);
-
Поддержку файловых систем и систем хранения данных;
-
Поддержку сетевых стеков и средств коммуникации между устройствами;
-
Средства управления приложениями;
-
Графическую и аудио подсистемы;
-
Поддержку различных фреймворков и системных служб.
Ваши задачи
-
Поддержка и развитие сетевого стека KasperskyOS;
-
Проектирование и разработка компонентов и системных сервисов для работы с сетью;
-
Разработка и портирование других connectivity-стеков (Bluetooth, GPS, GSM и др.);
-
Портирование open source программного обеспечения на KasperskyOS.
Что ожидаем от кандидата
-
Отличное знание языка программирования С;
-
Знание базовых принципов построения современных операционных систем;
-
Опыт многопоточного программирования;
-
Опыт разработки ядра Linux/Windows;
-
Опыт разработки драйверов для Linux/Windows;
-
Знание классических алгоритмов и структур данных;
-
Знание инструментов разработки в Unix системах (Linux, BSD и пр.);
-
Опыт работы в команде, знакомство с процессами Code Review, CI/CD.
Желательно
-
Хорошее знание принципов работы компьютерных сетей и основных сетевых протоколов;
-
Понимание организации и работы сетевого стека ОС;
-
Опыт работы над сетевым стеком и компонентами для работы с сетью, в Linux или других ОС;
-
Знание стандарта протокола TLS и опыт разработки приложений с поддержкой TLS;
-
Знание стандартов connectivity-протоколов (Bluetooth, GPS, GSM и др.) и опыт работы с ними;
-
Опыт кросплатформенной разработки;
-
Хорошее знание POSIX;
-
Знакомство с архитектурой операционных систем, внутренним устройством ядра ОС (управление памятью, межпроцессное взаимодействие, планирование задач, VFS);
-
Знание внутреннего устройства libc;
-
Знание языка assembler по крайней мере для одной из архитектур (x86, ARM) на уровне, достаточном, для исследования объектного файла.