CMS file system: Difference between revisions

Content deleted Content added
No edit summary
mNo edit summary
 
(20 intermediate revisions by 9 users not shown)
Line 1:
{{Short description|File system of the IBM VM/CMS}}
The '''CMS file system''' is the native [[file system]] of [[IBM]]'s [[Conversational Monitor System]] (CMS), a component of [[VM/370 (operating system)|VM]] . It was the only file system for CMS until the introduction of the [[CMS Shared File System]] with [[VM/SP]].<ref name="VMLogic">{{cite book|last1=IBM Corporation|title=IBM Virtual Machine Facility/370|date=1976|page=178-|url=http://bitsavers.trailing-edge.com/pdf/ibm/370/VM_370/plm/SY20-0885-0_VM370_System_Logic_and_Problem_Determination_Guide_1976.pdf|accessdate=August 3, 2016}}</ref>
 
==Minidisks {{anchor|minidisk}}==
==Disk organization==
[[CP-67]] and [[VM (operating system)|VM]] allow an installation to divide a disk volume into virtual disks called [[Minidisk (VM)|minidisks]]. A minidisk may be a CMS minidisk, initialized with the CMS file system. Other minidisks might be formatted for use by, e.g., [[OS/360]], but these are not CMS minidisks even if they are assigned to a CMS virtual machine.{{efn|Minidisks have virtual channel and unit addresses (CUU) or subchannel numbers, which appear to the virtual machine to be real disk addresses. At the time IBM developed CP-67 and VM, real hardware devices were conventionally installed at specific addresses, for example address 190 would normally be a disk device '90'x on channel 1, and minidisks are still usually defined to CP following this convention. With VM/XA SP2.1 IBM shipped the bimodal CMS 5.5, which could run in an XA virtual machine, and with z/VM V4 stopped allowing an installation to define an S/370 mode virtual machine; due to these changes, the cuu address form is no longer relevant.}}
CMS uses [[virtual disk]]s called ''minidisks'' to store files. A minidisk is a contiguous subset of a real disk which functions like a real disk. VM allows minidisks to contain various types of data such as [[OS/360]] or [[DOS/360]] datasets as well as CMS-formatted data.
 
