[HN Gopher] Show HN: TinyOS - A minimalist RTOS for Cortex-M wri...
___________________________________________________________________
Show HN: TinyOS - A minimalist RTOS for Cortex-M written in C
Author : hpscript
Score : 26 points
Date : 2026-04-03 21:46 UTC (1 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| hpscript wrote:
| Hi HN,
|
| I've been working on a tiny RTOS as a personal project to better
| understand how operating systems and schedulers work internally.
|
| This project includes: - Basic task scheduler - Context switching
| - Simple memory management - Runs on (your target hardware or
| environment)
|
| Motivation: I wanted to learn OS internals by building everything
| from scratch rather than relying on existing frameworks.
|
| Challenges: - Implementing context switching correctly -
| Designing a minimal but usable scheduler - Keeping the codebase
| simple and readable
|
| I'd really appreciate feedback, especially on: - Architecture
| design - Scheduler implementation - Code structure
|
| GitHub: https://github.com/cmc-labo/tinyos-rtos
| bahmboo wrote:
| Impressive! Very complete on first glance. You might want to
| soften or qualify the RTOS statement so people focus on its
| compactness and low latency. As you are already seeing in the
| comments the RTOS aspect has a lot of opinions depending on
| what one is trying to accomplish.
| Yokohiii wrote:
| I have no practical insight on RTOS in general, if anyone bothers
| to give me a hint, please. From all what I've looked into, RTOS
| does mean to create software systems that are almost perfectly
| predictable and safe to execute. Predictable latency, runtime and
| memory usage, plus maybe side channels to do the unpredictable
| stuff in between. It's actual rocket science, as no systemic
| mistakes are allowed. The confusion is that this project doesn't
| mention any of it. Is it just hijacking of a fancy acronym, are
| there two worlds side by side or am I completely misled?
| avadodin wrote:
| You're probably thinking of a hard real-time RTOS with time
| slices and WCET constraints.
|
| For soft real-time, you basically only need low latency.
|
| Threads with priorities, synchronization primitives and some
| way of handling interrupts is generally considered good enough.
|
| From the description, this sounds like the kind of RTOS that
| runs most embedded RT applications currently if perhaps a bit
| heavier in features than the average with filesystem and
| networking support.
| jtrueb wrote:
| RTOS can be used a lot looser than you describe. Like a build
| system, scheduling, and interrupt framework that allows you to
| program an MCU like you describe. Zephyr RTOS and Free RTOS
| provide easy enough was to write code that uses blocking APIs
| but probably runs your code according to the timing constraints
| if you hold it right. As an alternative, you could write for
| "bare metal" and handle the control flow, scheduling,
| interrupting, etc. yourself. If you are writing to "random"
| addresses according to some datasheet to effect some real world
| change, you are probably reaching for an RTOS or bare metal
| unless you are writing OS driversn. If you look at the linux
| drivers, you will see a lot of similarities to the Zephyr RTOS
| drivers, but one of them is probably clocking in the MHz while
| the other in the GHz
| sublinear wrote:
| > It's actual rocket science, as no systemic mistakes are
| allowed
|
| Lots of everyday stuff is running on bare metal code that
| exceeds so-called "real time" requirements without an OS at
| all, and those programmers are definitely not rocket
| scientists! :)
| nofunsir wrote:
| What ever happened to mC/OS?
|
| Seemed both well documented and well suited to have taken over
| for the current MCU explosion. I almost never see anyone talk
| about it.
|
| Looks like it open-sourced in 2020.
|
| https://github.com/weston-embedded
| mc7alazoun wrote:
| I've learnt something new: RTOS stands for Real-Time Operating
| System. Thanks for sharing; your README is top-notch!
___________________________________________________________________
(page generated 2026-04-03 23:00 UTC)