BeRTOS is an open source real-time kernel, coupled with drivers and code modules for various common tasks. The target is small systems – BeRTOS can even be used with Arduino. It is being developed by the Italian company Develer.
Targets are AVR, Arm7 and Arm Cortex M3. PowerPC and x86 are also supported, but there are no actual boards supported for these platforms, so you are limited to using the simulator. Still, you can develop your software in a simulated x86 environment before deploying it to an actual target.
BeRTOS attemts to provide more functionality than a plan real-time kernel. Still, the kernel provided by BeRTOS is small and powerful. It can live with as little as 100 bytes of stack and perform very quick context changes.
For process communication, the kernel provides both semaphores for synchronization and signals for asynchronous message passing. It can also be tuned to either preemptive or cooperative, depending on the needs of the system in question.
In addition to the kernel, modules for various hardwares are provided. This gives you a stable API to work against, independent of the underlying physical implementation. It also enables high level modules in BeRTOS. For instance, the module for interacting with FLASH provides a low level interface. The file system modules, BattFS and FAT, then provide high level access to storage devices.
Examples of modules included are: dynamic memory allocator, FIFO, list, ADC API, I2C EEPROM, keyboard driver, LCD drivers, DC motor control using PID, stepper motor control, etc.
As a starting point to discover BeRTOS, the reference documentation comes in handy. It is well structured, even though it sometimes assumes some knowledge from the readers.