FreeRTOS is a realtime operating system (RTOS) for embedded devices. Ported to many processors (ARM 7, Cortex-M3; AVR (MegaAVR); ColdFire; HCS12, H8S; MicroBlaze; MSP430; PIC 18, 24, dsPIC; RDC, Renesas H8/S; x86; 8051, 8052), and ported to new ones often. It was the first realtime kernel available for production CORTEX-M3 processors. The FreeRTOS scheduler is small, simple, and can be configured for preemptive or cooperative operation. The kernel is made of only 3 or 4 C files, depending on whether coroutines are used or not. From Version 4, FreeRTOS lets programs use coroutines, and tasks. Coroutine are lightweight tasks that use little memory. To make source code readable, portable, and maintainable, it is done mostly in C, with a few assembler functions where vital. The download contains prepared configurations and demonstrations for every port, for fast program design. FreeRTOS.org has RTOS tutorials, details of RTOS design and performance comparison results on various processors. A spin off project exists called SafeRTOS, based on the FreeRTOS code base, but updated, documented, tested, and audited for IEC 61508 safety related uses. It is distributed under a GPL license modified so user's proprietary code remain closed source, while keeping the kernel open source, to aid use in commercial programs. FreeRTOS can be downloaded for free, without having to fill out a form or provide any information.