3 ms·
That's actually very weird. Wouldn't having an OS like Linux make it so you can't guarantee computation times and guarantee exactly when processes will start an
by cop359 15y ago
That's actually very weird. Wouldn't having an OS like Linux make it so you can't guarantee computation times and guarantee exactly when processes will start and end?
I don't really know much about OS's but I'd write control systems in a pure language compiled directly to machine code with no OS. That way you would have certain guarantees of execution and auditing the code would be significantly cheaper. I remember hearing that auditing code for satellites is outrageously expensive because most languages have side effects. So it's thousands and thousands of dollars per line of code to guarantee that it'll do what it says it will do regardless of execution path.
- tobtoh 15y agoI may be wrong, but my understanding is that custom control systems are used generally when you have physical restraints of some sort (limited memory, computational power) or require the speed. I'd imagine for the purposes of SpaceX though, they don't have those restrictions and so they make huge gains by using an extremely well known "off-the-shelf" OS where they can easily source programmers. The fact that the OS is (relatively) well understood would also possibly mean it's easier to test. All of which means that for minimal trade-off in reliability, they make large gains in development time and cost.
- gajomi 15y agoI agree it sounds weird at first. On second thought, whether or not it is so strange depends on one means by "flight computers". For example, for something like logging or pre-flight checks the exact timing would matter that much, and it would be convenient to have a full blown OS. When timing matters (e.g. flight control?), I imagine that one could set up controllers (with their own CPUs and straight to the metal programming of the sort you described) as devices that accept commands from and stream data to the primary flight computer. This is %100 speculation. I would be curious to know what kind of temporal precision is needed for rocket control, since if it is a sloppy enough process then all this worrying about timing it for nought.
- asharp 15y agoThere are hard realtime patches to linux and have been since 2.4 I'd imagine that there would be some previously tested (say in aerospace) linux derivative that they'd be building off. To be perfectly honest though, I don't know why they arn't using one of the few really good commercial hard real time unix kernels that you use for, say, UAV's and such.
- kristoffer 15y agoI don't see the point of using something as complex as a unix kernel for an embedded real time system. There exists an open source RTOS with a lot of space flight history called RTEMS, www.rtems.org. That might be a good choice. Also I'm not sure they actually are using Linux to control the rockets since that would pretty much make them impossible to qualify for human space travel (i.e. DO-178B qualification). EDIT: Looking at their jobs site it seems they are using VxWorks. This is more reasonable ...