Baigudin Software avatar
Baigudin Software logo
home
ru region
en region

Introduction to BOOS Core

Which will operating system be used? Perhaps, this question was asked by every developer of embedded systems. Today, to find up an embedded system with out operating system is big rarity. Only the simplest solutions might be built with out it. Let’s understand possible ways by a chart of processors complexity against software complexity.

Advantage of using BOOS Core

The first scheme on the picture above has been divided into four blocks. Top right block assigns high-end processor and complexity software. This usually is implied one of operating systems using for implementing user programs. A less powerful CPU can execute some complex software, which is using simple kernel, if the software is adapted for some target hardware architecture. Occasionally, powerful processors are being used for executing enough simple software, for example, if developers need to get execution speed and also save some flexibility and maintenance of executing programs by using simple kernel. And only in case of simple software, which is running on low-end processor, using some operating systems is mostly not necessary.

The BOOS Core operating kernel allows to implement high-quality software for any powerful CPU and provides itself functionality for creating multi-threads applications, which is working in real-time. Also, the kernel helps to save strong flexibility and gives effective capabilities for applications to be enhanced.

Decided to use BOOS Core, you will forget about compromises in developing of embedded software!

The architecture of the operating kernel

The BOOS Core operating kernel provides self resources to a user program for accessing hardware environment.

BOOS Core and user Program

Figure above shows user program which can get direct access to uncontrolled hardware resources by the kernel. This allows writing new flexible algorithms as well as using implemented designs.

Build of user program

The BOOS Core operating kernel has been built by using objects. All objects are divided by groups. Each group is program library, which implements some logical or hardware functionality.

Program way to execution by using BOOS Core

User program and BOOS Core are generated to executable file, which is being executed by target processor. This approach, when only necessary components are included, allows reducing a size of final program largely.

Execution of user program

When power is upped, a processor begins to execute a source code of the kernel. The kernel initializes some needful hardware resources and data of a program.

BOOS Core threads scheduling

On the figure above, when initialization has been completed, the kernel passes full control to a user program and creates the singular thread in a system for this program. While a program is being executed, it can create new threads, lock system interrupts and some other resources of the kernel. Thus, a program entirely controls the processor time. When user program has been completed, the kernel deinitializes a system and terminates an execution.

The simplest user program

An executing of user program always starts from the main method. The simplest user program example is putted below.

/** 
 * User main class.
 */
#include "boos.Main.hpp"

/**
 * User main method.
 */   

int Main::main(int argccharargv[])
{
  
// The simplest program does something and does nothing
  
return argc && argv != NULL 0;
}

The main method, which is created by BOOS Core, is the primary and always singular thread in a system at the start. When the method has been created, the kernel does not intervene in an execution of user program anymore, and only provides self resources for it. This allows for developers to implement predicted programs, which execute exceptionally required operations.

Go back