JaeOS -- Just Another Embedded OS

Because the RTOS should be a commodity.
Because the RTOS should be a commodity.

JaeOS Documentation

WARNING: This site is getting prettier but it is still under construction.

Table of Contents

Overview

The primary purpose of JaeOS is to be a commodity RTOS so I have tried to keep core features to a minimum even when I was tempted to add features just because it looked easy.

I aimed to have just enough functionality to support common third party software packages including running a TCP/IP stack.

Also JaeOS is just an RTOS core, it does not include device drivers, file systems or a GUI. The purpose of JaeOS is to enable running portable, RTOS independent software implementing such functionality, not to compete with them.

JaeOS Core Features

  1. Multitasking.
  2. Task creation and destruction.
  3. Delay/sleep for a certain amount of time.
  4. Task synchronzation by means of counting semaphores.
  5. Task suspend and resume.
The schedulign algorithm is a strictly priority based real time scheduler.

JaeOS Advanced Features

JaeOS allows running tasks that yield the CPU to each other after their time slice has expired.

This is implemented on top of the priority based scheduling mechanism. There is no provision to run more them one task at the same priority. A task participating in time sharing is simply removed from the set of runnable tasks when its time slice has expired and replaced by another with a fresh time slice.

In my opinion this mechanism has yielded a simpler and easier to understand implementation than allowing multiple tasks running at the same priority level. Opinions may vary on this subject, but keeping the system simple was the first priority.

While most small embedded systems can do just fine with a strictly priority based scheduling algorithm, allowing tasks to be be executed in a time sharing fashion makes it easier to implement systems where multiple things of the same importance need to run.

A network server servicing multiple clients would be a good example.

JaeOS Experimental Features

Symmetric Muiltiprocessing (SMP): JaeOS has experimental support to use multiple CPU cores if the target system supports it.

While JaeOS is not optimized for such operation it is sometimes useful to be able to schedule tasks to run in parallel on multiple CPU cores.

SMP operation is somewhat uncommon in small embedded systems that JaeOS is suitable for, and it has only been tested to a limited extent so it is still considered to be experimental.

JaeOS Detailed Documentation

There are various JaeOS documents in existence. The ones listed below are of particular interest to anyone who is considering using JaeOS.

The html documents below are provided for easy on-line viewing.

Last Modified: 2015-November-16.