11

There are three common CLI commands on microcomputers that all mean the same thing: "Show me the contents of a volume, disk, or sub-directory". I will mention that the noun "Catalogue", and the derived command catalog, always made the most sense to me. But that's just my preference and one could argue that the more generic nouns "List" or "Directory" are also appropriate.

My question is about the history of catalog and why it fell out of favour.

I understand the lineage of ls, being short for "List", and coming from Multics and Unix. And I understand the parallel history of dir, short for "Directory", coming from DEC and CP/M. I have not found historical references to explain where catalog originated, and whether it preceded dir and ls.

Is there a backstory to the catalog command, with a traceable history of where it was used and why? Also, is there any explanation for why the early CLI developers created this confusion of three commands for the same function?

  • 2
    Completely off topic, but dir has always bothered me for not being a verb. – Tommy Feb 11 at 15:09
  • 1
    I used a GECOS TSS system in the early 1970s, and it used the term "catalog" the way "folder" and "directory" are used today on Windows and Unix-type systems. I don't remember it being used as a verb though. – Ray Butterworth Feb 12 at 1:01
  • 3
    @Tommy If you asked me to catalog my sock drawer, I would create a list of the socks in it. I wouldn't show that list to you. That would be a separate command. – Acccumulation Feb 12 at 5:34
  • 1
    @Acccumulation If I say "drink", I expect my butler to know I mean "give me a drink", not "perform the action of drinking". You're possibly the only person who expects that. – RonJohn Feb 12 at 14:19
  • 1
    As an aside to my aside: I had a quick look at the list of common UNIX commands to decide whether it's even legitimate to expect a verb — whether there's a correlation, under that OS at least. But I'm not even sure one can fairly evaluate that, owing to things that have been verbified in computing (and the research that'd be needed for cause versus effect there), and the lack of canonical expansions of things like 'diff'. So I was hoping potentially to prove myself foolish, but failed even at that. – Tommy Feb 12 at 20:38
9

A plausible but impossible-to-prove history could be that the HP 2000A Time-Shared BASIC System (1968–~1976) had the CATALOG command (see http://bitsavers.trailing-edge.com/pdf/hp/2000TSB/22687-90009_LearningTSB.pdf, page 39). Woz ‘grew up’ with HP systems, so it may have been natural that the Apple disk system was inspired by HP commands (as with DEC inspiring CP/M / MS-DOS). Dartmouth BASIC had CATALOG before that: maybe it originally came from GE computer systems?

Acorn copied Apple's CAT for the BBC Micro's DFS command *CAT, and in turn, Amstrad/Locomotive used CAT on the Amstrad CPC system.

| improve this answer | |
  • That wouldn’t be the first Apple BASIC feature inspired by HP! – Stephen Kitt Feb 11 at 14:00
  • That seems like a strong connection for micros going back to the first BASIC. Some versions of CBM BASIC also included catalog. – Brian H Feb 11 at 20:24
  • "Maybe it came from GE comouter system" -- I don't think GE had an interactive timesharing system before DTSS (that's why Dartmouth had to invent one). But I could be wrong on that. And of course batch systems have commands too. – another-dave Feb 12 at 0:08
  • Apple DOS was (mostly) written by Shepardson Microsystems but Woz might have added an HP influence. Interestingly Atari DOS also written by Shepardson uses "Directory" – PeterI Feb 12 at 16:10
11

Original all three have different meanings and are (in part) based on different implementations. But, as you already assume in your answer, people may have taken the name and used it with differend (usualy simpler) implementations

Is there a backstory to the catalog command

The term "Catalog(ue)" goes quite in line how IBM's terminology is based on analogies to a library. A tape was called a Volume - like a book - structured with a volume labels (VOL1..9) holding information about the tape and header label (HDR1..9) for each file. A HDR1 label is essentially a description of the file (*1). Disks or DASD, as they called it, were as well named volumes and followed that same scheme. Now all HDR1 records are moved into a series of blocks building the Volume Table Of Content (VTOC). Much like in a book. Continuing analoge the collection of all files (Data Sets in IBM lingo) is called a Catalog.

In practical ways it's used by operating systems with a seperate database for all files known to an installation, eventually across multiple disks and tapes, online and offline as well (*2).

