VxWorks is the most established and widely deployed device software operating system. Its performance, scalability, and footprint make more than 300 million devices worldwide run faster and more reliably. The next generation of VxWorks adds powerful new features and a focus on openness, performance, dependability, and interoperability.
With VxWorks 6.x, companies can:
- Optimize developer productivity through open standards
- Increase reliability through MMU-based memory protection
- Accelerate time-to-market through enhanced error management
- Seamlessly migrate existing VxWorks-based IP and other existing IPs, including open-source
- Continue to deliver products that rely on the core attributes of VxWorks, including high performance, reliability, determinism, low latency, and scalability
Compatibility
One of the central goals of VxWorks 6.x was to ease migration from VxWorks 5.5. To that end, the kernel of VxWorks completely supports the VxWorks 5.5 kernel operating environment—most BSPs, drivers, and kernel applications developed for or ported to VxWorks 5.5 will run in the VxWorks 6.x kernel. By default, the VxWorks 6.x kernel is configured to build the same as the VxWorks 5.5 kernel and provide the same functionality; developers may then add the new capabilities available on VxWorks 6.x
VxWorks 6.x also provides increased support for open standards. This promotes compatibility between the operating system and open-source applications, with these improvements:
- Ease of porting open-source and third-party software: VxWorks 6 is the first operating system to achieve certified conformance to POSIX PSE52, and it also provides enhanced compliance to the POSIX PSE53, PSE54, and 1003.1 standards
- Standard process-based programming model reduces the learning curve for programming new applications on VxWorks 6
- Support for IPv6 enables development of the next generation of networked devices
- Standard sockets-based and modular message channels provide a common communication interface
State-of-the-Art Memory Protection
VxWorks 6.x enables manufacturers to increase device reliability through MMU-based memory protection. VxWorks introduces process-based, user-mode application execution in addition to traditional kernel-mode execution. The kernel is protected from user-mode applications running in VxWorks real-time processes (RTPs). These are also protected from each other.
Message Channels
With memory protection comes the challenge of segmentation of applications into protected memory spaces. Message channels are a new, connection-orientated, bidirectional messaging mechanism that allows tasks to communicate across memory boundaries, complementing traditional communication mechanisms provided in VxWorks.
Tasks located in different processes or in the kernel can establish connections with each other independent of their location. Communication can take place between one task in a process and another in the kernel, or between tasks in separate processes, or between tasks in the same process. In VxWorks 6.x, message channels use the open-source, industry-standard TIPC (Transparent Interprocess Communication) protocol to extend messaging to tasks in multiprocessor systems—systems that can run VxWorks, Linux, or any other operating system that supports TIPC.
Memory Management
While VxWorks 6.x provides MMU-enabled memory protection, it continues to use the non-overlapped address space used in all earlier versions of VxWorks. The non-overlapped memory model promotes backward compatibility with legacy VxWorks code and provides the following benefits:
- High determinism and low latency are maintained by not requiring memory to be mapped in or out, and by not requiring unnecessary cache flushes
- Address pointers are unique, enabling reuse of existing VxWorks drivers and applications, and simplifying new driver and application development
- Support for MMU-enabled and MMU-less processors gives device manufacturers more flexibility to choose processors that fit capability and budget requirements
- Memory translation tables are not required, saving memory space and improving memory access performance
Error Management
Wind River provides an error management framework to help customers isolate, diagnose, and correct error conditions encountered during development and testing. Within this framework, customers can manage failures, minimizing the need to reproduce the failure in order to diagnose the device. The error management framework includes error detection and reporting technology, provides a foundation for debugging device software out of the box, and is extensible to enable customers to design reliable devices.
Processor Abstraction Layer
With VxWorks 6.x, the Processor Abstraction Layer (PAL) provides the capability to extend OS support to similar architecture families with less effort than in earlier versions of VxWorks. An architecture-specific PAL defines the functional interconnects for each architecture family, and abstracts the functionality of that hardware feature from the operating system. While this is transparent to the application, the presence of a PAL for an architecture family facilitates the quick adoption of processor variants, improving time-to-market for VxWorks 6.x customers.
Wind River VxMP
Wind River VxMP is a fast, lightweight, shared memory–based framework for homogeneous AMP, where each core runs a distinct copy of VxWorks. This optional, configurable component of VxWorks enables synchronization between distributed tasks on different processors using semaphores, message queues, or memory partitions accessible by all processors. VxMP offers the advantage of a transparent interface that allows shared-memory objects to be manipulated with the same routines used for manipulating local objects. It is high-speed, with no unnecessary passing of packets, and the memory can reside in either RAM or a separate memory card.
