Baigudin Software avatar
Baigudin Software logo
home
ru region
en region

Введение в BOOS Core

Какую операционную систему (ОС) использовать? Пожалуй, этим вопросом задавался каждый разработчик встраиваемых систем. На сегодняшний день, найти встраиваемую систему, не использующую ОС – это большая редкость, разве что самые простые решения могут быть построены без её использования. Давайте разберёмся в этом на примере зависимости сложности архитектуры процессора от сложности исполняемого на нём программного обеспечения.

Advantage of using BOOS Core

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

Операционная система BOOS Core позволяет строить высококачественное программное обеспечение для процессоров любой производительности, при этом предоставляет собственный мощный функционал для организации многопоточных приложений, работающих в реальном масштабе времени, позволяет сохранить гибкость пользовательских программ и возможность их качественного расширения.

Выбрав BOOS Core, вы забудете о компромиссах в разработке встраиваемого программного обеспечения!

Архитектура операционного ядра

Операционная система BOOS Core предоставляет пользовательской программе собственные ресурсы для доступа к аппаратной составляющей системы.

BOOS Core and user Program

Как видно из рисунка выше, пользовательская программа в праве получить прямой доступ к не контролируемым системой аппаратным ресурсам. Это позволяет не только создавать гибкие алгоритмы работы, но и использовать уже имеющиеся наработки.

Сборка пользовательской программы

Система построено на основе объектов. Все объекты распределены по группам. Каждая группа – это программная библиотека, реализующая логический или аппаратный функционал.

Program way to execution by using BOOS Core

Пользовательская программа совместно с системой BOOS Core образуют исполняемый файл, который исполняется целевым процессором. Такой подход – включение только тех компонент, которые необходимы – позволяет в значительной степени сократить объём конечной программы.

Выполнение пользовательской программы

После подачи питания, процессор начинает выполнять код ядра. Система выполняет инициализацию необходимых аппаратных ресурсов и данных программы.

BOOS Core threads scheduling

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

Простейшая пользовательская программа

Выполнение пользовательской программы всегда начинается с метода main. Ниже приведён пример простейшей программы.

/** 
 * Основной пользовательский класс.
 */
#include "boos.Main.hpp"

/**
 * Основной пользовательский метод.
 */   

int Main::main(int argccharargv[])
{
  
// Простейшая программа, делающая нечто и ничего
  
return argc && argv != NULL 0;
}

Метод main – это основной и всегда единственный поток в системе, созданный BOOS Core. После его создания система более не вмешивается в работу приложения, а лишь предоставляет ему свои ресурсы. Это позволяет разработчику построить прогнозируемое приложение, выполняющее исключительно необходимые действия.

Вернутся назад