From the obtuse press release:
• First and only real-time operating system to support C++17, Boost, Python, and Rust collection of technologies, along with continued support for languages like Ada and SPARK
• New LLVM-based infrastructure that enables support for a broad set of modern and productive tools and frameworks
• New open source board support packages (BSPs) such as Raspberry Pi and TI Sitara AM65x for quick prototyping and flexibility of choice
• OpenSSL 1.1.1 for the most up-to-date cryptography libraries
Very informative headline, I know, but VxWorks isn’t exactly a very approachable topic, so I had to make do.
We used VxWorks about 20 years ago on single board computers plugged into VME crates. It was required for critical, but not particularly demanding, realtime performance. I never programmed for it, but all our source code had lines like “#ifdef VXWORKS …” As far as I remember it worked fine, no better or worse than our other operating systems. A product that filled a niche. How big that niche is today I don’t know.
Personally, I wouldn’t be very interested in VxWorks due to it being proprietary, and I’ve decided long ago that proprietary platforms do more harm than good.
But I am interested in realtime capabilities. I’ve used embeded linux SBCs for realtime applications (like directly controlling GPIO pins attached to servos and motor controllers). The results can be very disappointing at first. Some people even say it’s not possible, and so the solution is often to offload realtime functionality to a microcontroller, but it’s still disappointing that an application running on linux isn’t able to do it better.
Obviously linux isn’t designed as a realtime OS, however after trial and error and applying some tricks, I was able to overcome some of the lousy realtime characteristics on my linux SBC. Initially I found no matter what I did with process priorities, I could not get linux to execute realtime code in a timely manor (as needed by the external hardware). The jitter caused by linux’s loose scheduling became apparent through the vibration and jumpiness of physical servos.
I found that if I were willing to dedicate a single CPU core to IO processing with a realtime process and never relinquish the processor (ie using busy wait loop), then the GPIO signals output under linux became perfectly smooth. My SBC had six cores, and this worked, although the busy looping really wasted power. So I went back to the timer based code, however this time I scheduled the timer to trigger earlier than the necessary pulse time and then busy looped over the jitter uncertainty period. This ended up working very well without the need to peg the CPU at 100%!
This is not as good as a true realtime OS, which I’d still like to try. But in any case I found that using this technique ended up being perfectly usable for my purposes of realtime motor control under linux. While I didn’t have any problems after this, it would probably be safer to use a dedicated microcontroller if there were consequences for the linux control process crashing for some reason.
“Personally, I wouldn’t be very interested in VxWorks due to it being proprietary, and I’ve decided long ago that proprietary platforms do more harm than good.”
Should we all guess that the hardware you use is not a closed platform without closed firmware etc???
You should understand that tools are developed by others in order for us to pay for them to save us time. It is called financial transaction. You paid for the SBC and you bought a closed system (most SBCs used blobs loaded in the kernel, so yes, the linux you use is somehow proprietary) because you did not want to buy sand, build a machine for “cooking” chips and so on. Exactly in the same way, some we pay for some pieces of software so we don’t need to solve AGAIN the same problem.
You tried to solve the problem of real time process management and failed…. You could invest TIME in order to learn how to do it OR you can invest MONEY in order to get the solution ready for use. It has nothing to do with closed platforms. It is pure capitalism. Stop being a software communist.