This wasn't only used by IBM, but followed by many others. Some in fact based the whole data management around such a catalogue. A nice example here is RCA's TSOS, where the system volume set always contained such a system catalogue. Like most systems of the time the basic structure of files on tape or disk were organized with 100% IBM compatible style volume labels (plus some extensions).

Adding a volume to the system also meant importing all VTOC (Volume Table Of Content) entries from that volume to the system catalogue. The information stayed there, no matter if the volume was online (mounted in a disk or tape drive) or offline. To purge an entry it had to be explicite 'exported'.

Such a catalogue allowed not only to hold additional information about the file, as well as spreading files across multiple volumes (*3), but most important to hold a catalogue of all files of all volumes known to the system. As a result meta information could be accessed without mounting a specific volume. Most important here would be the volume name itself, as now a user program could simply request access to a file, without caring or even knowing on what volume it is stored. The system would simply open it if online, or inform the operator got which volume to bring online. Quite an important layer of abstraction for larger installations.

On TSOS the command FSTAT (FileStatus) was used to enquire information about a file or groups of files.

IBM itself of course used a similar catalogue system on their early operating systems continuing until today's zOS with a VTOC on each volume listing all Data Sets (their lingo for files) and a master-catalog, holding all known volumes, files and user-catalogs (*4), on their system volume.

Similar the term "Directory" is taken from real world directories. Were a catalogue collects multiple information items in an entry to be searched and manipulated, a directory offers directions to find something. Like a phone directory, a cities street directory, a store directory in a mall, or a mercantile directory of suppliers. Directories are usual a one on one relations listing some primary information under a secondary key.

"List" in contrast to "Directory" or "Catalog" is not named about the storage structure accessed, but simply named from the user side view of listing all files within a given context.


P.S.: I really miss the power of a system wide catalogue.


*1 - Fun part: all these headers are essential 80 bytes in size ;)

*2 - To avoid confusion, this is not about some optional file data base - like handy for many systems all the way down to the C64 - but catalogues as integral part of the OS. Neither TSOS of the 1970s nor today's zOS will start up without a valid system catalogue residing on the startup drive.

*3 - Parts on each volume looked like simple files, consistent only as storage within the volume. Somewhat like archivers used to spread large files/archives over multiple floppies.

*4 - No, these are not subdirectories, but complete stand alone catalogues that are mapped into the system catalogue when attached. This is useful to import and export whole groups of volumes, for example if the storage complex of another system has to be mounted to take over its workload.

| improve this answer | |
  • The interpretation of "catalog" as meaning a system-wide file database seems to me to lack evidence as to priority. More likely it's just a handy name for any list-of-files. – another-dave Feb 11 at 15:31
  • @another-dave Mind to specify what you mean with 'lack of evidence'? The catalog in such systems isn't an optional data base, but the primary mechanic for file handling. On IBM systems they are available since (at least) OS/360 times. – Raffzahn Feb 11 at 15:42
  • I'm aware of single-catalog file systems. I'm disputing that the verb "catalog", used elsewhere, comes from such systems. I think it's a perfectly natural verb for getting a list of something, in this case files. – another-dave Feb 11 at 16:03
  • @another-dave Oh, no doubt, it's a perfect natural association. Exactly like a catalogue at a university's library, thus used here as well, isn't it? Now, if that's your point, you may want to write an answer describing that there is no association of any kind and likeliness of use for either are simply random - a bit along the lines scruss' answer tells. As for myself, I always saw the distinction about the way file information is managed and this management is called - note that in the example no command called 'catalog' is mentioned. – Raffzahn Feb 11 at 16:16
6

The question asks about microcomputer operating systems. I think the answer for such systems is that the authors simply reused whatever words they were familiar with from earlier systems.

For earlier systems, I further guess that the authors of those systems just used whatever seemed like a good word at the time, and which they hadn't already used for some other purpose.

I made a survey of a handful of early timesharing systems, mostly from manuals on bitsavers.org, to determine what the command was for "give me a list of my files".

Dartmouth DTSS, 1964 - CATALOG
MIT CTSS, 1965 - LISTF
SDS940 Timesharing System, 1967 - FILES
ICL 1900 GEORGE 3, 1969 - LISTDIR
DEC TOPS-10, 1970 - DIRECT
Leeds Univ Eldon2, 1971 - SUMMARY

The dates are the dates on the manuals that were available, and do not necessarily indicate the year the system or command first became available.

