Talk:CMS file system

Minidisk (CMS)
It seems that Minidisk (CMS) redirects here. Maybe that isn't so bad, but it also doesn't seem right. VM(CP) minidisks can be formatted in any (or no) disk format, likely including those of OS/360 or MVS. Is there enough for an article on minidisks, separate from CMS? The reason I am wondering is discussion on History of IBM magnetic disk drives which leaves open the question about physical or logical devices. With devices like the 3390-A, which are logical even as seen without any OS, there should be somewhere discussed the idea of logical disk drives. Gah4 (talk) 00:10, 8 May 2021 (UTC)
 * Maybe a separate section in the CP/CMS article would be better? It was a unique feature of CP when it was introduced(?). Is there any material on where the idea came from? It certainly influenced many later systems including the PC-DOS partition tables. Peter Flass (talk) 01:29, 8 May 2021 (UTC)
 * There is also VM_(operating_system) and probably others. I am trying to understand all the ways that disks are virtualized, and how they should be discussed here. There is, for example, Network File System though that is at a higher level, but still...  Gah4 (talk) 02:35, 8 May 2021 (UTC)
 * I've added a generic description of minidisks to VM (operating_system) and updated my footnote to CMS file system to mention when cuu became irrelevant. Shmuel (Seymour J.) Metz Username:Chatul (talk) 10:23, 11 May 2021 (UTC)
 * It seems that minidisks should be discussed in Storage virtualization, although that article seems to be a mishmash. The lede says it's about I/O device virtualization, but it then seems to go on to talk about virtial storgage. Is the minidisk the earliest example of virtual disks? It would be nice to say that somewhere. Peter Flass (talk) 15:25, 11 May 2021 (UTC)
 * CP-67 is the first virtualization of disks that I'm aware of, but ASP and HASP virtualized unit record equipment, and DCS may have. 17:14, 11 May 2021 (UTC)Shmuel (Seymour J.) Metz Username:Chatul (talk)
 * Virtualization can be used to describe many different ways of doing things different from the original design. Mentioning ASP reminds me of its use of CTCs in its virtualizing. Given that IBM had the CTC, what all did they do with it? It is pretty much perfectly designed for virtualization of channel attached devices. The earliest OS/360 tests were run emulated on 7090s, as that is what they had. I presume also with virtualized disks. But I suppose they didn't sell those, so they aren't a product. But was CP-67 a product? Does it count if it wasn't? ASP was interesting, as it rewrites the JCL to reference the CTC device, instead of just pretending like HASP. And then there is the ASP VCTC, virtualization of the CTC when on the same machine. Gah4 (talk) 21:52, 11 May 2021 (UTC)
 * With ASP the CTCA looked like a tape drive; with HASP you had virtual readers, printers and punches; I don't know how DCS handled it. CP-67 was a type 3 program: no charge, no support. Shmuel (Seymour J.) Metz Username:Chatul (talk) 22:08, 11 May 2021 (UTC)
 * The thing about JCL and access methods, is that users can write programs without needing to know so much detail about the I/O devices. One can change the JCL and write to disk instead of SYSOUT=A. As far as I know, even on the lowest levels of OS/360, output is still spooled, though input might come from a card reader. Virtualization can be done at the device level, controller level, I/O instruction level, device driver level, or (when applicable) file system level. (Probably more that I didn't think about.) The actual implementation can be very different, but we call them all virtual. Gah4 (talk) 23:40, 11 May 2021 (UTC)
 * The access methods provide abstraction, not virtualization, and include device dependent functions, e.g., you can reposition a DASD or tape dataset, but not a card reader or printer. OS/360 supported direct use of a card reader, printer or punch, and, in particular, PCP did no spooling at all. I'm not sure what you mean by even on the lowest levels of OS/360, output is still spooled,; spooling is hadled by Job Management, which is at a fairly high level. Shmuel (Seymour J.) Metz Username:Chatul (talk) 08:31, 12 May 2021 (UTC)
 * Virtualization can be used to describe many different ways of doing things different from the original design. Mentioning ASP reminds me of its use of CTCs in its virtualizing. Given that IBM had the CTC, what all did they do with it? It is pretty much perfectly designed for virtualization of channel attached devices. The earliest OS/360 tests were run emulated on 7090s, as that is what they had. I presume also with virtualized disks. But I suppose they didn't sell those, so they aren't a product. But was CP-67 a product? Does it count if it wasn't? ASP was interesting, as it rewrites the JCL to reference the CTC device, instead of just pretending like HASP. And then there is the ASP VCTC, virtualization of the CTC when on the same machine. Gah4 (talk) 21:52, 11 May 2021 (UTC)
 * With ASP the CTCA looked like a tape drive; with HASP you had virtual readers, printers and punches; I don't know how DCS handled it. CP-67 was a type 3 program: no charge, no support. Shmuel (Seymour J.) Metz Username:Chatul (talk) 22:08, 11 May 2021 (UTC)
 * The thing about JCL and access methods, is that users can write programs without needing to know so much detail about the I/O devices. One can change the JCL and write to disk instead of SYSOUT=A. As far as I know, even on the lowest levels of OS/360, output is still spooled, though input might come from a card reader. Virtualization can be done at the device level, controller level, I/O instruction level, device driver level, or (when applicable) file system level. (Probably more that I didn't think about.) The actual implementation can be very different, but we call them all virtual. Gah4 (talk) 23:40, 11 May 2021 (UTC)
 * The access methods provide abstraction, not virtualization, and include device dependent functions, e.g., you can reposition a DASD or tape dataset, but not a card reader or printer. OS/360 supported direct use of a card reader, printer or punch, and, in particular, PCP did no spooling at all. I'm not sure what you mean by even on the lowest levels of OS/360, output is still spooled,; spooling is hadled by Job Management, which is at a fairly high level. Shmuel (Seymour J.) Metz Username:Chatul (talk) 08:31, 12 May 2021 (UTC)
 * The thing about JCL and access methods, is that users can write programs without needing to know so much detail about the I/O devices. One can change the JCL and write to disk instead of SYSOUT=A. As far as I know, even on the lowest levels of OS/360, output is still spooled, though input might come from a card reader. Virtualization can be done at the device level, controller level, I/O instruction level, device driver level, or (when applicable) file system level. (Probably more that I didn't think about.) The actual implementation can be very different, but we call them all virtual. Gah4 (talk) 23:40, 11 May 2021 (UTC)
 * The access methods provide abstraction, not virtualization, and include device dependent functions, e.g., you can reposition a DASD or tape dataset, but not a card reader or printer. OS/360 supported direct use of a card reader, printer or punch, and, in particular, PCP did no spooling at all. I'm not sure what you mean by even on the lowest levels of OS/360, output is still spooled,; spooling is hadled by Job Management, which is at a fairly high level. Shmuel (Seymour J.) Metz Username:Chatul (talk) 08:31, 12 May 2021 (UTC)
 * The access methods provide abstraction, not virtualization, and include device dependent functions, e.g., you can reposition a DASD or tape dataset, but not a card reader or printer. OS/360 supported direct use of a card reader, printer or punch, and, in particular, PCP did no spooling at all. I'm not sure what you mean by even on the lowest levels of OS/360, output is still spooled,; spooling is hadled by Job Management, which is at a fairly high level. Shmuel (Seymour J.) Metz Username:Chatul (talk) 08:31, 12 May 2021 (UTC)

I got this from IBM on the IBM-MAIN listserv. There are other issues with that article. In CP-67 and in the earlier releases of VM/370, there was indeed a limit of 6 file modes. In VM/370 those limits were relieved; you can see TNLs that did it in the VM/370 manuals on Bitsavers.

The FST format shown is from the CDF file system. EDF was part of SEPP or BSEPP ([Basic] System Extensions Program Product, I think), which was eventually integrated into VM/370, also visible in the VM/370 manual evolution. With EDF, those halfword fields weren't large enough, so the FST was expanded.

>Are there online documents listing the change dates? If so, I probably should add citations.

The announcement letters for each release along with the associated General Information manual let you piece together what was possible in each release.

And sorry if I wasn't clear about 370 mode. z/VM 3.1 could *run* CMS/370, but we stopped shipping it in Version 2.

Announcement 294-159 for VM/ESA [Version 1] Release 2.2 (6 April 1994) said:

"The CMS in VM/ESA Release 2.2 is the last release of CMS to run in a 370-mode virtual machine. Users still needing 370-mode CMS support are encouraged to run their 370 applications using the 370 Accommodation facility which became available in VM/ESA Release 2.1. 370-mode virtual machines will continue to be provided for use by guest operating systems and by applications which do not run on CMS. Many 370 applications can run unaltered in XA/XC mode. By testing the applications with 370 accommodation, customer can be assured their applications will run in XA/XC virtual machines under future releases of CMS."

Announcement 294-524 (13 Sept 1994) for VM/ESA Version 2 Release 1 (GA Oct 1995) had this to say:

"The CMS in VM/ESA Version 1 Release 2.2 (CMS 11) is the last release of CMS to run in a 370 mode virtual machine. The CMS in VM/ESA Version 2 (CMS 12) will not IPL in a 370 mode virtual machine. The removal of the 370-mode CMS helps to provide relief for storage constraints below the 16MB line. One megabyte of the CMS nucleus that was previously below the 16MB line will be moved above the line.

370 mode virtual machines will continue to be provided by CP for use by guest operating systems, applications that do not run on CMS, and previous releases of CMS. Users needing support for 370-mode applications are encouraged to run those applications using the 370 accommodation feature which became available in VM/ESA Version 1 Release 2.1. Verifying the execution of applications with the 370 accommodation feature allow customers to position those applications to run in XA or XC mode virtual machines under VM/ESA Version 2 and future releases of CMS."

I've asked whether any of the announcement letters are available online. to clarify, SEPP and VM/SE are abbreviations for the same product; likewise, BSEPP and VM/BSE are abbreviations for the same product. Shmuel (Seymour J.) Metz Username:Chatul (talk) 08:31, 12 May 2021 (UTC)
 * I once had the OS/360 starter system running, though it might have been release 21. It has something called the "direct sysout writer" to write sysout data, instead of it going directly.  I am not sure why it does that. But yes, I wasn't trying to say that access methods are virtualizing, but they do hide virtualization. As you noted, ASP sysout looks like tape. I presume that means that it uses tape access methods. It would seem that would also allow for backspace and other tape operations that wouldn't apply to printers. I am not sure how HASP does its spooling. Gah4 (talk) 11:03, 12 May 2021 (UTC)
 * I don't know of anybody that uses DSO, but it's a means of bypassing spooling for aelected output classes. The job writes directly to the printer and punch; OPEN loads support routines for unit-record equipment instead of for DASD.
 * I don't know of anybody that uses DSO, but it's a means of bypassing spooling for aelected output classes. The job writes directly to the printer and punch; OPEN loads support routines for unit-record equipment instead of for DASD.
 * I don't know of anybody that uses DSO, but it's a means of bypassing spooling for aelected output classes. The job writes directly to the printer and punch; OPEN loads support routines for unit-record equipment instead of for DASD.


 * AFAIK, ASP doesn't support backspacing SPOOL files.


 * Both ASP and HASP include changes to the operating system to let them intercept what they need to intercept. Shmuel (Seymour J.) Metz Username:Chatul (talk) 12:48, 12 May 2021 (UTC)