TinyOS is an ultra-lightweight real-time operating system targeting resource-constrained IoT and embedded devices, with a kernel footprint under 10 KB and 2 KB minimum RAM. It features preemptive priority-based scheduling with 256 priority levels, O(1) bitmap-based priority lookup, and priority inheritance. Beyond the kernel, it includes synchronization primitives (mutex, semaphore, condition variables, event groups, message queues), software timers, a fixed-block memory allocator, a VT100 interactive shell with 19 built-in commands, a POSIX-like filesystem with wear levelling, a full network stack (IPv4, TCP/UDP, HTTP, DNS), TLS 1.2/1.3 and DTLS 1.2 via mbedTLS, full MQTT 3.1.1 with QoS 0/1/2 and offline queuing, CoAP RFC 7252, OTA A/B partition updates, watchdog support, and power management modes. Supported hardware includes ARM Cortex-M (M0 through M7), RISC-V RV32I, and experimental AVR. Context switch times range from ~1–2 μs depending on architecture.

11m read timeFrom github.com
Post cover image
Table of contents
FeaturesSupported HardwareQuick StartAPI OverviewConfigurationProject StructurePerformanceLicense

Sort: