Home      Discussion      Topics      Dictionary      Almanac
Signup       Login
OS/8

OS/8

Discussion
Ask a question about 'OS/8'
Start a new discussion about 'OS/8'
Answer questions from other users
Full Discussion Forum
 
Encyclopedia
OS/8 was the primary operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

 used on the PDP-8
PDP-8
The 12-bit PDP-8 was the first successful commercial minicomputer, produced by Digital Equipment Corporation in the 1960s. DEC introduced it on 22 March 1965, and sold more than 50,000 systems, the most of any computer up to that date. It was the first widely sold computer in the DEC PDP series of...

 minicomputer
Minicomputer
A minicomputer is a class of multi-user computers that lies in the middle range of the computing spectrum, in between the largest multi-user systems and the smallest single-user systems...

 developed by Digital Equipment Corporation
Digital Equipment Corporation
Digital Equipment Corporation was a major American company in the computer industry and a leading vendor of computer systems, software and peripherals from the 1960s to the 1990s...

 of Maynard
Maynard, Massachusetts
Maynard is a town in Middlesex County, Massachusetts, United States. As of the 2010 census, the town population was 10,106.- History :Maynard, located on the Assabet River, was incorporated as an independent municipality in 1871. Prior to that it was known as 'Assabet Village' but was legally...

, Massachusetts
Massachusetts
The Commonwealth of Massachusetts is a state in the New England region of the northeastern United States of America. It is bordered by Rhode Island and Connecticut to the south, New York to the west, and Vermont and New Hampshire to the north; at its east lies the Atlantic Ocean. As of the 2010...

. OS/8 was originally called MS/8 and, for a brief time, PS/8 ("Programming System/8") before Digital settled on the name OS/8 in 1971.

A virtually identical version of OS/8, called OS/12, was later used with Digital's PDP-12
LINC
The LINC was a 12-bit, 2048-word computer. The LINC can be considered the first minicomputer and a forerunner to the personal computer....

 computer.

Digital released OS/8 images for non-commercial purposes which can be emulated through SIMH
SIMH
SIMH is a highly portable, multi-system emulator which runs on Windows, Linux, Mac OS X, FreeBSD, OpenBSD, NetBSD, OpenVMS, and other operating systems...

.

Overview


OS/8 provided a simple operating environment that was commensurate in complexity and scale with the PDP-8 computers on which it ran. I/O was supported via a series of supplied drivers which used polled (not interrupt-driven) techniques. The device drivers had to be cleverly written as they could only occupy one or two memory pages of 128 12-bit
12-bit
Possibly the best-known 12-bit CPU is the PDP-8 and its relatives, produced in various incarnations from August 1963 to mid-1990. Many ADCs have a 12-bit resolution. Some PIC microcontrollers use a 12-bit word size....

 words, and had to be able to run in any page in field 0. This often required considerable cleverness, such as the use of the OPR instruction (7XXX) for small negative constants.

