Vx Works

So you wanna develop for an overhyped, underpowered, proprietary OperatingSystem? Then welcome back to the good old dog-days of DOS, baby!

You get keen features such as:

Seriously, cough up the extra 64k of RAM that it'll require to run some flavor of embedded Linux simply to get real memory management and a mature and rich set of debugging and development tools. Your sanity will thank you.

Why not try a better alternative? RTEMS, a RealTimeOperatingSystem with not only much better performance than VxWorks, but also OpenSource development.

Uhh...I don't know what planet you are from, but on Earth VxWorks is the operating system for embedded applications. Those who build on a VxWorks platform are glad they did. Those that don't wish they had. You can go ahead and bad rap WindRiverSystems products all day long if you want, but take a look at whose OS gets second and third party support and whose doesn't. That line above about "no support from 3rd party tool vendors" is wrong. Furthermore, it is BS.

I've developed on VxWorks for many years and have never been glad about it.

Okay. That's too bad, but there are quite a few products out there that wouldn't exist at all if it weren't for VxWorks. Never mind WRS support, which is marginal at best. It's the OS that provides the base from which good products are made.

VxWorks indeed does have third party support. Trouble is, it's expensive, and rarely any better than what you get in the OpenSource community. WindRiverSystems seems to want to be the MicroSoft of the embedded systems world; if not for Linux they might well do so.

That said, VxWorks does what it sets out to do -- it's a fairly lightweight RTOS (compared to some) with the above-indicated architecture. Comparing it to MS-DOS is rather unfair; while it doesn't have multiple processes (with multiple address spaces and symbol tables) it does have true threads. And it does indeed have a flat memory model, which MessyDos does NOT have. (No such thing as a FarPointer? in VxWorks.)

A newer version of VxWorks, VxWorksAe?, does have a sophisticated memory protection model, arguably more sophisticated than the kernel/user process model found in Unix and its derivatives. (Whether it is better or not, I dunno; I haven't used VxWorks AE).

Depending on your application, Linux or a RealTimeUnix? might be a better OperatingSystem than VxWorks. Or you might be better of with a "picokernel" or nothing at all. However, VxWorks is a reasonable (though expensive) solution for many embedded systems. It certainly isn't a horrible product.

I've been working on EmbeddedSystems using VxWorks for six+ years now, and were I to specify the OS for a future product VxWorks would be in the running. (It wouldn't necessarily be the front runner, but it would be a candidate).

-- ScottJohnson

I tried C-Executive (a "real time" UNIX cut-down derivative) for a network interface card project I was on a few years ago. Ouch! I'll never hurt myself like that again.

The VxWorks system interface is sloppy: the folks at WindRiverSystems seem not to have heard of the ConstQualifier. Their NickelAndDime BusinessModel is a BigPain? (but supposedly fixed with AE).

In fairness to WindRiverSystems, much of the ConstIncorrectness is due to the C standard library being ConstIncorrect.

Is HardHatLinux? from MontaVista? as cool as it sounds, or am I letting my bigotry cloud my judgment? Oh for a RealTime OpenBsd!

Working on the SpaceShuttleMainEngine controller software gives me room to say RealProgrammersWriteTheirOwnOperatingSystems?. :-)

I put down "write OS" in the schedule. My boss didn't like it. So now we're stuck with VxWorks. :)

-- GregBacon

VxWorks is used to drive the Mars Exploration Rovers (no pun intended). It runs on a radiation-hardened version of the PowerPC chip. VxWorks also was the O/S on Pathfinder, which if you recall was a tremendous success, once they debugged and fixed (very remotely) a timer problem. -- StevenNewton

And a misconfiguration of a FLASH filesystem driver seems to be why the SpiritRover? is having trouble. See MarsSpiritSoftwareProblem

Thanks, but that's simply speculation at this point. Just by the way -- have you ever tried to figure out an Apache install? Oy! So please don't go pointing figures at VxWorks because somebody mis-configured the FLASH file system.

Anyway, why wasn't this tested sufficiently?

Although a lot of criticism exists around this OS, the fact is the it has been used since 1997 to deliver rovers to Mars. Probably it is GoodEnough.

-- DericoFilho


EditText of this page (last edited January 16, 2014) or FindPage with title or text search