VxWorks comes with the kernel,middleware, board support packages, Wind River Workbench development suite, complementary third-party software and hardware. In its latest release, VxWorks 7, the RTOS has been re-engineered for modularity and upgradeability so the OS kernel is separate from middleware, applications, and other packages.[6] Scalability, security, safety, connectivity, and graphics have been improved to addressInternet of Things (IOT) needs.[7][8][9]
VxWorks started in the late 1980s as a set of enhancements to a simpleRTOS calledVRTX[10] sold by Ready Systems (becoming aMentor Graphics product in 1995).[11] Wind River acquired rights to distribute VRTX and significantly enhanced it by adding, among other things, afile system and anintegrated development environment. In 1987, anticipating the termination of its reseller contract byReady Systems, Wind River proceeded to develop its own kernel to replace VRTX within VxWorks.[12]
Published in 2003 with a Wind River copyright, "Real-Time Concepts for Embedded Systems"[13]describes the development environment, runtime setting, and system call families of the RTOS.Written by Wind River employees with a foreword by Jerry Fiddler, chairman, and co-founder of Wind River, the textbook is an excellent tutorial on the RTOS. (It does not, however, replace Wind River documentation as might be needed by practicing engineers.)
VxWorks supports Intel architecture, Power architecture, and ARM architectures. The RTOS can be used in multi-coreasymmetric multiprocessing (AMP),symmetric multiprocessing (SMP), mixed modes[5] and multi-OS (via Type 1 hypervisor)[4] designs on 32- and 64- bit processors.
The VxWorks consists of a set of runtime components and development tools. The run time components are anoperating system (UP and SMP; 32- and 64-bit), software for applications support (file system, core network stack, USB stack, and inter-process communications), and hardware support (architecture adapter, processor supportlibrary, device driver library, and board support packages).[5] VxWorks core development tools are compilers such as Diab,GNU, andIntel C++ Compiler (ICC) and its build and configuration tools. The system also includes productivity tools such as its Workbench development suite and Intel tools and development support tools for asset tracking and host support.[5]
The platform is a modular, vendor-neutral,open system that supports a range of third-party software and hardware. The OS kernel is separate from middleware, applications, and other packages,[8] which enables easier bug fixes and testing of new features.[15] An implementation of a layered source build system allows multiple versions of any stack to be installed at the same time so developers can select which version of any feature set should go into the VxWorks kernel libraries.
Optional advanced add-ons for VxWorks provide additional capabilities, including the following:
Advanced security features to safeguard devices and data residing in and traveling across the Internet of Things (IoT)
Advanced safety partitioning to enable reliable application consolidation
Real-time advanced visual edge analytics allow autonomous responses on VxWorks-based devices in real-time without latency
Optimized embedded Java runtime engine enabling the deployment of Java applications
Virtualization capability with a real-time embedded, Type 1 hypervisor
Native 64-bit operating system (only one 64-bit architecture supported:x86-64). Data model:LP64
User-mode applications ("Real-Time Processes", or RTP) isolated from other user-mode applications as well as the kernel viamemory protection mechanisms
Dual-modeIPv6 networking stack with IPv6 Ready Logo certification
Memory protection including real-time processes (RTPs), error detection and reporting, and IPC
Multi-OS messaging using TIPC and Wind River multi-OS IPC
Symbolic debugging
In March 2014 Wind River introduced VxWorks 7, emphasizing scalability, security, safety, connectivity, graphics, and virtualization.[9][15][20] The following lists some of the release 7 updates.[1][5][6][9] More information can be found on theWind Rivers VxWorks website.
Modular, componentized architecture using a layered build system with the ability to update each layer of code independently
VxWorks microkernel (a full RTOS that can be as small as 20 KB)
Security features such as digitally-signed modules (X.509), encryption, password management, ability to add/delete users at runtime
Connectivity with Bluetooth andSocketCAN protocol stacks
Inclusion of MIPC File System (MFS) and MIPC Network Device (MND)
Networking features with 64-bit support including Wind River MACsec, Wind River's implementation of IEEE 802.1A,Point-to-Point Protocol (PPP) over L2TP, PPP overvirtual local area network (VLAN) and Diameter secure key storage
New Wind River Workbench 4 for VxWorks 7 integrated development environment with new system analysis tools
Wind River Diab Compiler 5.9.4; Wind River GNU Compiler 4.8; Intel C++ Compiler 14 and Intel Integrated Performance Primitives (IPP) 8
As is common inembedded system development,cross-compiling is used with VxWorks. Development is done on a "host" system where anintegrated development environment (IDE), including the editor, compilertoolchain, debugger, andemulator can be used. Software is then compiled to run on the "target" system. This allows the developer to work with powerful development tools while targeting more limited hardware. VxWorks uses the following host environments and target hardware architectures:[23]
Supported target architectures and processor families
VxWorks supports a range of target architectures including ARM, Intel, Power architecture, RISC-V architecture and more.[2] For the latest target architecture processors and board support packages, refer to the VxWorks Marketplace[24] or via citation.[25]
The Eclipse-based Workbench IDE that comes with VxWorks is used to configure, analyze, optimize, and debug a VxWorks-based system under development.[26] TheTornado IDE was used for VxWorks 5.x[27] and was replaced by theEclipse-basedWorkbench IDE for VxWorks 6.x. and later.[23] Workbench is also the IDE for the Wind River Linux,[28] On-Chip Debugging,[29] and Wind River Diab Compiler product lines. VxWorks 7 uses Wind River Workbench 4[30] which updates to the Eclipse 4 base provides full third party plug-in support and usability improvements.
Wind River Simics[31][32] is a standalone simulation tool compatible with VxWorks. It simulates the full target system (hardware and software) to create a shared platform for software development. Multiple developers can share a complete virtual system and its entire state, including execution history. Simics enables early and continuous system integration and faster prototyping by utilizing virtual prototypes instead of physical prototypes.[33]
VxWorks is used by products across a wide range of market areas: aerospace and defense, automotive, industrial such as robots, consumer electronics, medical area and networking.[6] Several notable products also use VxWorks as the onboard operating system.[34]
NASA Mars rovers (Sojourner, Spirit, Opportunity)[36]
The Deep Space Program Science Experiment (DSPSE) also known asClementine (spacecraft)[37] Clementine launched in 1994 running VxWorks 5.1 on a MIPS-based CPU responsible for the Star Tracker and image processing algorithms. The use of a commercial RTOS on board a spacecraft was considered experimental at the time[citation needed]
As of July 2019, a paper published by Armis[114] exposed 11 critical vulnerabilities, includingremote code execution,denial of service, information leaks, and logical flaws impacting more than two billion devices using the VxWorks RTOS.[115] The vulnerability allows attackers totunnel into aninternal network using the vulnerability and hack into printers, laptops, and any other connected devices. The vulnerability can bypass firewalls as well.[116]
The system is in use by quite a fewmission-critical products, many of which could not be easily patched.[117]