3 ms·
Is there a good libre real-time OS you would recommend over it?
by eikenberry 2y ago
Is there a good libre real-time OS you would recommend over it?
- serf 2y agochibios is great, but I haven't followed their culture or licensing in a few years now. my experiences then would lead me to recommend it, though.
- monocasa 2y agoChibiOS doesn't really compete in the same space as QNX. It's a single address space executive that's more like FreeRTOS than QNX.
- MisterTea 2y agoRTEMS is one and there is also eCOS. RTEMS has flown in space a few times so it is proven. Forgot to mention: the neat part of RTEMS is it allows one to sort of turn a Unix program into a bare metal program.
- gerdesj 2y agoWhy do RTEMS and eCOS trump, say, Linux? Linux on a RPi has also famously flown (really!) in space. It's all very well asserting something but a bit more chat would be nice. I'm not sure what "turn a Unix program into a bare metal program." means.
- fragmede 2y agoSay all your program does is read some sensors via gpio, save those readings in ram, do a bit of math on that state, then set some other gpio pins, and that's all the entire system does. when it turns on, it should jump right into doing that and nothing else. It may be easier to write that on a full sized Linux system, but come time to deploy it, all that Linux code that isn't being used is a liability for bugs and unexpected behavior to crop up. One approach is to slim down Linux to avoid that (eg removing systemd, esp for systems that don't have enough ram to run it), but another approach would be to just use something less complicated than Linux. It would suck to get to space only to find that something had messed up permissions on the gpio pins again so your satellite didn't deploy and now you've wasted a launch. If there's no permissions system to mess up, that can't go wrong. As far as bare metal, I presume it means to port a Unix program which has all sorts of assumptions about running on a Unix operating system, to an OS that's not one, with simplified models for a lot of things, and for the system to reliably run that program on boot and not do anything unecessary. Like run cups.
- PaulHoule 2y agoFor some tasks you don't need even need an OS and that competes with QNX. For instance I do hobby experiments with persistence of vision displays on AVR-8 and assembly language on the bare metal is so simple but it is simple hardware and simple software, bigger jobs need something more.
- adrian_b 2y agoAs it has been already said, with RTEMS and other similar real-time operating systems it is easy to predict the worst case time for the handling of any event. This is absolutely necessary when controlling many kinds of hardware devices. This is completely impossible with standard Linux. Real-time Linux might offer some guarantees, but I am pretty sure that they are rather soft. Linux is already too big to be easy to understand and audit in order to be certain that you really know which will be the worst case. With a simple OS like RTEMS, a competent programmer can become an expert in its internals in a month or so, and then it is easy to understand what exactly will happen in any circumstance. I have used in the past some commercial real-time operating systems, like pSOS and VxWorks, but the free RTEMS has been much better than those, especially because being open-source it allows a much deeper customization than any proprietary solution.
- ranger_danger 2y agoI believe seL4 is formally verified.
- indolering 2y agoVerified worst case execution time analysis. So instead of just hanging on it until it achieves the desired responsiveness (like QNX and rt Linux) Sel4 can actually back up its claim.
- nickpsecurity 2y agoIn that case, you’re just hanging on the specs, prover, compiler, and other dependencies. Things most developers can’t even begin to verify. That also assumes the hardware works which isn’t safe if talking about cosmic rays. Empirical testing of “verified” software often found errors, too. High-assurance, security certification used to require formal methods, thorough testing of code, review of anrtifacts, and pen testing by independent team. We should do that today. In this case, you’d do white box and black box testing of the WCETS of seL4.