CMS filesystem
Line 19: | Line 19: | ||
* [[Wikipedia:CMS_file_system|Wikipedia article]] | * [[Wikipedia:CMS_file_system|Wikipedia article]] | ||
− | [[Category:IBM]] | + | [[Category:IBM mainframe]] |
Latest revision as of 12:47, 2 January 2021
The CMS minidisk filesystem is the original filesystem of the IBM mainframe z/VM operating system (previously known as VM/CMS).
It has no concept of subdirectories, all files being stored in the root directory. However, it was normal to give each user their own virtual disk, to keep each user’s files separate. Users could share disks with each other. Each disk was mounted using a drive letter A-Z, with drive A normally being each user’s own primary disk. Hexadecimal IO addresses were used to identify disks in a user-independent manner.
Files were given maximum 8 character names with a maximum 8 character extension (called a "filetype"). A space rather than a dot was used to separate the name and extension. An example of a file path is `NOTES TEXT A1` – that means the file is called `NOTES`, it is of type `TEXT`, and it is located on minidisk `A`. The `1` is file permissions.
The original format of CMS minidisks is called CDF. In VM/SP (released 1980), an enhanced version was introduced called "Enhanced Disk Format (EDF)".
Later, VM/CMS introduced two new filesystems: Shared File System (SFS) and Byte File System (BFS). SFS is similar to the minidisk filesystem, but it supports subdirectories. In SFS, a directory has a name like `POOL1:USER1.MY.DIR` – the part before the colon is a file pool name, whereas directory levels are separated by dots.
BFS has some architectural commonality with SFS, but it is designed for Unix compatibility. So it supports Unix file naming conventions. And, while, like most mainframe filesystems, the CMS minidisk and SFS filesystems are record-oriented – meaning files consist of fixed-length or variable-length records, and the filesystem and OS manages record boundaries – the BFS filesystem is byte-oriented as Unix filesystems are, files being arbitrary streams of bytes with any record organisation being maintained at the application level, not in the filesystem or OS.