UCSD p-System
From Wikipedia, the free encyclopedia
UCSD p-System or UCSD Pascal System was a portable, highly machine independent operating system based upon UCSD Pascal. The University of California, San Diego Institute for Information Systems developed it in 1978 to provide students with a common operating system that could run on any of the then available microcomputers as well as campus DEC PDP-11 minicomputers. UCSD p-System (Version IV, supplied by SofTech) was one of three operating systems (along with PC-DOS and CP/M-86) that IBM offered for its original IBM PC; but the p-System never sold very well for the IBM PC, mainly because of a lack of applications and because it was more expensive than the other choices. Before that, IBM used the UCSD p-System as the operating system for its Displaywriter, a microcomputer-based dedicated word processing machine (not to be confused with IBM's DisplayWrite word processing software).
UCSD p-System began around 1977 as the idea of UCSD's Kenneth Bowles, who believed that the number of new computing platforms coming out at the time would make it difficult for new programming languages to gain acceptance. He was particularly interested in Pascal as a language to teach programming. UCSD introduced two features that were important improvements on the original Pascal: variable length strings, and "units" of independently compiled code (an idea taken from the then-evolving Ada programming language). Niklaus Wirth credits the p-System, and UCSD Pascal in particular, with popularizing Pascal. It was not until the release of Turbo Pascal that UCSD's version started to slip from first place among Pascal users.
UCSD p-System achieved machine independence by defining a virtual machine, called the p-Machine (or pseudo-machine, which many users began to call the "Pascal-machine" like the OS—although UCSD documentation always used "pseudo-machine") with its own instruction set called p-Code (or pseudo-code). Urs Ammann, a student of Niklaus Wirth, originally presented p-Code in his PhD thesis (see Urs Ammann, On Code Generation in a Pascal Compiler, Software—Practice and Experience, Vol. 7, No. 3, 1977, pp. 391–423). This p-Code was optimized for generation by the Pascal programming language, and all the original development was done in UCSD Pascal. Each hardware platform then only needed a p-Code interpreter program written for it to port the entire p-System and all the tools to run on it. Later versions also included additional languages that compiled to the p-Code base. For example, TeleSoft (also located in San Diego) offered an early Ada development environment that used p-Code and was therefore able to run on a number of hardware platforms including the Motorola 68000, the System/370, and the Pascal MicroEngine.
UCSD p-System shares some concepts with the more current Java platform. Both use a virtual machine to hide operating system and hardware differences, and both use programs written to that virtual machine to provide cross-platform support. Likewise both systems allow the virtual machine to be used either as the complete operating system of the target computer or to run in a "box" under another operating system.
There were four versions of UCSD p-Code engine, each with several revisions of the p-System and UCSD Pascal. A revision of the p-Code engine (i.e., the p-Machine) meant a change to the p-Code language, and therefore compiled code is not portable between different p-Machine versions. Each revision was represented with a leading Roman Numeral, while operating system revisions were enumerated as the "dot" number following the p-Code Roman Numeral. For example, II.3 represented the third revision of the p-System running on the second revision of the p-Machine.
- Version I
-
- Original version, never officially distributed outside of the University of California, San Diego. However the Pascal sources for both Versions I.3 and I.5 were freely exchanged between interested users. Specifically the patch revision I.5a was known to be one of the most stable.
- Version II
-
- Widely distributed, available on many early microcomputers. Numerous versions included Apple II, DEC PDP-11, Zilog Z80 based machines, Motorola 68000 and the IBM PC (Version II on the PC was restricted to one 64K code segment and one 64K stack/heap data segment, Version IV removed the code segment limit but cost a lot more).
- Version III
-
- Custom version written for Western Digital to run on their Pascal MicroEngine microcomputer. Included support for parallel processes for the first time.
- Version IV
-
- Commercial version, developed and sold by SofTech. Based on Version II, did not include changes from Version III. Did not sell well due to combination of their pricing structure, performance problems due to p-Code interpreter, and competition with native operating systems (which it often ran on top of). After SofTech dropped the product, it was picked up by Pecan Systems, a relatively small company formed of p-System users and fans. Sales revived somewhat, due mostly to Pecan's reasonable pricing structure, but the p-System and UCSD Pascal gradually lost the market to native operating systems and compilers.
[edit] See also
[edit] References
- UCSD PASCAL System II.0 User's Manual March 1979 — Institute for Information Systems, UCSD. Copyright 1978 Regents of the University of California.
[edit] External links
- As of May, 2006 UCSD has released portions of the p-System written before June 1, 1979 for non-commercial use. (warning: link resizes browser window!)
- There was a 30th reunion of the UCSD Pascal team at UCSD. An article in UCSD's alumni magazine and slides plus video are available from the event.
- The Jefferson Museum has a virtual exhibit of the P-System's history.
- Hans Otten's pages on Pascal.
- There's a Yahoo Group where the UCSD p-System is discussed.