the lost notebook
Show MenuHide Menu

b5 kernel

b5 is an operating system kernel for embedded targets that I was developing in 2007 – 2009.  These days there weren’t many open source projects like that. Nowadays, if I had to use an embedded kernel, I’d probably use one of freely available open source kernels like e.g. FreeRTOS. Nevertheless I’m convinced that designing and implementing a kernel is an excellent exercise and having done so one gets enormously in-depth understanding of operating systems.


  • preemptive multitasking with strict task priorities.
  • aimed at real-time applications
  • no time-sharing (or being able to not use it)
  • basic inter-process communication (IPC) primitives: semaphores, message queues, etc
  • precise timers support (single-shot and periodic)
  • fair portability

What was completed

All requirements are satisfied. Additionally the package comes with:

  • a network stack
  • embedded debugging and tracing features

Concerning the embedded targets, I made it for AVRs (100% complete implementation) and dsPICs (almost complete).

Where was it used

I’ve been interested in real-time control systems for flying things (multi-copters and fixed-wing) since long time.  I’ve used the b5 kernel for building real-time software for a number of on-board plane computers and also for base stations for controlling planes (The Base project).


Leave a Reply