To read all comments associated with this story, please click here.
I am fairly certain that VxWorks is not a micro-kernel based system. It's one of the things that QNX brags about as being superior to VxWorks; whether that's true or not is open to debate, and VxWorks has considerably higher market share in the embedded space. One thing that always disturbed me about VxWorks is that it uses global variables as REALLY global variables. As in every program you run on the system has access to all the global variables of all the others. Naming conflicts can be a disaster. I much prefer message passing, as is native to QNX and OSE.
It used to be true several years ago in VxWorks that all global variables were global, but that was when you could only have kernel applications. Now with Real-Time Processes (RTPs) added, each address space can have its own global variables. They can be of the same name as in other RTPs (or in the kernel) if desired (good for spawning multiple copies of an RTP from one copy in flash to differently named tasks). In multi-core VxWorks SMP, the Memory Management Unit protects all of the data and code in RTPs not intentionally shared. Data can be shared in Shared Data Regions and code in Shared Libraries.





Member since:
2005-07-08
From what I can see from the VxWorks documentation, it also belongs to the successful micro-kernel family of operating systems like QNX.
It is also one of the embedded operating systems that has Ada as part of the standard set of native supported languages.
As for the Pathfinder, even if it was written in C, most likely JPL guys were following their security guidelines to write safe C code.
http://lars-lab.jpl.nasa.gov/JPL_Coding_Standard_C.pdf