Linux On Mars
When NASA needs an operating system for a Mars lander does it go knocking on Bill Gates’ door? The answer is no. The newly arrived on the planet Phoenix Lander is powered by a variation of Linux running on a specially hardened CPU and motherboard produced by IBM.
The CPU may not sound very exciting, and certainly would not be of interest to the average computer gamer. The Rad6000 CPU is a RISC (Reduced Instruction Set CPU) that has been hardened to withstand the ravages of radiation in space. Built by IBM it clocks in at a screaming 33mhz. For those of you not familiar with the gobeldy gook that computer geeks espouse, 33mhz is about equivalent to the old and very obsolete Intel 386 processor that was all the rage a decade ago. You certainly could not run Microsoft Vista with this kind of speed.
As far as RAM is concerned NASA doesn’t need a lot, it is rumored that a scant 128 megabytes is all they need.
When it comes to software NASA need something that is bullet proof, and bullet proof software is what NASA is great at. It is not often that they make mistakes. At the heart of the Phoenix Lander is a variant of Linux, VxWorks, this is an embedded Operating System (that means it lives on a chip). It is designed in such a way that you don’t get the dreaded Microsoft ‘Blue Screen Of Death’, thats because it is pretty damn difficult to reach out to Mars and reboot the lander after the Operating System crashes. In the event of a serious problem VxWorks will reboot into a ’safe mode’, and wait for the controllers on earth to reactivate it, or send a patch for the problem.
The Phoenix Lander is not autonomous, it needs to be told what to do, and when to do it, but because of the huge distances involved there is a 20 minute delay from the time a command is sent from Earth and the time it is received on Mars. For that reason alone it is necessary for the software to have inbuilt ’self preservation’ tendencies.
NASA gets around the 20 minute time lag by sending a whole days worth of tasks at one time, I guess you could call it a daily ‘To Do’ list. This list is in the form of computer code written in a programming language called ‘C’. The NASA programmers and engineers sent approximately 1000 to 1500 instructions to the lander every day. One mistake in the code results in a day lost, or even worse damage to the equipment on the lander. I have been in the computer industry for over 30 years, and the industry standard for developing computer code is that the average programmer can write and test about 10 lines of code a day. In layman’s terms, if your computer program has 100 steps in it, it will take you 10 days to write and test it. NASA are doing what a regular programmer would take nearly 5 months to achieve in 24 hours!
I have nothing but respect for these people. Great job guys!
Simon Barrett
























































