The development of pico]OS has been discontinued.

There were no bug reports the last years and nearly no support from the community, so I decided to close the project. Pico]OS versions 1.0.0 to 1.0.4 are widely-used and supposed to be stable. The latest pico]OS version is 1.0.4 that was published on 12 July 2012:

pico]OS 1.0.4 has been released. It is a service-release that contains bug fixes for the ARM Cortex-M, MSP430 and Unix port. Furthermore some minor compilation issues (unnecessary warnings) were fixed.

Projects based on pico]OS

Ari Suutari has published some related work on his website. For example he has written a uIP based network layer for pico]OS. Furthermore he wrote a library that extends the pico]OS layer model by an additional -Layer that contains miscellaneous stuff like FAT file system for pico]OS.

Welcome to pico]OS

pico]OS is a highly configurable and very fast real time operating system (RTOS). It targets a wide range of architectures, from very small 8 bit processors and microcontrollers up to very huge platforms. Ports are available for 6502, 80x86, PPC and AVR.


Many RTOS' are either limited in functionality or they are to heavy weighted and too large to be used with small mcu architectures.

The goal of pico]OS is to provide a large set of features that are highly configurable. It can be used on large 32 bit architectures as well as on 8 bit processors.

A no less important goal is to keep pico]OS as open source, so everyone can use it without needing to pay a license fee. pico]OS is available with a modified BSD license, that means that you have no restrictions in using the source code. This is a big advantage against the operating systems that are licensed under the GNU public license.


pico]OS provide a large set of features. See the detailed list.

  • Scheduler: priority based, round robin, preemptive multitasking
  • Events: semaphores, mutexes, flags
  • Message Boxes
  • Timer
  • Software Interrupts
  • Blocking and nonblocking lists
  • Atomic Variables
  • Bottom Halfs
  • Dynamic Memory Management
  • Support for named resources
  • Threadsave Console I/O
  • CPU usage measurement

The operating system is divided into several layer. The core is the pico-layer that contains all basic operating system functions. The complexer functions are implemented in the nano-layer. The micro-layer will support operating system management like device driver support and file system, but is not implemented yet.

The layering scheme is a good mechanism to configure pico]OS to best fit your needs. On very small MCUs you may use only the pico layer.

Available Ports

pico]OS has yet been ported to this architectures (see the detailed description):

  • 6502 CPU and compatible series, especially Commodore 64
  • 80x86 DOS in real mode, the RTOS is loadable from DOS
  • 80x86 WIN32: MS Windows 32Bit, for developing and testing
  • ARM: ARM7 core (SAMSUNG S3C2510A, Philips LPC2000), Cortex-M
  • AVR: Atmel(tm) RISC core processors
  • MyCPU: Port for the Homebrew-Computer called 'MyCPU'
  • MSP430: Port for Texas Instruments MSP430 chips
  • PowerPC: IBM PPC440 and compatible w/o floating point