BOOS Core API 3.1
- api::Collection<Type>
- api::Heap
- api::IllegalValue<Type>
- api::Interrupt
- api::Iterable<Type>
- api::Iterator<Type>
- api::Kernel
- api::List<Type>
- api::ListIterator<Type>
- api::Mutex
- api::Object
- api::ProcessorInterrupt
- api::ProcessorPll
- api::ProcessorRegisters
- api::ProcessorTimer
- api::Queue<Type>
- api::Resource
- api::Runtime
- api::Scheduler
- api::Semaphore
- api::Stack<Type>
- api::String<Char>
- api::Synchronizable
- api::System
- api::Task
- api::Thread
- api::Timer
- api::Toggle
- api::Value<Type>
- library::AbstractBuffer<Type,Alloc>
- library::AbstractLinkedList<Type,Alloc>
- library::Align<Type,SIZEOF,Alloc>
- library::Buffer<Type,COUNT,Alloc>
- library::CircularList<Type,Alloc>
- library::Heap
- library::LinkedList<Type,Alloc>
- library::LinkedNode<Type,Alloc>
- library::Memory
- library::Stack<Type,Alloc>
- library::String<Char,Alloc>
- library::Toggle<Alloc>
Baigudin Software успешно стартовала в программе Касперский Старт
Проект Baigudin Software успешно стартовал и представил операционное ядро BOOS Core в рамках программы «Касперский Старт» от «Лаборатории Касперского».
Введение в BOOS Core
Какую операционную систему (ОС) использовать? Пожалуй, этим вопросом задавался каждый разработчик встраиваемых систем. На сегодняшний день, найти встраиваемую систему, не использующую ОС – это большая редкость, разве что самые простые решения могут быть построены без её использования. Давайте разберёмся в этом на примере зависимости сложности архитектуры процессора от сложности исполняемого на нём программного обеспечения.
Первая схема, на рисунке выше, разделена на четыре области. Верхний правый блок определяет производительный процессор и сложное программное обеспечение, что обычно подразумевает использование операционной системы при построении программ. Медленный процессор может выполнять сложное программное обеспечение, построенное на простом ядре, если это программное обеспечение максимально адаптировано к архитектуре. Иногда, производительные чипы используются для того, чтобы исполнять достаточно простые программы, например, если необходимо добиться высокой скорости исполнения. В этом случае, простое ядро используется с целью сохранения гибкости исполняемой программы и возможности её расширения. И лишь в случае простого программного обеспечения, исполняемого на низко-производительном процессоре, использование какой-либо операционной системы обычно неуместно.
Операционная система BOOS Core позволяет строить высококачественное программное обеспечение для процессоров любой производительности, при этом предоставляет собственный мощный функционал для организации многопоточных приложений, работающих в реальном масштабе времени, позволяет сохранить гибкость пользовательских программ и возможность их качественного расширения.
Выбрав BOOS Core, вы забудете о компромиссах в разработке встраиваемого программного обеспечения!
Архитектура операционного ядра
Операционная система BOOS Core предоставляет пользовательской программе собственные ресурсы для доступа к аппаратной составляющей системы.
Как видно из рисунка выше, пользовательская программа в праве получить прямой доступ к не контролируемым системой аппаратным ресурсам. Это позволяет не только создавать гибкие алгоритмы работы, но и использовать уже имеющиеся наработки.
Сборка пользовательской программы
Система построено на основе объектов. Все объекты распределены по группам. Каждая группа – это программная библиотека, реализующая логический или аппаратный функционал.
Пользовательская программа совместно с системой BOOS Core образуют исполняемый файл, который исполняется целевым процессором. Такой подход – включение только тех компонент, которые необходимы – позволяет в значительной степени сократить объём конечной программы.
Выполнение пользовательской программы
После подачи питания, процессор начинает выполнять код ядра. Система выполняет инициализацию необходимых аппаратных ресурсов и данных программы.
Как видно из рисунка выше, после инициализации, система передаёт полное управление пользовательской программе, создавая для неё первый и единственный в системе поток. В ходе выполнения, она может создавать дополнительные потоки, захватывать системные прерывания и другие ресурсы ядра. Таким образом, программа полностью контролирует процессорное время. После завершения пользовательской программы, система деинициализирует систему и завершает выполнение.
Простейшая пользовательская программа
Выполнение пользовательской программы всегда начинается с метода main. Ниже приведён пример простейшей программы.
/**
* Основной пользовательский класс.
*/
#include "boos.Main.hpp"
/**
* Основной пользовательский метод.
*/
int Main::main(int argc, char* argv[])
{
// Простейшая программа, делающая нечто и ничего
return argc > 0 && argv != NULL ? 1 : 0;
}
Метод main – это основной и всегда единственный поток в системе, созданный BOOS Core. После его создания система более не вмешивается в работу приложения, а лишь предоставляет ему свои ресурсы. Это позволяет разработчику построить прогнозируемое приложение, выполняющее исключительно необходимые действия.