Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
VM (operating system)
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Hypervisor interface == IBM coined the term ''hypervisor'' for the [[IBM System/360 Model 65|360/65]]<ref>{{cite conference | url = https://www.computer.org/csdl/proceedings/afips/1971/5077/00/50770163.pdf | title = System/370 integrated emulation under OS and DOS | author = Gary R. Allred | page = 164 | quote = The Hypervisor concept was relatively simple. It consisted of an addendum to the emulator program and a hardware modification on a Model 65 having a compatibility feature. The hardware modification divided the Model 65 into partitions, each addressable from 0-n. The program addendum, having overlaid the system Program Status Words (PSW) with its own, became the interrupt handler for the entire system. After determining which partition had initiated the event causing the interrupt, control was transferred accordingly. The Hypervisor required dedicated I/O devices fore each partition and, because of this, the I/O configurations were usually quite large, and, therefore, prohibitive to the majority of uses. | conference = 1971 [[Spring Joint Computer Conference]] | volume = 38 | doi = 10.1109/AFIPS.1971.58 | date = May 1971 | publisher = AFIPS Press | access-date = June 12, 2022 | archive-date = July 25, 2018 | archive-url = https://web.archive.org/web/20180725063513/https://www.computer.org/csdl/proceedings/afips/1971/5077/00/50770163.pdf | url-status = live }}</ref> and later used it for the DIAG handler of CP-67. The ''Diagnose'' instruction ('83'x—no mnemonic) is a ''privileged instruction'' originally intended by IBM to perform "built-in diagnostic functions, or other model-dependent functions."<ref>{{cite manual |title=IBM System/370 Principles of Operation |date=1987 |page=10-5 |url=http://bitsavers.org/pdf/ibm/370/princOps/GA22-7000-10_370_Principles_of_Operation_Sep87.pdf |publisher=[[IBM]] |access-date=August 17, 2019 |archive-date=September 29, 2019 |archive-url=https://web.archive.org/web/20190929210055/http://bitsavers.org/pdf/ibm/370/princOps/GA22-7000-10_370_Principles_of_Operation_Sep87.pdf |url-status=live }}</ref> IBM repurposed DIAG for "communication between a virtual machine and CP."<ref name=SysProg>{{cite manual | title = IBM Virtual Machine Facility/370: System Programmer's Guide | id = GC20-1807-7 | date = Mar 1979 | edition = Eighth | pages = | section = DIAGNOSE Instruction in a Virtual Machine | section-url = http://bitsavers.org/pdf/ibm/370/VM_370/Release_6/GC20-1807-7_VM370_System_Programmers_Guide_Rel_6_4-81.pdf#page=213 | url = http://bitsavers.org/pdf/ibm/370/VM_370/Release_6/GC20-1807-7_VM370_System_Programmers_Guide_Rel_6_4-81.pdf | access-date = August 17, 2019 | ref = SysProg | publisher = IBM | archive-date = April 2, 2020 | archive-url = https://web.archive.org/web/20200402034703/http://bitsavers.org/pdf/ibm/370/VM_370/Release_6/GC20-1807-7_VM370_System_Programmers_Guide_Rel_6_4-81.pdf | url-status = live }}</ref><ref>{{cite manual | title = z/VM Version 7 Release 2 CP Programming Services | id = SC24-6272-04 | date = August 12, 2020 | section = Chapter 1. The DIAGNOSE Instruction in a Virtual Machine | section-url = https://www.vm.ibm.com/library/720pdfs/72627204.pdf#page=49 | page = 3 | quote = In a real processor, the DIAGNOSE instruction performs processor-dependent diagnostic functions. In a virtual machine, you use the DIAGNOSE interface to request that CP perform services for your virtual machine. When your virtual machine attempts to execute a DIAGNOSE instruction, control is returned to CP. CP uses information provided in the code portion of the instruction to determine what service it should perform. Once this service is provided, control returns to the virtual machine. | url = https://www.vm.ibm.com/library/720pdfs/72627204.pdf | publisher = IBM | access-date = May 9, 2021 | archive-date = April 30, 2021 | archive-url = https://web.archive.org/web/20210430064359/https://www.vm.ibm.com/library/720pdfs/72627204.pdf | url-status = live }}</ref> The instruction contains two four-bit register numbers, called Rx and Ry, which can "contain operand storage addresses or return codes passed to the DIAGNOSE interface," and a two-byte code "that CP uses to determine what DIAGNOSE function to perform."<ref name=SysProg /> The available diagnose functions include: {| class="wikitable" |- ! Hexadecimal code !! Function |- | 0000|| Store Extended-Identification Code |- | 0004 || Examine Real Storage |- | 0008|| Virtual Console Function—Execute a CP command |- | 0018|| Standard DASD I/O |- | 0020 || General I/O—Execute any valid [[Channel command word|CCW]] chain on a tape or disk device |- | 003C || Update the VM/370 directory |- | 0058 || 3270 Virtual Console Interface—perform full-screen I/O on an [[IBM 3270]] terminal |- | 0060 || Determine Virtual Machine Storage Size |- | 0068 || Virtual Machine Communication Facility ([[VMCF]]) |} At one time, CMS was capable of running on a [[bare machine]], as a true operating system (though such a configuration would be unusual). It now runs only as a guest OS under VM. This is because CMS relies on a [[hypervisor]] interface to VM-CP, to perform file system operations and request other VM services. This [[paravirtualization]] interface: * Provides a fast path to VM-CP, to avoid the overhead of full simulation. * Was first developed as a performance improvement for [[CP/CMS]] release 2.1, an important early milestone in CP's efficiency. * Uses a non-virtualized, model-dependent machine instruction as a signal between CMS and CP: DIAG (diagnose).
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)