Breaking backward compatibility since 2010!!!
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
tests Checked the source with Adlint. Jun 11, 2018
.gitignore Deleted unneeded files. Mar 15, 2017 Added code of conduct. Jan 3, 2018
COPYING BuguRTOS-3.0.0 release!!! Mar 13, 2017


This is a BuguRTOS project. The name BuguRTOS comes from Butthurt, Frugurt and RTOS.

BuguRTOS is small portable OS-kernel for microcontrollers. It is capable to work in hard/soft real time systems.

It is free and open source software, but you can use it for proprietary software development.

Main features

  • Small. BuguRTOS can run on small 8bit microcontrollers.
  • Portable. The kernel is designed to be easy portable to new platforms.
  • No memory management in kernel.
  • Smaller process stack size required as kernel runs in separate thread with it's own stack.
  • The kernel is almost fully preemptive. Only small chunks of code can't be preempted by interrupts.
  • Interrupt virtualization. Virtual interrupts are run cooperatively in kernel threads. By default they can be preempted by other virtual interrupts in preemption points.
  • Customizable system call interface. One may comment out unneeded system calls, add custom system calls or rewrite system call table completely.


  • BuguRTOS is licensed under GPLv3 with linking exception, see exception.txt
  • STM8/SDCC tests are licensed under GPLv3 without exceptions as libstm8 is used!

Get it!

  • Old releases are on Gdrive!.
  • Since May 12th 2015 new releases are placed here.

Current status

  • Branches supported:

  • Current versions are:

    • 0.6.6;
    • 3.0.0;
  • Platforms supported:

    • AVR (GNU-toolchain);
    • STM8:
      • IAR,
      • Raisonance,
      • SDCC (since 2.0.0);
    • CortexTM-M4 (GNU-toolchain);
    • CortexTM-M3 (GNU-toolchain);
    • CortexTM-M0 (GNU-toolchain).
  • Notes on STM8/SDCC port:

    • Thank Philipp Klaus Krause for taking part in this port!
    • SDCC generates strange code for long linear functions which allocates MUCH STACK SPACE for temporary vars, be careful!
  • Notes on CortexTM-M0 port:

    • This port should also work on CortexTM-M1 with OS-extension.

Get started

Getting started guide is here.


  • Write libs for 3.0.x branch.
  • Write more ports.
  • Fix bugs.
  • ??????
  • PROFIT!!!


  • March 13th 2017: BuguRTOS updated version 3.0.0 is out, see Changelog for details!
  • August 31th 2016: BuguRTOS updated version 2.0.0 is out, see Changelog for details!
  • April 26th 2016: BuguRTOS updated version 1.0.0 is out, see Changelog, semantic versioning is used now!
  • January 6th 2016: BuguRTOS updated version 0.9.9 is out, see Changelog!
  • July 3rd 2015: BuguRTOS updated versions 0.6.6, 0.7.3, 0.8.4 are out, are out, see Changelog!
  • May 12th 2015: BuguRTOS-0.8.3 is out, see Changelog! Added more argument checks, fixed several issues, ported tests to libopencm3.
  • May 12th 2015: Added third party code to project repository.
  • April 25th 2015: BuguRTOS-0.8.2 is out, see Changelog! Added basic timeout support and fifo scheduling policy support, fixed some bugs.
  • April 25th 2015: BuguRTOS moved to GitHub.
  • March 13th 2015: BuguRTOS updated versions 0.6.5, 0.7.2, 0.8.1 are out, see Changelog! Three bugs fixed, significant changes made in 0.8.x branch.
  • January 24th 2015: BuguRTOS-0.8.0 is out, see Changelog! Actually It's not just a new version, but a New branch. I will focus on it for a while. Working on this new branch I found and fixed some bugs in priority inheritance protocol of 0.7.x branch. Branches 0.6.x and 0.7.x will have only new ports and bug fixes.
  • BuguRTOS-0.7.1 is out, see Changelog, BuguRTOS-0.8.0 is on the way!