Конфигурируемая ОС РВ Embox для встроенных систем заведующий кафедрой системного программирования СПбГУ генеральный директор ЗАО «Ланит-Терком» доктор физ-мат наук, профессор А.Н.Терехов аспирант кафедры системного программирования СПбГУ А.П.Козлов Описание платформы Операционная система, конфигурируемая под конкретный набор пользовательских приложений, выполняющих строго заданную бизнесзадачу Характеристики ● ● ● ● ● Повышенная безопасность Низкие требования к аппаратуре Привычные средства разработки Широкий набор библиотек и приложений Простой процесс сертификации Защита данных и каналов связи Классические средства защиты: ● Дискретное разграничение доступа ● Мандатное разграничение доступа ● Шифрование ● Firewall Защита от вредоносного кода ● Естественная защита на уровне архитектуры системы ● Невозможность внедрить/выполнить произвольный код Архитектурные особенности ● Собственная системы сборки ● Высокая конфигурируемость ● Статическая сборка образа Система сборки ● Собственный язык (DSL) ● Позволяет задавать дополнительную информацию о системе ● Статический анализ допустимости параметров конечного образа системы Высокая конфигурируемость ● Возможность легко переключать параметры системы Алгоритмы планировщика o Менеджера памяти o Параметров сетевого стека и файловой системы o ... o ● Отсутствие избыточности кода Статическая сборка образа ● Отсутствие неиспользуемой функциональности ● Отсутствие лишних приложений ● Невозможность загрузить произвольное приложение ● Простая отладка ● Легкая сертификация Процесс сборки ● ● ● ● Язык описания модулей Параметры системы Разрешение зависимостей Сборка образа Процесс сборки. Язык описания модулей ● Отделяет логику работы модуля от его описания ● Задает информацию о модуле o o o Параметры Ограничения Зависимости ● Задает дополнительные правила для сборки Процесс сборки. Параметры системы ● Возможность задать необходимый набор модулей ● Возможность указать необходимые параметры каждого модуля ● Возможность установить порядок загрузки модулей Процесс сборки. Разрешение зависимостей ● Подключение необходимых дополнительных модулей ● Проверка допустимости заданных параметров ● Проверка взаимоисключающих модулей ● Генерация дополнительных файлов с параметрами и правилами сборки Процесс сборки. Сборка образа ● Сборка всех модулей по заданным правилам ● Генерация скриптов для линковки по заданной карте памяти ● Генерация скриптов для линковки служебных секций ● Окончательная сборка и линковка Разработка ● Стандартный набор разработчика o o o кросс - компилятор: gcc IDE: Eclipse CDT отладчик: gdb ● Эмулятор под все архитектуры на основе QEMU ● Возможность запуска в режиме пользовательского процесса Linux Широкий набор библиотек ● POSIX-совместимость o pthread, socket, ... ● Перенесены следующие фреймворки o Qt, QPid, ZeroMQ, Boost, ... ● Набор сетевых сервисов и утилит o ssh, http, ftp, nfs, cifs, ... ● Поддержка файловых систем o FAT, ext2/3/4, jffs2, ... Профилирование и отладка ● Возможность пошаговой отладки ● Встроенные сэмплирующий и инструментальный профилировщики ● Возможность подключить анализатор используемой памяти valgrind Сертификация ● Статическая информация о модулях, полученная на этапе сборки ● Встроенный инструмент для покрытия кода в runtime ● Возможности использования профилировщиков ● Фреймворки для разработки модульных и интеграционных тестов Низкие требования к аппаратуре ● Поддержка различных архитектур o x86, ARM, MIPS, PPC, SPARC, Microblaze ● 16КБ ПЗУ и 4КБ ОЗУ * ● Выполнение кода напрямую из ПЗУ (XiP) ● Работа без поддержки MMU * Платформа EMF32 Zero-Geko Контакты Essential toolbox for embedded development Embox Project Homepage ● http://code.google.com/p/embox/ А.Н.Терехов ● A.Terekhov@spbu.ru Anton Kozlov ● drakon.mega@gmail.com