30 ms·
List of Open Source Real-Time Operating Systems
- travisgriggs 8y agoLove 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 8y agoInteresting, I am looking at Zephyr for BLE devices, so you say TNEO is a good option?
- makarhum 8y agoComparing 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 8y agoThanks, I had no idea how many options there are
- pantalaimon 8y agoWhat have been your problems with RIOT and Zephyr? I'm currently evaluating what to use for the next project, any insight would be good.
- rambojazz 8y agoCan Linux itself be compiled/built as a realtime OS? I mean without adding additional software or hacking.
- gmueckl 8y agoThere are patchsets out there that add realtime capabilities to the kernel. But as far as I know none of them is in the mainline. I am also not confident that the kernel can be made truly hard realtime capable without major rewrites. The best bet is probably RTLinux which runs the entire Linux kernel as one of the processes managed by a hard realtime kernel.
- snvzz 8y agoLinux isolated through virtualization under a microkernel is the way to go if running Linux in the same hardware is actually needed at all. The realtime tasks would simply run outside of Linux, shielded from Linux. Genode's virtualization (particularly when paired with the excellent seL4 microkernel) is a good way to achieve that. If Linux can interfere with the "hard realtime" task, then there can be no assurance (of meeting hard deadlines) and it's thus not a solution providing hard realtime.
- magnat 8y agoWithout any changes, you have SCHED_FIFO and SCHED_RR [1] schedulers, but despite the name, they are not really suitable for proper real-time tasks. Closest to real time on vanilla Linux is SCHED_FIFO task - as long as there is no other task with same or greater priority, your task don't yield, call syscalls or cause page fault, it won't be preempted. When it does yield (one way or the other), there are no guarantees when it's going to be rescheduled, which is severely limiting for considering it as RT. [1] http://man7.org/linux/man-pages/man7/sched.7.html http://man7.org/linux/man-pages/man7/sched.7.html
- pjmlp 8y agoNot at all, at it does not meet the realtime certifications for deployment into production, like for example ISO 26262. https://en.wikipedia.org/wiki/ISO_26262 https://en.wikipedia.org/wiki/ISO_26262 https://www.highintegritysystems.com/ https://www.highintegritysystems.com/
- javert 8y agoAbsolutely. https://rt.wiki.kernel.org/index.php/Main_Page https://rt.wiki.kernel.org/index.php/Main_Page This is the wiki for the PREEMPT_RT patchset. Parts of this have been moving into mainline for years, bringing the regular kernel closer and closer to real-time. However, there are some real-time features that will never be appropriate for mainline, so you can get them through this patchset. Some of the "famous" kernel devs are also very active in PREEMPT-RT; it's as official as you can get short of being in the mainline kernel. For lots of uses, the regular kernel is already realtime enough.
- stephen_g 8y agoNice, I didn’t know about a lot of these. We’ve used ChibiOS in a few of our products, it’s really great.
- xparco 8y agoWhen would you need a real time OS?
- bo1024 8y agoFor 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
- snvzz 8y agoWhat's the criteria the list is sorted by? It seems completely arbitrary or unsorted from a glance.
- BaalZebub 8y agoIsn't TempleOS RTOS?
- monocasa 8y agoIt'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...
- jhallenworld 8y agoIs 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.
- applesvsoranges 8y agoYeah. I used TI-RTOS a couple of years ago for some work and the whole experience was very different. The most unique part was that the RTOS came bundled with a development GUI integrated into the IDE where you could create threads, mailboxes and other such RTOS primitives. I don't think I liked using it very much though. Surprised to see that they killed the project.
- monocasa 8y agoWhat was the licence? Did you have to run it on TI parts or something?
- jhallenworld 8y agoBSD 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.
- jhallenworld 8y agoOne 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 8y agoBut 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 8y ago> 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.
- noselasd 8y agoOSAL is written by NASA which do have that situation - NASA have systems they want to run on both Vxworks and RTEMS.
- gjsman-1000 8y agoWhere is ThreadX? (ThreadX runs on the RPi GPU cores)
- tw04 8y agoThreadX isn't open source.
- scottlocklin 8y agoI'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.
- magnetic 8y agoThe 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 8y agoFrom 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.
- tesseract 8y agoFreeRTOS used to be dual-licensed GPL (with an LGPL-esque linking exception) and commercial. Amazon acquired the copyright in 2017 and relicensed FreeRTOS under the MIT license.
- rurban 8y agoSo 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.
- anta40 8y agoI want to study OS dev. Linux seems to be pretty complicated. Which one from the list do you folks recommend to study?
- equalunique 8y agoOne 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/#/