A CMS virtual machine can have up to ten minidisks ''accessed'' duringat one sessiontime{{efn|There can be additional minidisks assigned to the CMS virtual machine but not accessed for use by the CMS file system.}}. The user references the minidisks by a letter, part of a field called the ''{{not a typo|filemode}}''. The ''S'' disk contains CMS system files and is read-only; the ''Y'' disk is usually an extension of ''S''. The read/write ''A'' disk contains user files such as customization data, program sources, and executables. Other drive letters ''B'' through ''Z'' can contain data as defined by the user. If a file is opened without a {{not a typo|filemode}} letter specified (<code> FILENAME FILETYPE *</code>) the disks will be searched in alphabetic order. The second character of the {{not a typo|filemode}} is a number indicating read, write, and sharing attributes.<ref name="IBMKB">{{cite web|last1=IBM Corporation|title=File Mode Letters and Numbers|url=https://www.ibm.com/support/knowledgecenter/SSB27U_6.2.0/com.ibm.zvm.v620.dmsb3/letnums.htm|website=IBM Knowledge Center|accessdate=August 3, 2016}}</ref>
 
The <code>ACCESS</code> command is used to access a minidisk. For example: <code>ACCESS 191 A</code> would access the virtual disk assigned to this user as unit "191" (virtual channel and unit address) as minidisk "A".
 
A CMS minidisk in early versions of CMS is formatted into 800-byte [[block (data storage)|blocks]]. Later versions of CMS allow minidisks formatted as 1024-, 2048-, or 4096-byte blocks, which increased the limits described here to 2<sup>31</sup> disk blocks and 2<sup>31</sup> records.<ref>{{cite book|last1=IBM Corporation|title=I BM Virtual Machine Facility/370: CMS User's Guide|date=March 1979|page=83|url=http://bitsavers.trailing-edge.com/pdf/ibm/370/VM_370/Release_6/GC20-1819-2_IBM_Virtual_Machine_Facility_370_CMS_Users_Guide_Rel_6_PLC_1_Mar79.pdf|accessdate=August 3, 2016}}</ref>
 
The first two blocks on a minidisk are reserved for [[Booting#IPL|IPL]]. The third block contains the [[Volume (computing)#Volume label|label]] identifying the minidisk. The fourth block, called the ''Master File Directory'' or MFD, is the [[Directory (computing)|directory]] header for the minidisk. The MFD also contains a [[bitmap]] called ''QMSK'' indicating the status of each 800-byte block on disk, used for allocation. Following the MFD all record types may be scattered and intermixed on a disk.
 
==File system structure==
CMS uses a [[flat file system]]. The MFD contains an array of disk addresses of blocks containing ''File Status Table'' (FST) (directory) entries. Each FST block contains twenty 40-byte FST entries, each describing a file. The contents of one FST entry are:<ref name="DataAreas">{{cite book|last1=IBM Corporation|title=IBM Virtual Machine Facility/370: Data Areas and Control Block Logic|date=February 1976|page=179|url=http://bitsavers.informatik.uni-stuttgart.de/pdf/ibm/370/VM_370/plm/SY20-0884-0_VM370_Rel_3_Data_Areas_and_Control_Block_Logic_Feb76.pdf}}</ref><ref name="FSTD">{{cite web |title=FSTD |url=https://www.ibm.com/docs/en/zvm/7.1?topic=instructions-fstd |website=www.ibm.com |publisher=IBM |access-date=11 May 2021}}</ref>
{| class="wikitable"
|-
Line 28 ⟶ 29:
| 20 || 2 || FSTWRPNT || Write pointer [item number] (binary)
|-
| 22 || 42 || FSTRDPNT || Read pointer [item number] (binary)
|-
| 24 || 2 || FSTFMODE || {{not a typo|Filemode}}
|-
| 26 || 2 || FSTRECCT || Record [item] count
Line 51 ⟶ 52:
Records are usually called ''items'' in CMS terminology. CMS files can have either ''fixed'' or ''variable'' record format; record types may not be mixed in a file. For fixed-length records the length is defined by FSTLRECL, and the ___location of any fixed-length record can be computed by (item_number-1) * record_length/800. The quotient will be the block number and the remainder will be the offset of the item in the block. Variable-length records have a maximum length of FSTLRECL bytes, and are preceded by a two-byte record length field indicating the actual length.
 
In 1979, Virtual Machine/System Extensions (VM/SE or SEPP) Release 2 and Virtual Machine/Basic System Extensions (VM/BSE or BSEPP) Release 2 provided an enhancement<ref>{{cite conference
An enhancement to the original CMS file system in [[z/VM]], called ''Enhanced Disk Format'' (EDF), allows larger files by expanding the FST and introducing multiple levels of chain link blocks.<ref>{{cite web|title=The CMS EDF file system|url=http://dforeman.cs.binghamton.edu/~foreman./550pages/VM/CMS-File-System-1.doc|website=binghamton.edu|accessdate=August 5, 2016}}</ref><ref>{{cite web|last1=IBM Corporation|title=FSTD|url=http://www.vm.ibm.com/pubs/cms530/FSTD.HTML|website=ibm.com|accessdate=August 5, 2016}}</ref>
| conference = SHARE 89
| title = VM and the VM Community: Past, Present, and Future
| at = Sessions 9059-9061, M. After the Doubtful Decade
| quote = 1979 brought us VM/370 Release 6 and Release 2 of BSEPP and SEPP, with logical device support, the EDF file system,
| author = Melinda Varian
| date = August 1977
| url = http://www.leeandmelindavarian.com/Melinda/25paper.pdf
}}
An enhancement</ref> to the original CMS file system in [[z/VM]], called ''Enhanced Disk Format'' (EDF), that allows larger files by expanding the FST and introducing multiple levels of chain link blocks.<ref>{{cite web|title=The CMS EDF file system|url=http://dforeman.cs.binghamton.edu/~foreman./550pages/VM/CMS-File-System-1.doc|website=binghamton.edu|accessdate=August 5, 2016|archive-date=August 19, 2016|archive-url=https://web.archive.org/web/20160819034427/http://dforeman.cs.binghamton.edu/~foreman./550pages/VM/CMS-File-System-1.doc|url-status=dead}}</ref><ref>{{cite web|last1=IBM Corporation|title=FSTD|url=http://www.vm.ibm.com/pubs/cms530/FSTD.HTML|website=ibm.com|date=21 March 2002 |accessdate=August 5, 2016}}</ref>
 
==See also==
* [[IBM System/360 architecture]]
* [[IBM ESA/390|ESA/390]]
* [[z/Architecture]]
 
==Notes==
{{Notelist}}
 
==References==
{{Reflist}}
 
[[Category:IBMDisk mainframe operatingfile systems]]
[[Category:IBM file systems]]
[[Category:IBM mainframe operating systems]]
[[Category:VM (operating system)]]