VxWorks

VxWorks is a real-time operating system made by Wind River Systems, Inc. [L1 ]. It is popularly deployed on embedded systems that have limited resources, boot from ROM or flash memory, and have neither disks nor displays. The VxWorks kernel is highly modularized and promises fast and predictable interrupt response.

Notable differences to Unix are:

  • A priority-based preemptive scheduler without time-slicing.
  • A flat memory model that is shared by the kernel and all tasks (no process separation or memory protection).
  • Proprietary APIs for thread management and synchronization.

VxWorks 6.0 and later offer process separation (as "Real-time Processes") and increasingly complete support for the POSIX APIs, while maintaining the legacy APIs and flat memory model for "Downloadable Kernel Modules." However, some functionality that Unix developers take for granted, such as fork() or pipe(), are still missing.

One of the more intriguing features is the "C interpreter", which allows access to all kernel symbols and supports calling C functions from the command line, like a built-in ffidl.

Tcl is an integral part of Workbench, the VxWorks development environment. It provides a Tcl-based wtxtcl "host shell" that runs on the development host and can be used to interact with the target. Workbench does not provide a Tcl to run on the target natively, however.

See Tcl on VxWorks for a port of Tcl to VxWorks.