CMS file system: Difference between revisions

Content deleted Content added
mNo edit summary
 
(35 intermediate revisions by 15 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]] . UntilIt was the only file system for CMS until the introduction of the [[CMS Shared File System]] with [[VM/SP]] it was the only file system for CMS.<ref name="VMLogic">{{cite book|last1=IBM Corporation|title=IBM ViritalVirtual 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 minidiaks 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> A CMS minidisk is formatted into 800-byte [[block (data storage)|blocks]].
 
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".
Later versions of CMS allowed minidisks formatted as 1024-, 2048-, or 4096-byte blocks, which increased the limits described here by 2**311132,000 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>
 
A CMS minidisk in early versions of CMS is formatted into 800-byte [[block (data storage)|blocks]]. Later versions of CMS allowedallow minidisks formatted as 1024-, 2048-, or 4096-byte blocks, which increased the limits described here byto 2**311132,000<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 <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".
 
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]], pointers to all files on the disk are stored in the MFD. The MFD contains an array of disk addresses of blocks containing ''File Status Table'' (FST) (directory) entries. Following these is information describing the status of the disk used by allocation. 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 49 ⟶ 50:
The FST entry points to the first ''chain link block'' for the file. The first chain link block contains the disk addresses of up to 40 additional chain link blocks, followed by the disk addresses of up to 60 data blocks. The remaining chain link blocks each contain the disk addresses of up to 400 data blocks. this results in a maximum size of 16,060 800-byte blocks, or 12,848,000 bytes, for any CMS file. The maximum number of records in one file is 65,533.
 
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 itemblock number and the remainder will be the offset intoof 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
| 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
}}
</ref> to the original CMS file system, 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:Disk file systems]]
[[Category:IBM file systems]]
[[Category:IBM mainframe operating systems]]
[[Category:ComputerVM file systems|(operating system)]]
 
{{computing-stub}}