Linux Engineer/Linux Kernel Developer
● Location: Dnipro (office position)
● Full-time
Вимоги:
1. Глибоке знання Linux
● Різні дистрибутиви (ми використовуємо викл. Yocto).
● Архітектура ядра Linux та механізми роботи драйверів.
● Системні дзвінки, файлові системи.
● Концепція завантаження системи (systemd,U-Boot).
2. Компіляція та налаштування ядра
● Складання ядра Linux із вихідних джерел.
● Налаштування ядра для мінімізації розмірів або оптимізації під специфічне залізо.
● Застосування патчів та адаптація драйверів.
3. Складання користувача оточення
● Компіляція та збирання користувацьких бібліотек та утиліт (systemd).
● Використання інструментів крос-компіляції (GCC, Clang, Buildroot, Yocto, OpenEmbedded).
4. Автоматизація складання та CI/CD
● Скрипти на Bash/Python для автоматизації процесу збирання.
● Використання Docker, Ansible, Jenkins, GitLab CI/CD.
5. Оптимізація та безпека
● Мінімізація розміру ОС (видалення непотрібних компонентів).
● Налаштування SELinux, AppArmor, контроль прав доступу.
● Оновлення та виправлення вразливостей (CVE, Kernel Hardening).
6. Знання архітектур процесорів
● ARM.
● Робота з крос-компіляцією для систем, що вбудовуються.
7. Робота із завантажувачем та init-системами
● U-Boot.
● systemd, OpenRC.
8. Контейнеризація та віртуалізація
● Docker.
9. Розробка та інтеграція драйверів
● Написання драйверів під Linux Kernel.
● Робота з PCI, USB, GPIO, I2C, SPI.
10. Досвід роботи з Linux From Scratch (LFS)
● Розуміння всіх етапів складання ОС з нуля.
Обов’язки:
● Досвід роботи з JTAG debugging;
● Адміністрування системи Linux;
● Розуміння роботи менеджерів простору користувача в Linux (Systemd, SysV та ін.);
● Робота з мовою програмування Python;
● Розуміння AOSP.