The memory-resident "footprint" of OS/8 was only 256 words; 128 words at the top of Field 0 and 128 words at the top of Field 1. The rest of the operating system (the USR, "User Service Routines") was swapped in and out of memory transparently (with regard to the user's program) as needed.

The Concise Command Language


Early versions of OS/8 had a very rudimentary command line interpreter with very few basic commands
Command (computing)
In computing, a command is a directive to a computer program acting as an interpreter of some kind, in order to perform a specific task. Most commonly a command is a directive to some kind of command line interface, such as a shell....

: GET, SAVE, RUN, ASSIGN, DEASSIGN, and ODT. With version 3 they added a more sophisticated overlay called CCL (Concise Command Language) that implemented many more commands. OS/8's CCL was directly patterned after the CCL found on Digital's PDP-10
PDP-10
The PDP-10 was a mainframe computer family manufactured by Digital Equipment Corporation from the late 1960s on; the name stands for "Programmed Data Processor model 10". The first model was delivered in 1966...

 systems running TOPS-10
TOPS-10
The TOPS-10 System was a computer operating system from Digital Equipment Corporation for the PDP-10 mainframe computer launched in 1967...

. In fact, much of the OS/8 software system was deliberately designed to mimic, as closely as possible, the TOPS-10 operating environment. (The CCL command language was later used on PDP-11
PDP-11
The PDP-11 was a series of 16-bit minicomputers sold by Digital Equipment Corporation from 1970 into the 1990s, one of a succession of products in the PDP series. The PDP-11 replaced the PDP-8 in many real-time applications, although both product lines lived in parallel for more than 10 years...

 computers running RT-11
RT-11
RT-11 was a small, single-user real-time operating system for the Digital Equipment Corporation PDP-11 family of 16-bit computers...

, RSX-11
RSX-11
RSX-11 is a family of real-time operating systems mainly for PDP-11 computers created by Digital Equipment Corporation , common in the late 1970s and early 1980s. RSX-11D first appeared on the PDP-11/40 in 1972...

, and RSTS/E
RSTS/E
RSTS is a multi-user time-sharing operating system, developed by Digital Equipment Corporation , for the PDP-11 series of 16-bit minicomputers. The first version of RSTS was implemented in 1970 by DEC software engineers that developed the TSS-8 time-sharing operating system for the PDP-8...

, providing a similar user operating environment across all three architectures: PDP-8s, PDP-10s, and PDP-11s.)

The basic OS and CCL implemented many rather sophisticated commands, many of which still do not exist in modern command languages, not even in MS-DOS
MS-DOS
MS-DOS is an operating system for x86-based personal computers. It was the most commonly used member of the DOS family of operating systems, and was the main operating system for IBM PC compatible personal computers during the 1980s to the mid 1990s, until it was gradually superseded by operating...

, Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

, or Unix-like
Unix-like
A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....

 operating systems.

For example, the COMPILE command would automatically find the right compiler for a given source file and start the compile/assemble/link cycle.

The ASSIGN and DEASSIGN commands allowed one to use logical device names in a program instead of physical names (as required in MS-DOS). For example, your program could write to device FLOP:AAA.TXT, and if you first did a "ASSIGN FLOP: RXA2:" then the file would be created on physical device RXA2 (the second floppy disk drive). VAX
VAX
VAX was an instruction set architecture developed by Digital Equipment Corporation in the mid-1970s. A 32-bit complex instruction set computer ISA, it was designed to extend or replace DEC's various Programmed Data Processor ISAs...

/VMS
OpenVMS
OpenVMS , previously known as VAX-11/VMS, VAX/VMS or VMS, is a computer server operating system that runs on VAX, Alpha and Itanium-based families of computers. Contrary to what its name suggests, OpenVMS is not open source software; however, the source listings are available for purchase...

 made considerable use of this very flexible feature.

The SET command was capable of setting many system options, albeit by the crude method of patching locations in the system binary code.

The BUILD command could reconfigure the OS on the fly, even adding device driver
Device driver
In computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device....

s, often without having to reboot the OS.

The OS can boot from a hard disk and present the command prompt in under half a second.

The OS/8 Filesystem


OS/8 supported a simple, flat file system
File system
A file system is a means to organize data expected to be retained after a program terminates by providing procedures to store, retrieve and update data, as well as manage the available space on the device which contain it. A file system organizes data in an efficient manner and is tuned to the...

 on a variety of mass storage
Mass storage
In computing, mass storage refers to the storage of large amounts of data in a persisting and machine-readable fashion. Devices and/or systems that have been described as mass storage include tape libraries, RAID systems, hard disk drives, magnetic tape drives, optical disc drives, magneto-optical...

 devices including:
  • TU56 DECtape
    DECtape
    DECtape, originally called "Microtape", was a magnetic tape data storage medium used with many Digital Equipment Corporation computers, including the PDP-6, PDP-8, LINC-8, PDP-10, PDP-11, PDP-12, and the PDP-15. On DEC's 32-bit systems, VAX/VMS support for it was implemented but did not become an...

    s
  • DF32 32KB fixed-head disks
    Disk storage
    Disk storage or disc storage is a general category of storage mechanisms, in which data are digitally recorded by various electronic, magnetic, optical, or mechanical methods on a surface layer deposited of one or more planar, round and rotating disks...

  • RF08 256KB fixed-head disks
    Disk storage
    Disk storage or disc storage is a general category of storage mechanisms, in which data are digitally recorded by various electronic, magnetic, optical, or mechanical methods on a surface layer deposited of one or more planar, round and rotating disks...

  • RK01/02/03/04/05 cartridge disk drives
    Disk storage
    Disk storage or disc storage is a general category of storage mechanisms, in which data are digitally recorded by various electronic, magnetic, optical, or mechanical methods on a surface layer deposited of one or more planar, round and rotating disks...

  • RX01/02 floppy disk
    Floppy disk
    A floppy disk is a disk storage medium composed of a disk of thin and flexible magnetic storage medium, sealed in a rectangular plastic carrier lined with fabric that removes dust particles...

    ette drives


Filenames
Computer file
A computer file is a block of arbitrary information, or resource for storing information, which is available to a computer program and is usually based on some kind of durable storage. A file is durable in the sense that it remains available for programs to use after the current program has finished...

 on the PDP-8 took the form of FFFFFF.XX where "F" represents an uppercase, alphanumeric
Alphanumeric
Alphanumeric is a combination of alphabetic and numeric characters, and is used to describe the collection of Latin letters and Arabic digits or a text constructed from this collection. There are either 36 or 62 alphanumeric characters. The alphanumeric character set consists of the numbers 0 to...

 character of the filename and "X" represents an upper-case, alphanumeric character of the extension (filetype). Assembly language
Assembly language
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...

 sources used the extension ".PA"; saved core-images (executable programs) used the extension ".SV".

The contents of any given file was stored contiguously in a single "extent". PIP included an option to compress ("squeeze") the filesystem so all unallocated space was moved to a single extent at the end of the disk.

OS/8 volumes had a very limited maximum storage size (4096 blocks) and the RK05 (2.4MB) moving-head disk exceeded this size. Because of this, RK05 cartridges were divided into two partitions. For example the first RK05 on a system would be known as both RKA0: (SY:) and RKB0:. This division was commonly thought to mean "the upper surface" and "the lower surface" but this was incorrect; it in fact was "the outer cylinders" and "the inner cylinders".

OS/8 CUSPs (Utility Programs)


The CUSPs (Commonly-Used System Programs, that is utilities) supplied with OS/8 included:
  • BUILD (the program to install a configured OS/8 system onto mass storage)
  • DIR (the directory-listing program)
  • EDIT (A line-oriented editor)
  • MACREL (A relocating assembler that, unlike PAL, implemented macros. Written by Stanley Rabinowitz of DEC's Small Systems Group. Stan had an ASCII-artwork picture of a fish in his office that said "MACREL IS A FISH")
  • FLAP (An absolute assembler derived from RALF)
  • FORTRAN-II
  • FOTP (File-Oriented Transfer Program, an alternative to PIP)
  • PAL (The assembler)
  • PIP
    Peripheral Interchange Program
    Peripheral Interchange Program was a utility to transfer files on and between devices on Digital Equipment Corporation's computers. It was first implemented on the PDP-6 architecture by Harrison "Dit" Morse early in the 1960s...

     (the Peripheral Interchange Program, used to copy files)
  • PIP10
    Peripheral Interchange Program
    Peripheral Interchange Program was a utility to transfer files on and between devices on Digital Equipment Corporation's computers. It was first implemented on the PDP-6 architecture by Harrison "Dit" Morse early in the 1960s...

     (a version of PIP used to copy files to from PDP-10 DECtapes)
  • RALF (Another relocating assembler for the FPP)
  • TECO
    Text Editor and Corrector
    TECO is a text editor originally developed at the Massachusetts Institute of Technology in the 1960s, after which it was modified by 'just about everybody'...

     (Text Editor and COrrector, a much-more-sophisticated editor)
  • CCL, the command line interpreter, was supplied in source form and could be extended by the user.

Programming languages


A single-user BASIC
BASIC
BASIC is a family of general-purpose, high-level programming languages whose design philosophy emphasizes ease of use - the name is an acronym from Beginner's All-purpose Symbolic Instruction Code....

 and two multi-user versions of BASIC were available as options.

The single-user BASIC used several overlays to provide the full functionality of the language; when OS/8 was booted from a DECtape, a very noticeable delay occurred each time BASIC was required to switch overlays as they needed to be read from tape.

The multi-user versions of BASIC (EDU20 and EDU25) differed only in whether or not they supported block-replaceable devices (DECtape or disk). Due to cost constraints, many PDP-8s had punched paper tape readers as their only mass-storage I/O device. EDU20 loaded from paper tape and could do output to a paper tape writer if the machine had one, whereas EDU25 understood the structure of a filesystem, could load from DECtape or disk, and could create files on DECtape or disk. Both could run multiple BASIC programs simultaneously using a primitive task-scheduler that round-robined among the attached terminals. Memory was always very tight because the PDP-8 used core memory, which was extremely expensive compared to RAM technology which came along a few years later. In a mere 8K of 12-bit words EDU20 could support up to 4 terminals at once, although more memory was recommended. EDU25 required an additional 4K memory bank (for a minimum of 12K) because the code contained a disk device driver and a filesystem handler. While running, EDU20 and EDU25 were self-contained programs that didn't use any OS/8 system calls. Immediately upon being invoked from the OS/8 command interpreter they would overwrite OS/8's entire resident portion - all 256 words of it. Upon startup, EDU25 would save the contents of memory to DECtape or disk and restore it when it exited. But EDU20 could not do this as it was targeted at hardware configurations without any block-replaceable device.

There was also a rather complete FORTRAN IV
Fortran
Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...

 compiler
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...

available at extra cost. This compiler generated code for the optional FPP-8 floating-point processor, which was essentially a separate CPU, only sharing memory with the PDP-8 CPU. If you had the FPP-8 option installed, the FORTRAN runtime code would detect it and use the FPP-8 to run the main program code, and the PDP-8 CPU would run as an I/O processor. If you did not have the FPP-8, the runtime code would instead call an FPP-8 interpreter running on the PDP-8 CPU, so the program would still run, but at considerably reduced speed.

This FORTRAN IV compiler in version 1 had the interesting bug that DO loops counted incorrectly! DO loops would count 1,2,3,5,6,7, …! A quick patch was released to fix this.

External Links