So, you are 93 million miles from home and you get the infamous ‘Blue Screen Of Death.’ Who are you going to call?

Microsoft will put you on hold, ask for your credit card number, then tell you to hit the reset button. That is not an ideal solution, and certainly a solution that NASA would not be happy with when they are dealing with objects in far places.

Every aspect of having a computer in space is tough. Temperatures vary from the searing hot to colder than a stare from your Mother in Law! What happens when something untoward occurs? Do you just stop working? Wind River is one of the companies that partners with NASA on many projects. Wind River is the ‘brainiac’ company that supplies the software to run the computers on the Mars rovers, the two orbiting Mars satellites, and the recently-landed Phoenix Explorer.

I have always loved space exploration, back in the early 70’s I was one of the few people that got to see some real Moon dust. I worked for a research lab and we got a teaspoon of the stuff!

Mars is a lot further away than the Moon, and Mars requires a different approach, for at least the next decade, maybe two decades, we can only explore the planet vicariously through remote vehicles. Creating software to run these remote machines is tough. The variables are many, what happens if you lose contact? How will it know what to do? What happens if the computer crashes? Or what happens if the software enters a ‘deadly embrace’, (an endless loop of instructions)? None of these things would be conducive to longevity of the project.

Mike Deliman of Wind River agreed to an interview, I could not resist (I am a geek at heart, and I always wanted to work for NASA).

Can you tell us a little about Wind River, and how the company first became involved with NASA?

I’m also a space and science geek at heart, and working with the various NASA contract offices has been something of a dream come true. I’ve been with Wind River Systems since April of 1991, and even then we were involved with NASA. Our operating system has been used in many of NASA’s testing labs to control a variety of devices which were used to test parts of various projects going into space.

Wind River was founded 1981, and our work with NASA began shortly thereafter. Wind River is the largest and most experienced device software company in the world. We’re based in Alameda, California (northern California just outside of San Francisco), and have 1100+ employees across 15 offices worldwide.

Wind River is the industry leader in device software optimization (DSO), a methodology that enables companies to develop and run device software at a faster, more reliable rate and at a lower cost. DSO encompasses enterprise-wide development processes, and benefits include a standardization of technologies, tools and processes, reuse of intellectual property and a broad ecosystem of hardware and software partners.

Computers are cranky critters, you never know what the operator is going to do. How do you safe guard the OS?

This OS isn’t like your typical desktop OS. It’s designed to be used to control sensors and machinery, to automate robots and to react to the real-world as the real-world happens. This OS is used by our customers to create products for their customers, the end products are sometimes “life- and mission-critical” systems. Even though the OS does have facilities to help implement safeguards and security, it is up to the manufacturers of those products to design application specific safeguards into their products and test them. The OS can use facilities of modern CPUs to protect the “text” and “data” segments from inappropriate access.

In most cases, operators will have limited access to the VxWorks OS itself, and will not even know it’s there. For instance, do you know what is inside your broadband (cable/DSL) modem? You probably know it has a built-in “web-site” you can configure it with. Somewhere under that web site is an embedded OS, and in many cases, it’s VxWorks.

Your OS is ’embedded’ (on a chip) can you send patches to it if you find a problem?

Embedded really means both that it’s small/compact enough to fit in a ROM chip, but also that the computer can be embedded into things that don’t look like computers. For instance, the typical new car might have dozens of computers embedded in it to control everything from the brakes to the infotainment system. Your new HDTV probably has a small herd of special-purpose CPUs running various programs. There are several products we have that can provide managed updates of such devices, if needed, even while deployed in the field.

In the case of the Mars Rovers and many other space-based platforms, the scientists at JPL/NASA have created their own methods that use VxWorks (OS) facilities to handle patches for the OS and the applications. Though we do have methods for updating the OS and applications, managing patches in space is a larger problem domain. We’re more than happy to help implement in-situ patch methods, even for extreme applications that require unique solutions specific to hardware in use or the conditions they are deployed in.

I was Googling and it looks like your OS is pretty popular with the space folks, how many remote objects do you run?

VxWorks is used in unmanned aircraft (UAVs), unmanned underwater vehicles (ROVs), autonomous rovers (terrestrial and Martian), satellites (in orbit over Earth and other planets) and autonomous deep space probes (For example, Deep Impact on it’s new EPOXI missions, and Stardust re-tasked on its new deep-space missions). Focusing on Mars alone, VxWorks runs on three robots on the surface of the planet and two robots in orbit. VxWorks has been used in deep space probes, Mars probes, Lunar probes, probes to Mercury, and perhaps dozens of satellites over Earth. It’s also been deployed in literally millions of devices on Earth.

