October 6, 2016

The Kyu real-time operating system -- an introduction.

Kyu is a real time operating system for the BBB (Beaglebone Black).

The phrase "operating system" conjures up various thoughts in peoples minds, and it is the purpose of this page to clarify peoples concepts and expectations concerning Kyu.

Kyu is not a general purpose operating system like linux. It is a toolkit for building embedded applications.

Kyu does not host editors and compilers and interpreted languages. Kyu follows the old unix paradigm of "doing one thing well". It works in synergy with a development system (typically linux) that has disk drives, editors, compilers, and windowing systems. This will be a familiar arrangement to experienced embedded system developers, but may be surprising to people who are new to this sort of thing.

The expectation using Kyu is that the target system will be dedicated to some specific task and that the resulting application will become part of the final system. An application is developed by in essence building an application specific version of Kyu, or at least that is one way to look at it.

What Kyu offers is a scheduler (i.e. a thread system that runs on bare hardware) along with semaphores and other synchronization primitives. The Kyu scheduler is strictly real-time and thus aggressively unfair. At any given time the highest priority thread runs. Period. No exceptions. If this sort of thing seems unfamiliar or "not right", keep reading, the tutorials should help make much of this clear. A basic philosophy is that with threads and semaphores we can rule the world.

Along with the scheduler and synchronization primitives, Kyu provides a set of drivers for most of the hardware on the BBB. Kyu provides no process model or memory protection. This may sound like a shortcoming, but for developing applications that need access to hardware, it is just the thing and makes hardware access simple and easy.

Have any comments? Questions? Drop me a line!

Kyu / tom@mmto.org