# Control Program Facility

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Control_Program_Facility
> Markdown URL: https://mediated.wiki/source/Control_Program_Facility.md
> Source: https://en.wikipedia.org/wiki/Control_Program_Facility
> Source revision: 1334527443
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

Operating system of the IBM System/38

Operating system

Control Program Facility (CPF) Developer IBM Written in PL/MI[1] Working state Discontinued Source model Closed Source Initial release 1978; 48 years ago (1978) Latest release Release 8 / 14 November 1986; 39 years ago (1986-11-14)[2] Supported platforms IBM System/38 Default user interface Command-line interface License Proprietary Succeeded by OS/400

**Control Program Facility** (**CPF**) is the [operating system](/source/Operating_system) of the [IBM System/38](/source/IBM_System%2F38).[3] CPF represented an independent line of development at [IBM Rochester](/source/IBM_Rochester), and was unrelated to the earlier and more widely used [System Support Program](/source/System_Support_Program) operating system. CPF evolved into the [OS/400](/source/OS%2F400) operating system, which was originally known as **XPF** (Extended CPF).[1]

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](/source/System%2F38#Microcode).[1][4]

## Description of the libraries

- QGPL – general purpose library

- QSYS – system library

- QSPL – spooling library

- QTEMP – temporary library

- QSRV – system service library

- QRECOVERY – system recovery library

## Data storage

In most computers prior to the System/38, and most modern ones, data stored on disk was stored in separate logical [files](/source/Computer_file). 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](/source/Single-level_store) architecture, where main storage and disk storage are organized as one, from the abandoned [IBM Future Systems project](/source/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 addressing

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

## Distributed data management

In 1986, System/38 announced support for [Distributed Data Management Architecture](/source/Distributed_Data_Management_Architecture) (DDM). Such a [middleware](/source/Middleware_(distributed_applications)) 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 languages

Languages supported on the System/38 included [RPG III](/source/RPG_III), [COBOL](/source/COBOL), [BASIC](/source/BASIC), and [PL/I](/source/PL%2FI). CPF also implements the [Control Language](/source/Control_Language) for System/38.[8]

## References

1. ^ [***a***](#cite_ref-inside-as400_1-0) [***b***](#cite_ref-inside-as400_1-1) [***c***](#cite_ref-inside-as400_1-2) Frank G. Soltis (1997). [*Inside the AS/400, Second Edition*](https://books.google.com/books?id=5DoPAAAACAAJ). Duke Press. [ISBN](/source/ISBN_(identifier)) [978-1882419661](https://en.wikipedia.org/wiki/Special:BookSources/978-1882419661).

1. **[^](#cite_ref-2)** ["IBM SYSTEM/38 CONTROL PROGRAM FACILITY RELEASE 8 AVAILABLE WITH ENHANCEMENTS"](https://www-01.ibm.com/common/ssi/cgi-bin/ssialias?appname=skmwww&htmlfid=897%2FENUS286-462&infotype=AN&subtype=CA). IBM. 1986-10-07. Retrieved 2021-04-07.

1. **[^](#cite_ref-3)** [*IBM System/38 Technical Developments*](http://bitsavers.org/pdf/ibm/system38/IBM_System_38_Technical_Developments_Dec1978.pdf) (PDF). IBM Product Design and Development, General Systems Division. 1980 [1978]. [ISBN](/source/ISBN_(identifier)) [0-933186-03-7](https://en.wikipedia.org/wiki/Special:BookSources/0-933186-03-7). G580-0237-1.

1. **[^](#cite_ref-4)** Soltis, Frank (September 1981). ["Design of a Small Business Data Processing System"](https://www.computer.org/csdl/magazine/co/1981/09/01667517/13rRUwciPii). *[IEEE Computer](/source/IEEE_Computer)*. **14**: 77–93. [doi](/source/Doi_(identifier)):[10.1109/C-M.1981.220610](https://doi.org/10.1109%2FC-M.1981.220610). [S2CID](/source/S2CID_(identifier)) [398484](https://api.semanticscholar.org/CorpusID:398484).

1. **[^](#cite_ref-5)** Mark Smotherman. ["IBM Future System (FS) - 1970s"](https://people.cs.clemson.edu/~mark/fs.html). Retrieved October 11, 2017.

1. **[^](#cite_ref-6)** Levy, Henry M. (1984). ["The IBM System/38"](http://www.cs.washington.edu/homes/levy/capabook/Chapter8.pdf) (PDF). *Capability-Based Computer Systems*. Digital Press. [ISBN](/source/ISBN_(identifier)) [0-932376-22-3](https://en.wikipedia.org/wiki/Special:BookSources/0-932376-22-3).

1. **[^](#cite_ref-Soltis2001_7-0)** Soltis, Frank G. (July 2001). [*Fortress Rochester: The Inside Story of the IBM ISeries*](https://books.google.com/books?id=ypJmzqt7JdUC). 29th Street Press. p. 119. [ISBN](/source/ISBN_(identifier)) [978-1-58304-083-6](https://en.wikipedia.org/wiki/Special:BookSources/978-1-58304-083-6)..

1. **[^](#cite_ref-8)** ["IBM System/38 Control Language Reference Manual"](http://bitsavers.org/pdf/ibm/system38/SC21-7731-5_System_38_Control_Language_Reference_Manual_to_pg_4-708_198209.pdf) (PDF). IBM. 1982-09-10. Retrieved 2021-03-24.[*[permanent dead link](https://en.wikipedia.org/wiki/Wikipedia:Link_rot)*]

## External links

- [Control Program Facility Concepts Manual](http://www.bitsavers.org/pdf/ibm/system38/GC21-7729-0_System_38_Control_Program_Facility_Concepts_Manual_Oct78.pdf) (PDF file)

- [Control Program Facility Programmer's Guide](http://www.bitsavers.org/pdf/ibm/system38/SC21-7730-0_System_38_Control_Program_Facility_Programmers_Guide_Jan79.pdf) (PDF file)

v t e Operating systems by IBM Supercomputer INK CNK Red Hat Enterprise Linux Server, mainframe IBSYS BOS/360 TOS/360 TSS/360 RAX DOS/360 and successors VSE OS/360 and successors OS/VS1 SVS MVS OS/390 z/OS VM line ACP TPF CPF System/88 OS IBM i AIX zLinux DPCX DPPX SSP SRTOS Red Hat Enterprise Linux Desktop, workstation Textpack PC DOS DOS/V PC/IX AIX OS/2 AOS Red Hat Enterprise Linux Point of sale 4680 OS 4690 OS Projects Taligent Workplace OS Monterey Trillian K42 Related Fedora Linux Category

---
Adapted from the Wikipedia article [Control Program Facility](https://en.wikipedia.org/wiki/Control_Program_Facility) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Control_Program_Facility?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
