Control Program Facility

Control Program Facility (CPF) is the operating system of the IBM System/38.[3] CPF represented an independendent line of development at IBM Rochester, and was unrelated to the earlier and more widely used System Support Program operating system. CPF evolved into the OS/400 operating system, which was originally known as XPF (Extended CPF).[1]

Control Program Facility (CPF)
Written inPL/MI[1]
Working stateDiscontinued
Source modelClosed Source
Initial release1978; 45 years ago (1978)
Latest releaseRelease 8 / 14 November 1986; 36 years ago (1986-11-14)[2]
PlatformsIBM System/38
user interface
Command-line interface
Succeeded byOS/400

While CPF is considered to be the operating system of the System/38, much of the hardware and resource management of the platform is implemented in the System/38's Horizontal and Vertical Microcode.[1][4]

Description of the librariesEdit

  • QGPL – general purpose library
  • QSYS – system library
  • QSPL – spooling library
  • QTEMP – temporary library
  • QSRV – system service library
  • QRECOVERY – system recovery library

Data storageEdit

In most computers prior to the System/38, and most modern ones, data stored on disk was stored in separate logical files. When data was added to a file it was written in the sector dedicated to this, or if the sector was full, on a new sector somewhere else.

The System/38 adopted the single-level store architecture, where main storage and disk storage are organized as one, from the abandoned IBM Future Systems project (FS).[5] Every piece of data was stored separately and could be put anywhere on the system. There was no such thing as a physically contiguous file on disk, and the operating system managed the storage and recall of all data elements.

Capability-based addressingEdit

CPF was an example of a commercially-available Capability-based operating system. System/38 was one of the few commercial computers with capability-based addressing.[6] Capability-based addressing was removed in the follow-on OS/400 operating system.[7]

Distributed Data ManagementEdit

In 1986, System/38 announced support for Distributed Data Management Architecture (DDM). Such a middleware in the context of a distributed system is the software layer that lies between the operating system and applications. Distributed Data Management Architecture defines an environment for sharing data. This enables System/38 programs to create, manage, and access record-oriented files on remote System/36, System/38, and IBM mainframe systems running CICS. It also allows programs on remote System/36 and System/38 computers to create, manage, and access files of a System/38.

Programming languagesEdit

Languages supported on the System/38 included RPG III, COBOL, BASIC, and PL/I. CPF also implements the Control Language for System/38.[8]


  1. ^ a b c Frank G. Soltis (1997). Inside the AS/400, Second Edition. Duke Press. ISBN 978-1882419661.
  3. ^ IBM System/38 Technical Developments (PDF). IBM Product Design and Development, General Systems Division. 1980 [1978]. ISBN 0-933186-03-7. G580-0237-1.
  4. ^ Soltis, Frank (September 1981). "Design of a Small Business Data Processing System". IEEE Computer. 14: 77–93. doi:10.1109/C-M.1981.220610. S2CID 398484.
  5. ^ Mark Smotherman. "IBM Future System (FS) - 1970s". Retrieved October 11, 2017.
  6. ^ Levy, Henry M. (1984). "The IBM System/38" (PDF). Capability-Based Computer Systems. Digital Press. ISBN 0-932376-22-3.
  7. ^ Soltis, Frank G. (July 2001). Fortress Rochester: The Inside Story of the IBM ISeries. 29th Street Press. p. 119. ISBN 978-1-58304-083-6..
  8. ^ "IBM System/38 Control Language Reference Manual" (PDF). IBM. 1982-09-10. Retrieved 2021-03-24.

External linksEdit