Clever Geek Handbook
📜 ⬆️ ⬇️

Vxworks

VxWorks is a real-time operating system developed by Wind River Systems ( USA ), focused on use in embedded computers operating in hard real-time systems. VxWorks is a cross-application software development system. In other words, the development takes place on an instrumental computer, called the host, for subsequent use on the target machine - target.

Vxworks
Vxworks.png
VxWorks ASCII Graphics
Developer
OS familyUNIX-like
First edition
Latest version6.9 ( February 2011 [1] )
Supported Platforms
Core typeMicrokernel
License
conditionCurrent
Web siteVxWorks RTOS

Like most other real-time operating systems, VxWorks includes a multitasking kernel with a preemptive scheduler and fast interrupt response, interprocess communication and synchronization , as well as a file system and network subsystem ( TCP / IP protocol stack ). The package includes tools for cross-compiling , performance monitoring ( WindView ), remote symbolic debugging, and emulation of various processors . Additionally, a significant number of different protocol stacks, graphics subsystems, etc. are supplied from both Wind River Systems itself and third-party companies. The many supported VxWorks embedded platforms are one of the most extensive among real-time operating systems.

On June 4, 2009, Intel announced plans to acquire Wind River Systems and VxWorks. [2] On July 17, 2009, the takeover of the company was completed. [3]

Content

History

The name “VxWorks” is believed to have come from a word game called VRTX OS, created by Ready Systems (now this product belongs to Mentor Graphics ). In the early 1980s, the VRTX was a fairly new and raw product; it did not work too well. VRTX was only 4 KB in size and could not be used as a full-fledged operating system. Wind River has acquired the rights to distribute an enhanced version of VRTX called VxWorks. Improvements and extensions introduced by WindRiver allowed us to create a system that worked (for example, VXWorks had a file system and an integrated development environment ). Thus, the name VxWorks can mean English. VRTX now Works (“VRTX now works”) or eng. VRTX that Works (“VRTX that works”).

When it became clear that Ready Systems could terminate the VRTX distribution contract, Wind River developed its own operating system kernel, which replaced VRTX. The basic functionality of the new VxWorks core was the same as that of the VRTX.

Architecture

VxWorks has a client-server architecture and, like most hard real-time OSes, is built on a microkernel technology. At the lowest uninterrupted kernel level (WIND Microkernel), only basic task scheduling and communication / synchronization control between tasks are performed. All other higher-level RTOS functions — memory management, networking, etc. — are implemented through simple lower-level functions. Due to such a hierarchical organization, the speed and determinism of the system core is achieved, it also makes it easy to build the necessary configuration of the operating system.

VxWorks can be configured for systems with hard hardware limitations, as well as for systems with advanced functionality. Individual modules of the system themselves can be scalable. When assembling the system, you can disable certain system functions that are not needed at the moment, you can also remove specific nuclear objects of synchronization if they are not necessary.

But, despite the fact that the system is configurable, it cannot be said that it implements a component approach, since all modules are built on the base core and cannot be used in other environments.

The VxWorks core has the following properties [4] :

  • the number of tasks is limited only by memory;
  • has 256 task priority levels;
  • task planning is organized in two ways: priority preemption and cyclic;
  • interaction of tasks occurs through message queues, semaphores, events and channels (for interaction between processes), sockets and remote procedure calls (for network interaction), memory sharing (used for data separation) and signals (for managing exceptional situations);
  • several types of semaphores are provided for managing critical system resources — binary, computational, and mutually exclusive with priority inheritance;
  • possible deterministic context switching.

Planning

VxWorks provides planning mechanisms based on POSIX [5] and its own planning mechanisms (wind scheduling). Both options have preemptive and cyclic planning. The difference is that the POSIX scheduling algorithms are applied in the process, and the wind scheduling is applied at the system level [4] .

All system tasks and applications in VxWorks use the same address space, which can lead to a violation of the stability of the system in the event of a failure of any application. The solution to this problem is achieved by installing a separately provided component VxVMI [6] , which allows each process to use its own virtual space.

Interrupts

To achieve fast external interrupt handling , interrupt service routines ( ISRs - interrupt service routines) in VxWorks operate in a special context outside of flow contexts, which gives an advantage in the time that is usually spent on context switching. The C function that the user attaches to the interrupt vector is not actually an actual ISR. Interrupts cannot directly access C functions. Instead, in the table of interrupt vectors, which is called by hardware, the ISR address is stored. The ISR performs the initial processing (stack preparation and saving of registers), and then the C-function is invoked, which was connected by the user [4] .

Network Tools

VxWorks has the following network tools [7] :

  • TCP / zero-copy
  • TCP / UDP / ICMP / IP ( IPv4 and IPv6 ) / ARP ,
  • SLIP / CSLIP / PPP ,
  • Sockets ,
  • telnet / rlogin / rcp / rsh ,
  • ftp / tftp / bootp ,
  • NFS (client and server).