andydread responded on 22 Jun 2008 at 1:41 pm #
Sorry to bust the bubble there but VXWorks is a proprietary operating system from
WindRiver. The same people that said “Linux is rubbish” then spun around and started
offering their own version of Linux. VXWorks however is not Linux.
Gordon Haverland responded on 22 Jun 2008 at 3:18 pm #
English Police stopping by.
It’s MHz, not mhz.
The last radiation hard chip that I knew of specifically (I am sure there were others), was a 6502 version (same as the old Apple II I believe).
Foo responded on 22 Jun 2008 at 3:31 pm #
VxWorks is NOT linux or linux-based. These are completely separate OS’s. VxWorks is a proprietary, closed-source product widely used in control (particularly aerospace) applications. I’ve been using Linux since around kernel 1.2, but this kind of mindless fanboy-ism really cuts at the credibility of the user base.
Peter responded on 22 Jun 2008 at 3:43 pm #
Correct me if I’m wrong, but I don’t think VxWorks has any connection to Linux. I don’t think it is a Linux variant. VxWorks is member of the UNIX family, a real-time variant, Linux is such a member as well, that is about the only connection there is. ‘UNIX on Mars’ the title should read, IMO.
Luc Lalonde responded on 22 Jun 2008 at 3:51 pm #
Hello Simon,
VxWorks is not a variant of Linux… Please explain what you mean!
There exists a RTOS based Linux product… but it’s not VxWorks. And there is no code sharing or lineage that links the two products.
Please correct you article.
nope responded on 22 Jun 2008 at 4:09 pm #
You’re wrong (on a lot of points). To keep it to the point, VxWorks is _not_ a variant of Linux.
Jan responded on 22 Jun 2008 at 4:18 pm #
Sorry, but VxWorks is proprietary realtime OS, having nothing whatsoever with Linux. Do better research, next time.
roger responded on 22 Jun 2008 at 4:20 pm #
I dont think the article is accurate. VxWorks looks completely unrelated to linux except that it is unix-like.
norbert responded on 22 Jun 2008 at 4:50 pm #
Whoaa, so many errors in so few lines, you don’t work at NASA do you?
1- VxWorks is NOT a variant of Linux. An easy way to tell is that VxWork is proprietary (hence can not derived from a GPL linux). Another way to tell is that VxWorks was first released in 1985 that is 6 years before the first line of Linux was ever written. (or maybe you work for SCO and have a very personal definition of ‘a variant of’)
2. the 30386 was certainly not the rage in 1998 (a decade ago), in 1998 the ‘rage’ was something like a Pentium II clocked a 333Mhz. Oh well, you were just of by an order of magnitude.
3. Rad6000 is a single-board computer that include a cpu AND 128MB of ram. So it is not a ‘rumor’, it’s the specs and it’s what NASA has on its boards. And that is not ’scant’ either: back in the day where 33MHz processors were in fashion, 128MB of memory was an insane amount. Most machine at the time did not have that in Hard Drive capacity.
4. you’ve got 30 engineers producing 1000-1500 instructions a day that is 30 to 50 instruction a day per capita… That is 3 to 5 time above the unsubstanciated average of 10 lines/dat per capita, but that is discounting the years of prep-work. In other words, they do a nice work but it has nothing really that extraordinary. Furthermore the 10 lines a day claims is quite low, and certainly does not apply to a small select group like that.
As an example, that one can readily verify. linux-0.01 contained 8830 lines of code (as counted by sloccount by David Wheeler). and that was published at then end of August 1991,that is a bit less than 8 month after Linus actually bought the machine to program on it - so some of that time was spend doing other thing than coding linux, still - according to your so called ‘industry-standard’ that should have taken him 3.5 years … BTW, David Wheelers’s SLOCCount evaluate that effort to 23.63 man-month, using the COCOMO model, which seems to place the number at about 18 lines a day. Oh well, at least this time you have the order of magnitude right!
5. “This list is in the form of computer code written in a programming language called ‘C’”. That one is concievably true, but that would be quite odd and unlikely. and in the context of the rest of the ‘article’ I would ask for a bit more substanciation.
6. “NASA are doing what a regular programmer would take nearly 5 months to achieve in 24 hours!” That is Fox news reporting. NASA use 30 engineers and most certainly an awful lot of other support staff to do that. So the ‘5 months alone in your garage’ metric make for a good effect, but is meaningless.
“I have been in the computer industry for over 30 years,” Whoaa, it doesn’t show.
David F. Skoll responded on 22 Jun 2008 at 5:12 pm #
This article is completely off the mark. VxWorks is **NOT** a variant of Linux. It’s a completely different operating system.
voidlogic responded on 22 Jun 2008 at 5:44 pm #
10 lines of code a day? That doesn’t seem right, for me and the people on my team it is more like 100 (C/Java). And I’m not arrogant enough to think that we are 10x better than average. If testing is taking up all your time maybe its time to throw some unit tests into the mix.
LAWL responded on 22 Jun 2008 at 5:58 pm #
Average programmer does 10 lines a day?
hah bullshit.
someone out there responded on 22 Jun 2008 at 6:04 pm #
Dood VxWorks is not a varient of linux. It’s an entirely independently developed operating system. thought you should know.
steven responded on 22 Jun 2008 at 7:13 pm #
An average programmer writes & test ONLY 10 lines of code per day??? I can hardly believe this… I used to write hundreds…
10 lines is a short and simple function / procedure / whatever…
Patric Conant responded on 22 Jun 2008 at 7:24 pm #
386s were all the rage two decades ago,and VxWorks is not a Linux variant.
Smither responded on 22 Jun 2008 at 8:19 pm #
VxWorks is not linux or linux based. It’s Unix-like which means it’s similar to linux, bsd and all the rest.
Zartan responded on 22 Jun 2008 at 9:59 pm #
Since when is VxWorks a Linux variant? It is a commercial RTOS. The article’s link to Wikipedia mentions that VxWorks is _Unix-like_ and POSIX compliant. Sure, Linux is too, but that doesn’t mean a common code ancestry. Heck, all the commercial Unixes also qualify and they don’t share code with Linux either. Same for QNX’s Neutrino which has a microkernel-like core.
If anything VxWorks looks to be similar from VRTX, a RTOS. (See the history section in the Wikipedia article.)
Neo responded on 22 Jun 2008 at 10:09 pm #
i think a stripped down version of Win98SE would probably do a good job. then again….
asdf fdsa responded on 22 Jun 2008 at 10:47 pm #
Sorry, but that’s just wrong. VxWorks is not a variant of Linux at all.
David F. Skoll responded on 23 Jun 2008 at 12:56 am #
VxWorks is not Linux. I posted earlier but my comment never appeared. This story is utterly wrong.
Robert Collier responded on 23 Jun 2008 at 8:15 am #
VxWORKS is not a variant of Linux, its a developed from the ground up OS.
FPCat responded on 23 Jun 2008 at 1:22 pm #
VxWorks != Linux…. Did you even read the wikipedia article you linked to?
Wind River does supply Linux to customers, but VxWorks has been around longer than linux!
Alan responded on 23 Jun 2008 at 3:09 pm #
I hate to burst the bubble, but VxWorks != Linux. It’s a Unix-like POSIX OS, but (though I’m no expert) AFAICT it has no relationship codewise to Linux.
Getnikar Antakoff responded on 26 Jun 2008 at 12:14 pm #
“I have been in the computer industry for over 30 years”
What, did you deliver the pizza’s into the building?