- Preemptive or cooperative scheduling (depending on your configuration)
- Can be tickless for battery-powered application
- Binary and counting semaphores
- Mutexes with priority ceiling or priority inheritance
- Queues for thread-safe communication
- Flags for waiting on multiple events
- Memory blocks for dynamic memory allocation
- Software timers with callback and priority
- Software interrupts (signal) with callback and priority
- Real-time module compatible with UNIX timestamp
- Software alarms with callback
- No limits on number of nOS objects, except your available memory
- Tiny footprint (as low as 1KB ROM/few bytes of RAM)
- Fully configurable (ROM and RAM)
- Open source, royalty free
- Win32 and Linux simulator available