The VxWorks network tools also include the functions required when developing devices connected to the Internet:

  • IP multicasting level 0.1 or 2;
  • long fat pipe;
  • CIDR (Classless Inter-Domain Routing);
  • DHCP (Dynamic Host Configuration Protocol) in server, client and Relay agent configurations;
  • DNS client (Domain Naming System);
  • SNTP (Simple Network Time Protocol).

VxWorks supports the following routing protocols:

  • RIPv 1 / v2 (Routing Information Protocol)
  • OSPF (Open Shortest Path First) version 2.

VxWorks comes standard with RIP, OSPF is delivered as an additional product.

VxWorks supports Simple Network Management Protocol ( SNMP ) in both v1 and v2c versions. The MIB compiler (Management Information Base) supports MIB-II objects and extensions.

The standard interface for connecting portable network protocols to operating systems is the STREAMS interface. Under VxWorks, you can install any protocol that has a STREAMS implementation: both standard ( Novell SPX / IPX , Decnet , AppleTalk , SNA , ...) and specialized. OS VxWorks supports STREAMS version UNIX System V.4.

Additional networking features: WindNet

In 1994, Wind River Systems announced the WindNet program, according to which a number of manufacturers of communications software companies integrated their software products with VxWorks, thereby providing support (this is not a complete list) [5] :

  • network protocols: X.25 , ISDN , ATM , SS7 , Frame Relay and OSI ;
  • CASE- development tools for distributed systems based on ROOM (Real-Time Object Oriented Modeling) and CORBA (Common Object Request Broker Architecture) standards;
  • Management of networks using MBD (Management By Delegation) and CMIP / GDMO (Common Management Information Protocol / Guidelines for Definition of Managed Objects) technologies.

File System

The following file systems are supported in VxWorks [8] :

  • MS-DOS-Compatible File System: DosFS
  • Raw File System: RawFs
  • Target Server File System: TSFS
  • Network File System: NFS
  • ISO 9660 (CDROM File System)
  • Tape File System: TapeFs
  • CIFS / SMB
  • TrueFFS

Symmetric and asymmetric multiprocessing support

From the point of view of software, a real-time multiprocessor system is of two types: asymmetric ASMP ( Asymmetrical MultiProcessing ) and symmetric SMP ( Symmetrical MultiProcessing ). With ASMP asymmetric multiprocessing, each microprocessor, and in the case of a multi-core microprocessor, each processor core executes its own OS copy, and the application developer is responsible for distributing processes (threads, tasks) across processors. In this case, the multiprocessor system is difficult to program, but it has the predictability (determinism) of real-time characteristics.

With symmetric multiprocessing SMP, an application programmer sees a multiprocessor system as a virtual uniprocessor, which greatly simplifies software development, but there is no 100% guarantee of predictability of performance due to the fact that the load between the processors is not distributed manually, but automatically.

Before the introduction of multi-core devices on the market of embedded microprocessors, there was practically no need for symmetric multiprocessing. The complexity of software development for loosely coupled multiprocessor systems was small, and the simplicity of programming was put in second place after the predictability of the behavior of the real-time system. Therefore, in versions VxWorks 5.x and 6.x, up to version 6.5, only asymmetric multiprocessing was supported, implemented as a VxMP library (supplied as an additional product), which allows communication between processors through objects in shared memory. With the advent of embedded multi-core microprocessors with strongly connected processor cores on a chip, the simplicity of software development has come to the fore, which has led to the need to support symmetric multiprocessing by embedded real-time operating systems.

Since version 6.6, released in November 2007 , VxWorks has begun to support symmetric multiprocessing SMP [9] . SMP support is included in the Wind River Workbench for VxWorks [10] and Workbench for On-Chip-Debugging integrated development environment. SMP support in VxWorks comes as an optional component. The following multi-core microprocessors are supported:

  • ARM11 MPCore ( ARMv6 )
  • Broadcom MIPS BCM1480
  • Cavium OCTEON CN38xx
  • Freescale MPC8641D
  • Intel Dual-Core Xeon LV
  • Intel Core Duo T2400
  • Raza XLR 732

Use

 
Artist presentation: Mars Reconnaissance Orbiter spacecraft on Mars orbit (using VxWorks system)
  • Phoenix Mars Lander is a NASA vehicle designed to explore Mars .
  • The Spirit , Opportunity and Curiosity probes, as well as the Mars Reconnaissance Orbiter, use VxWorks on the POWER platform. The system is used in other space missions, for example, Deep Impact .
  • Planned use in the newest aircraft Boeing 787 and Boeing 747-8 .
  • Communication equipment of many companies (for example, Nortel , 3COM , Alcatel , Samsung (OfficeServ 7400), Linksys WRT54G, NetGear WGR614).
  • Some PostScript printers.
  • Medical equipment of Siemens AG (in particular, magnetic resonance imagers ).
  • Storage systems of various companies (ETERNUS DX from Fujitsu , E series from NetApp , DS series from IBM ).
  • Control system of KUKA robotic complexes.
  • ABB robots control system.
  • Many other applications in embedded systems with high demands on reliability and response time.
