
List of Open Source Real-Time Operating Systems - 11thEarlOfMar
https://www.osrtos.com/
======
scottlocklin
I'd be curious how many of these actually provide real time guarantees the way
QNX or VxWorks does. I think quite a few of them may simply be "embedded OS"
rather than RTOS.

------
bo1024
For others who didn't know what a RTOS was:

[https://en.wikipedia.org/wiki/Real-
time_operating_system](https://en.wikipedia.org/wiki/Real-
time_operating_system)

------
travisgriggs
Love this page. After wanting to try something other than FreeRTOS, and having
been frustrated with very public projects RIOT and Zephyr, I found TNEO from
this page and have used it successfully in multiple gadgets. Still very happy
with it.

~~~
peter_retief
Interesting, I am looking at Zephyr for BLE devices, so you say TNEO is a good
option?

~~~
makarhum
Comparing Zephyr and TNEO is like comparing apples and oranges. Zephyr is full
fledged operating system with networking etc while TNEO is more like basic
building blocks of os for those who want to implement everything themselves.

I can warmly recommend Zephyr for BLE usage. It is up to date with recent bt
specs and implementation is really solid.

~~~
peter_retief
Thanks, I had no idea how many options there are

------
rambojazz
Can Linux itself be compiled/built as a realtime OS? I mean without adding
additional software or hacking.

~~~
snvzz
The short answer is NO.

The long answer is that there's patchsets like linux-rt which give it better
"soft realtime" behaviour, but no hard realtime (deadline guarantees), thus
not actual realtime.

Linux-rt allows "coexistence" with "hard realtime", but it's basically a cop-
out: Just reserve a processor to run something else than Linux for hard
realtime tasks.

In reality, while linux-rt patchset (not mainline) suffices for most pro audio
work, Linux has over a million LoC of trusted code base running in supervisor
mode; It should not go anywhere near where anything requiring any kind of
assurance is running. This happens to be the case with tasks requiring hard
(i.e. actual) realtime, as hard realtime is all about guarantees.

My advice for hard realtime would be to look at seL4 and eChronos, both open
source as per OSI definition, and pick the one best suited to your design.

~~~
tyingq
For some use cases, a Beaglebone black can allow for "real" real time while
running Linux. It has two microcontrollers (PRU) that share memory with the
main ARM cores. So if the real time part can be satisfied by the PRU, it's a
neat solution.

~~~
snvzz
Same idea as linux-rt "hard realtime": Reserve a processor (doesn't matter if
it's the same chip or architecture or not).

The issue with this is precisely the shared memory. If Linux can interfere
with the PRU, then there's no assurance. This breaks hard realtime: No
assurance that the system will react timely in a certain way to a certain
event.

~~~
tyingq
It does work well enough to, for example, drive large LED display boards,
emulate old video cards, processing audio, etc. Things that don't work well
with traditional soft rt-linux. I'm sure, as you say, that it isn't good for
all use cases.

~~~
snvzz
Yes, it has its uses but ultimately it is not hard realtime.

Hard realtime is all about guaranteeing deadlines. If Linux (which is not and
will never be high assurance due to its TCB size) can interfere with
guaranteeing deadlines, then it's only soft realtime.

------
equalunique
One of the listed ones, ChibiOS, is in the QMK firmware I use on my custom
mechanical keyboards: [https://docs.qmk.fm/#/](https://docs.qmk.fm/#/)

------
rurban
So many of the best are missing. Eg from the L4 family with widest adoption
and best HW support only the smallest SeL4 is present, but not OKL4, L4Re,
Fiasco, L4Ka::Pistachio, L4/MIPS, WrmOS, Genode.

------
BaalZebub
Isn't TempleOS RTOS?

~~~
monocasa
It's too bad you're being downvoted. It's a legitimate question.

Looking at the source, a case could be made either way IMO. On one hand the
scheduler doesn't have priorities, but on the other, you have to explicitly
pin tasks to cores so you could actually guarantee real time behavior pretty
easily on a fixed platform...

------
magnetic
The first entry FreeRTOS shows MIT as license, but says it's distributed as
GPL in the description. I don't know where they got the GPL part from: it's
not mentioned anywhere at
[https://www.freertos.org/a00114.html](https://www.freertos.org/a00114.html)

~~~
kqr2
From
[https://aws.amazon.com/freertos/pricing/](https://aws.amazon.com/freertos/pricing/)
:

The Amazon FreeRTOS operating system and software libraries are released under
the MIT open source license, a permissive license with limited restrictions on
reuse.

------
stephen_g
Nice, I didn’t know about a lot of these. We’ve used ChibiOS in a few of our
products, it’s really great.

------
snvzz
What's the criteria the list is sorted by? It seems completely arbitrary or
unsorted from a glance.

------
jhallenworld
One way to deal with the many available operating systems is to use OSAL. It's
an abstraction layer for embedded OS (and POSIX). Admittedly I have mixed
feelings about it since it creates work when debugging in a new OS: you need
to trace which OS call OSAL is using.

~~~
pantalaimon
But the RTOS is already an abstraction layer around the hardware, how would
adding another abstraction possibly help?

It's not like you often find yourself in the situation where you want to run
the same application on multiple RTOSes, it's usually way too specific to the
device.

~~~
naasking
> It's not like you often find yourself in the situation where you want to run
> the same application on multiple RTOSes, it's usually way too specific to
> the device

Perhaps that's the point: make your program more portable across different
hardware that may only support specific OSes.

------
jhallenworld
Is TI-RTOS really not in development? It's the OS TI gives you when you
download their tools.

TI is weird, they have their own C compiler.

~~~
monocasa
What was the licence? Did you have to run it on TI parts or something?

~~~
jhallenworld
BSD license according to this: [http://www.ti.com/tool/TI-RTOS-
MCU#descriptionArea](http://www.ti.com/tool/TI-RTOS-MCU#descriptionArea)

It does compile with gcc, but I don't trust it with gcc. At least with TIVA
TM4C processors, it would not boot. I suspect they don't test with gcc as well
as with their own compiler.

------
anta40
I want to study OS dev. Linux seems to be pretty complicated. Which one from
the list do you folks recommend to study?

------
gjsman-1000
Where is ThreadX? (ThreadX runs on the RPi GPU cores)

~~~
tw04
ThreadX isn't open source.