As you can see, they're all over the place, not necessarily verbs or even words. I didn't intentionally select systems where I knew I'd get no commonality at all; I selected 3 systems with historical significance and 3 systems I'd used personally.

(FWIW, the TOPS-10 command was 'DIRECT' and not 'DIRECTORY' -- command names were one 36-bit machine word.)

So, with respect to the actual questions asked:

Is there a backstory to the catalog command, with a traceable history of where it was used and why?

My opinion (and it's only an opinion) is that it's an English word that more or less accurately describes the action being performed, so seemed like a good choice to someone.

Also, is there any explanation for why the early CLI developers created this confusion of three commands for the same function?

And my opinion on this is that other programmers made other equally valid but equally arbitrary choices. Operating systems were local affairs. There was no perceived need for standardization, if people even knew what others were doing.


Side note: I come from a computing tradition where computers didn't have an ALU (Arithemtic/Logical Unit), they had a "mill". They didn't have memory, they had a "store". No kernel, rather a "director" or an "exec". Words were not divided into bytes but "syllables". Evaluation occurred not on a stack but on a "nest". So I think there's ample empirical evidence that says that terminology starts off localized in the early days of development, and only becomes standardized after some critical mass is achieved.

| improve this answer | |
  • *10 for the side note:) I grew up in an environment were code was a PHASE, a CPU hadn't a name in it self but was part of a ZE, an OS consists of an EXEC (or MONITOR), that was available in source and usually patched by the application to change function or free STORAGE (not RAM). WORDs were divided in HALFWORDs and BYTEs which had ZONEs. There was no stack but a SAVE-AREA and PARAMETER-BLOCKs. So yes, vocabulary is quite related to circumstances and environment. What seams like a fixed set of terms today is neither god given nor has it always been that way. – Raffzahn Feb 12 at 13:35
  • That's very nteresting, what computing tradition did you come from? I've never heard the usages you mention in your final paragraph side note. – LAK Feb 12 at 15:46
  • 1
    @LAK - Britain, which once had a computer industry. "Mill" and "store" are ICT/ICL words, they got them from Babbage, who regarded his Analytical Engine as an arithmetic analogue to Victorian industrialization. "Exec[utive]" was also ICL/ICT 1900 series, might have come from the Ferranti-Packard FP6000. "Director" was English Electric KDF9. "Nesting store" (nest for short) was a hardware stack on KDF9. "Syllable" likewise KDF9; an 8-bit subdivision of a 48-bit word. – another-dave Feb 12 at 17:29
4

The first filesystems were not stored on disk, but on tape. Usually tapes could only reliably be appended to or overwritten entirely, and could only be accessed in a more-or-less sequential order. Reading the entire tape just to find out what was stored on it was a very slow operation.

It's likely that the terms catalogue and list originated from a handwritten (or printed) card provided with a tape, simply as a quick reference to its contents and the correct names to identify each file. The first "catalogue" commands would have read the tape sequentially, to produce such a card automatically for future reference - and that is what Acorn's *CAT does when the tape filesystem is active. *CAT is still supported by currently-maintained versions of RiscOS Open, although you won't find a tape filesystem there; it is just the local equivalent to the UNIX ls.

With the advent of disk filesystems which supported random access, the focus shifted from merely listing the contents of the disk, to directing the read head rapidly to the correct position to find a particular file. This was likely the origin of the term directory. It was soon developed to include a hierarchical or categorical organisation of files for users' benefit, in which sense the usage of "directory" survives in modern computers. UNIX has cd for "change directory" and mkdir for "make directory", for example.

In the mid-1980s, Apple introduced the Macintosh, and used the desktop metaphor of a folder to convey the concept of a hierarchical disk directory to non-specialised users. This is ultimately a fourth term for the same basic concept. MacOS X is based on a UNIX kernel and supports UNIX shell commands, but the filesystem is still presented to the end user as folders - even in the online help for the Terminal, through which the UNIX shell is normally accessed.

| improve this answer | |
  • 3
    "Directory" was and is a commonplace word for a list of names to locations or similar - "store directory" in department store, "phone directory" for name-to-number lookups, and so forth. – another-dave Feb 12 at 0:21
  • 1
    @another-dave Both directory and catalogue date back to Late Middle English as words, from Latin roots. That's Chaucer era. I'm commenting on their specific usage in the context of computer filesystems. – Chromatix Feb 12 at 16:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.