Supported target architecturesSupported instrumental platforms (hosts)Supported Interfaces
  • Motorola 680x0 and CPU32 , PowerPC
  • Intel 386/486 / Pentium , Intel 960 ,
  • Sparc , Mips R3000 / 4000 ,
  • AMD 29K , Motorola 88110 ,
  • HP PA-RISC ,
  • Hitachi SuperH ,
  • Dec alpha
  • Sun SPARCstation ( SunOS and Solaris ),
  • HP 9000 / 400,700 ( HP-UX ),
  • IBM RS6000 ( AIX ),
  • Silicon Graphics ( IRIX ),
  • DEC Alpha ( OSF / 1 ),
  • x86
  • host-target ethernet
  • RS232 ,
  • ICE ( In-Circuit Emulator ),
  • cross-tire ( backplane )

Comparison with some real-time operating systems

VxWorks is compared with other real-time operating systems [11] .

RTOSArchitectureDevelopment environmentPosixMax. number of tasks
VxworksClient server, microkernelTornado, Workbench, Qt Creator Commercial [12]POSIX 1003.1, .1b, .1c (including pThreads)limited only by memory
QNXClient server, microkernel and interoperable processesQNX Momentics IDE, Qt Creator (Community and Commercial) from version 3.0 [13] , Solaris, QNX4, QNX6 (up to version Neutrino 6.3.2 inclusive)POSIX 1003.1-2001, with threads and advanced. PB4095 processes, in each process up to 32767 threads
LynxOS [14] [15]monolithic core [16]Luminosity based on EclipsePOSIX 1003.1a / b / c, 1003.1-2003memory limited

Notes

  1. River Wind River Advances Multicore VxWorks Real-Time Operating System (Undecided) . The appeal date is April 5, 2009. Archived January 28, 2012. (eng.)
  2. ↑ Intel strikes back at ARM, buys embedded OS maker Wind River - Ars Technica. (eng.)
  3. River Intel Corporation today announced its acceptance of Wind River Systems Inc. Archived November 18, 2011. (eng.)
  4. ↑ 1 2 3 Article “Real-time Operating Systems” I. B. Burdonov, A. S. Kosachev, V. N. Ponomarenko (inaccessible link) Section 2.1. Vxworks
  5. ↑ 1 2 Article “VxWorks: Real-Time Operating System and Software Development Toolkit for PB”, A.V. Demyanov, p. Additional networking capabilities: WindNet program, p. POSIX standards support
  6. ↑ VxWorks Facilities: An Overview (inaccessible link) . Virtual Memory (Including VxVMI Option)
  7. ↑ Article: “Real-Time Operating Systems” I. B. Burdonov, A. S. Kosachev, V. N. Ponomarenko (inaccessible link) Section 5. Summary Tables of Characteristics of the Properties of RTOS Table. 2 (not available link from 11-07-2015 [1482 days])
  8. ↑ VxWorks / Tornado II FAQ
  9. ↑ VxWorks 6.6 SMP, Symmetric Multiprocessing Technology for Multicore Archived February 12, 2009.
  10. ↑ pdf: Wind River Workbench
  11. ↑ Summary Tables of the Characteristics of the Properties of RTOS Archived May 6, 2009.
  12. ↑ VxWorks Notes - Qt Documentation (Unreferenced) (inaccessible link) . The date of circulation is September 17, 2015. Archived September 28, 2015.
  13. ↑ Target Platforms - Qt Documentation
  14. ↑ Article: “LynxOS is a real-time operating system in the POSIX standard”, Zolotaryov S.V., Kalyadin A.Yu. (Neopr.) (Inaccessible link) . The date of circulation is January 13, 2009. Archived January 5, 2009.
  15. ↑ news article (inaccessible link)
  16. ↑ article: “A look at the world of real-time operating systems in 2006 S. V. Zolotarev” (inaccessible link), p. “Monolithic or microkernel?”

Literature

  • VxWorks operating system in the Internet, A.V. Demianov (RTSoft)
  • VxWorks: Real-Time Operating System and Software Development Kit of RT, A. V. Demyanov, AVD Systems, Moscow
  • Real-Time Operating Systems, I. B. Burdonov, A. S. Kosachev, V. N. Ponomarenko
  • www.vxworks.ru
  • rnd.cnews.ru - Real-Time Operating Systems for Avionics: An Overview

Links

  • Wind river systems
    • VxWorks 6.x
  • VxWorks / Tornado II FAQ
  • Vxworks cookbook
Source - https://ru.wikipedia.org/w/index.php?title=VxWorks&oldid=101023490


More articles:

  • Callahan, Ryan
  • NoScript
  • Edgerton, Joel
  • Bobsleigh at the 1972 Winter Olympics
  • Berzin, Julius Solomonovich
  • Bethell, Nicholas
  • Ushakov, Boris Sergeevich
  • Nekrasov, Alexander Ivanovich
  • Richard of Salerno
  • Kruglov, Vladimir Vasilievich

All articles

Clever Geek | 2019