Программирование для встроенных систем - статьи

Концепция разработки мини-ОС


При разработке минимальной операционной системы (далее мини-ОС) к ней выдвигались следующие требования:

  1. Модульность – мини-ОС представляет собой базовый набор ортогональных модулей, реализованных таким образом, что конфигурация из любого набора модулей может быть скомпилирована без внесения изменений в код системы.
  2. Портируемость – время на адаптацию системы к новой архитектуре должно быть минимально. Количество платформенно-зависимых частей мини-ОС должно быть минимально и их наличие должно обуславливаться только невозможностью реализации в платформенно-независимом виде.
  3. Програмный интерфейс мини-ОС должен быть совместим с интерфейсом ОС Windows.
  4. Мини-ОС должна поддерживать выполнение приложений на многопроцессорной системе с общей памятью, т.е. должна обеспечиваться возможность синхронизации между потоками, работающими на разных процессорах.

Первое требование было удолетворено за счет разработки различных реализаций одних и тех же модулей в зависимости от конфигурации ядра. В процессе компиляции мини-ОС выбирается та реализация, которая соответствует конфигурации системы. Такая гибкость была достигнута за счет использования директив условной компиляции в языке Си.

Для уменьшения времени портирования мини-ОС использовались следующие методы:

  • Разделение платформенно-зависимых и платформенно-независимых частей ОС. Реализация платформенно-зависимых частей в виде макросов. Использование инлайн-ассемблера.
  • Формализация функциональности платформенно-зависимых частей ядра.
  • Поддержка многопроцессорной системы с общей памятью.

Совместимость с ОС Windows достигнута за счет использования интерфесов функций, а также имен типов данных Windows при декларации объектов ОС, таких как поток, синхронизационный примитив и т.д.

Операционная система мини-ОС, построенная в соответствии с описанными выше принципами, позволяет реализовать следующий сценарий разработки и портирования приложений.

  • Разработка и отладка многопоточного приложения выполняется под управлением ОС Windows, с использованием стандартного интерфейса для управления потоками и объектами синхронизации и стандартного набора функции для организации ввода-вывода данных.
  • Далее производится портирование операционной среды на аппаратную платформу, адаптированную под данное приложение. Тестирование мини-ОС выполняется с помощью специального набора тестовых приложений.
  • Производится компиляция приложения совместно с мини-ОС под целевую платформу и выполняется оценка производительности полученной системы.
  • Наконец, осуществляется оптимизация приложения и операционной системы. При необходимости производится модификация аппаратной платформы и соответствующих платформенно-зависимых частей ОС.

Подобный подход позволяет, во-первых, отделить процесс разработки приложения от портирования на специальную аппаратную систему. Во-вторых, сама операционная система может быть оптимизирована в соответствии с требованиями приложения.



Содержание раздела