FreeRTOS - A Mini Real Time Kernel

If you're having trouble getting Linux to run on that 8-bit processor with 32KB of memory
don't despair, there are open-source alternatives.
FreeRTOS is an open source real time kernel that
has been ported to a number of microprocessors.
The website lists ports to over 40 different processor/compiler combinations.

FreeRTOS
supports both co-routines and tasks and numerous forms of IPC.
All tasks (and co-routines) run in a single memory space so they are more akin to threads in Linux.

The source consists of 3 or 4 (depending on features used) C source code files
plus header files.
Porting to a new architecture requires modification to only one of the C files
and one of the header files.
Depending on the compiler and the compiler options, the basic kernel
object code can be reduced to less than 4KB.

FreeRTOS is actively developed
and both community and paid support are available.
There is also a version available that has been certified for
use in safety critical applications.
Version 5.0 of FreeRTOS was released in April.

FreeRTOS is generally statically linked. Without the GPL modification the GPL would stipulate that all code you link with FreeRTOS must also be open sourced. The modification removes this requirement so you can link propriatory code with FreeRTOS. FreeRTOS then remains open source so any modifications you make to the kernel itself are to be open sourced - but your proprietary that uses FreeRTOS through its API code can remains closed source. Without this modification it would be difficult to use FreeRTOS commercially.