This document provides a technical overview of VAXELN, a software product designed for developing dedicated, real-time applications on Digital Equipment Corporation's VAX family of super minicomputers.
Key aspects of VAXELN include:
- Purpose: VAXELN optimizes VAX processors for speed and responsiveness in critical, real-time applications (e.g., industrial control, simulation, workstations), where general-purpose operating systems are unsuitable due to overhead. It creates "statically defined" systems with only necessary services.
- Host-Target Model: The VAXELN Toolkit runs on a VMS or MicroVMS host system (the development environment). It's used to build highly optimized VAXELN application images for the VAXELN target system (the runtime environment), which is controlled by the minimalist VAXELN kernel.
- Key Features:
- High-Level Programming: Supports EPascal, VAX C, VAX FORTRAN 77, and Ada/ELN, including the ability to write device drivers in these languages, significantly reducing development time and machine language programming.
- Concurrent Execution: Built-in support for multitasking (multiple processes within a program) and multiprogramming (parallel execution of program components) for improved system design and performance.
- Transparent Ethernet Support: Integrates local area network capabilities based on Ethernet, allowing application components to be distributed across multiple VAX nodes without code modification.
- Debugging: Provides both a remote symbolic debugger (from host via Ethernet) and a local non-symbolic debugger (on target console). A unique feature is the ability for unaffected modules to continue running while one is debugged.
- Development & Runtime Environments: The development environment leverages standard VMS utilities. The runtime environment requires specific VAX hardware models and the VAXELN system image (kernel, drivers, services, user code).
- VAXELN Kernel & Programming Concepts:
- The kernel is the core software layer that manages system objects (e.g., processes, ports, messages, semaphores, events), resources, and communication.
- Applications are structured as "jobs" (programs) composed of concurrently executing "processes" (tasks).
- Process Synchronization: Achieved through various kernel objects, enabling coordination (mutual exclusion, event response).
- Job and Process Scheduling: Utilizes a priority-based, pre-emptive scheduling mechanism, without round-robin or time-slicing, crucial for predictable real-time response.
- Memory Management: Each job has a unique, protected virtual address space. Shared data within a job, and message passing is the only means of inter-job communication, optimized for efficiency.
- Networking & File Services: Leverages DECnet Data Access Protocol (DAP) for all communication, enabling transparent access to files and distribution of application parts across network nodes. It supports ODS-II, FILES-11 compatible sequential and random access files. Systems can operate diskless, loading images from Ethernet, tape, or ROM.
- Performance: VAXELN is highly optimized for real-time, minimizing overhead between application code and hardware. It boasts very low interrupt latency (e.g., 33 microseconds on a MicroVAX II) and efficient context switching and synchronization operations.