Run-time system

From Wikipedia, the free encyclopedia

In computer science, the runtime system is software that provides services for a running program but is itself not considered to be part of the operating system.

Examples include:

  • the code that is generated by the compiler to manage the runtime stack.
  • library code for handling memory management (for example, malloc).
  • code that handles dynamic loading and linking.
  • debugger code that is generated at compile time or run time.
  • application-level thread management code.

Byte-code interpreters and virtual machines can also be considered runtime systems. Services that run in concurrent processes are more likely to be considered middleware.

[edit] RSTS/E

In the specific context of the RSTS/E operating system, the run-time system (RTS) was a piece of resident code which was mapped into the high end of the address space of a process, which could be called on to provide services to the running program.

RSTS/E did not itself define any standard filename extension for an executable program file; instead, each installed RTS defined its own extension, and the appropriate one was loaded depending on the actual name of the program file. If the user issued a command to run a program without specifying the extension, then the system went through all installed RTSs, trying each corresponding extension in turn until it found the name of an existing program file.

The actual responsibility for loading and executing the program was left to the run-time system; thus, users could run interpreted programs just as easily as ones that were compiled into actual machine code, provided that the interpreter was appropriately implemented as a run-time system. The standard BASIC-PLUS RTS provided a compiler, interpreter and CLI all packed into just 32kiB of code. And indeed many of the standard system utility programs (including privileged ones like LOGIN and LOGOUT!) were written in BASIC-PLUS.

Other RTSs provided partial emulation facilities, allowing some simple programs written for the RT-11 and RSX-11 operating systems to run under RSTS.

Under RSTS, the TECO editor was also implemented as a run-time system, though its CLI function was a stub which loaded a program with a predefined name which had to be provided by the user. This allowed the user to implement their own CLI.

Even a version of the Space Invaders video arcade game was eventually implemented as a multi-user run-time system (driving VT52 video terminals).

[edit] See also