As I understand it VwWorks is a Unix derivative. In an article I inadvertently said it was a version of Linux, and got beaten senseless by some readers. What is the difference between Unix and Linux?

I’m sure someone could write volumes about the differences between the dominant flavors of UNIX and Linux. To me, the basic difference is that UNIX flavors are owned, maintained and licensed by manufacturers, with proprietary enhancements and specific kernels (AT&T System 5, BSD, MACH, etc). These flavors of UNIX may be tailored to run on specific hardware, not just “any old PC,” and may take advantage of features of that hardware to provide specific services. UNIX implementations have been evolving and have been maintained since the 1970’s, where Linux is relatively new by comparison. UNIX and the standards it is written to adhere to have had a lot of time to evolve and a lot of run-time to catch bugs; many UNIX platforms are very mature and stable.

Linux is open source and the OS is maintained by the Linux community. The open community strives to make Linux fairly generic, able to run on just about any PC platform and many other non-PC based platforms (PowerPC chips, for instance). Linux has benefited from the maturity of UNIX OS, and the many standards for Operating Systems (like UNIX) that have evolved.

Most people are familiar with the ubiquitous Microsoft Windows, which when you look at it is big, fat and bloated. You need huge amounts of processing power, and huge amounts of disk space and RAM. Clearly that is not the case with VxWorks, what are the basic requirements for it?

VxWorks kernel and OS can be built to fit in less than half a Megabyte of boot ROM space, depending on the options included in the OS. It can run out of that ROM, using minimal RAM (perhaps less than a megabyte). You can fit the OS, an application and the TCP networking stack in less space than a floppy disk, and have space left over.

Is Wind River involved in the day-to-day operations of the various space-based applications?

Where it comes to the applications at hand, our customers are the experts in their field. We are the experts where it comes to VxWorks and helping you fit it to your application needs. We’re usually involved in the design and implementation phases on day-to-day and as-needed basis. We’re also available for as-needed and emergency expert support once the projects are deployed. We have assisted with emergency debug and “tiger” teams before deployment and during the operation of some missions.

In other words, no, we aren’t involved in the nominal day-to-day operations of any craft once they’ve been deployed. I do follow the progress of many of our projects in space out of personal interest. I’m very proud of the results of these team efforts, and amazed at what our customers can do with VxWorks. Soft Landing on Mars!? Incredible!

The needs of a satellite are somewhat different from the Mars rovers, and indeed the newly-landed Phoenix craft. Does each application use a different version of VxWorks, or are the different requirements satisfied at the ‘programming’ level?

This is a complex issue. In all, right now, between the five robots on and around Mars, there are four versions of VxWorks in use. From the Wind River side, we maintain a set of functions with expected behaviors, called an Application Programming Interface, that remains standard from release to release. This allows the engineers at NASA to re-use code from earlier missions that they know performs as expected. It also allows them to benefit from fixes and enhancements that are added into newer releases of the OS as part of our ongoing maintenance. So even though there are several releases of VxWorks deployed on or around Mars, they are all based on a common programming interface available to all of our customers.

There are, however, some bits of code written specifically to allow VxWorks to run on the Rad6000 processor boards. But the short answer would be – for the most part we supply a standard operating system, and the customers add their application code and configure our OS to fit their unique needs. Many of the programming requirements are satisfied by our customer’s application engineering teams. Wind River Services is available to assist with application design and engineering as needed.

While having an operating system in space is high profile, and something to be very proud of, I assume that it is also used for more lowly Earth-based applications. What kinds of industry use it?

VxWorks is so extremely flexible and powerful that it’s used in everything from sophisticated autonomous space robots to MP3 players smaller than a permanent marker. There almost isn’t an industry that doesn’t have some application well-suited for VxWorks to handle. In addition to a general purpose VxWorks platform, Wind River offers the industry-specific VxWorks platforms for “under the hood” automotive, automotive infotainment, industrial devices and network equipment. We’ve all encountered VxWorks without knowing about it, whether its under the hood of your car, in an infotainment device, or controlling mission-critical systems on the commercial airplane you’re on. VxWorks is truly everywhere. It’s as close to an industry standard as you can get and NASA, by using it in space – the final frontier – is the ultimate proof point of its durability and value.

Thanks so much for taking time to talk with us. And everyone here at Blogger News wishes you and your company every success.

Thank you, it’s been a pleasure.

Now this is what I call a company with a mission! They are low key, but very high profile. I wonder if they need a reviewer? Oh, and if you want to check out their web site they have all sorts of neat stuff.

Simon Barrett

Be Sociable, Share!