34

What does the "tab" mean in "crontab" or "inittab"?
Having some idea of its meaning might help to mentally categorise files which contain the "tab" suffix and understand their relationship with the other parts of an OS.

ilkkachu
  • 138,973

1 Answers1

52

As for as the names of (crontab) cron table, (inittab) init table and (fstab) filesystem tables: as far as I know, besides the obvious association of tab with "table", it means they are the main files for configuring those actions.

The short names are probably also due to the nature of Unix of being practical and using terse commands.

Furthermore in old days teletype terminals were slow.

It must be noted the concepts of crontab, initab and fstab are fairly old in the Unix lore.

We could also make speculations as most of the contemporary filesystems had severe limitations on the length of filenames, that they were kept intentionally short for compatibility reasons or for facilitating browsing backups on foreign (file)systems. [ or bootstraping toolchains ]

The manpage for Vixie crontab specifically mentions the tables: crontab is the program used to install, deinstall or list the tables used to drive the cron(8) daemon in Vixie Cron.

The crontab(5) page for ISC (old Vixie) cron has as name "crontab - tables for driving cron".

In the AT&T user manuals:

  • inittab is described as "script for the init process" in the System V manual;
  • mnttab is described as "mounted file system tab" both in the System III and the System V manuals;

Interestingly, both initab and mnttab seem to be the oldest references found of *tab files.

Rui F Ribeiro
  • 56,709
  • 26
  • 150
  • 232
  • cool, makes sense,as its tabulated data – the_velour_fog Nov 16 '15 at 08:22
  • 2
    I could also swear they are very ancient in what touchs Unix history. Maybe their name also is historically like that due to limitations on the number of characters allowed for the name of files on the first Unix filesystems. Cannot swear on this though. – Rui F Ribeiro Nov 16 '15 at 08:25
  • 14
    More likely the "tab" versus "table" was due to a preference by Unix developers for abbreviating everything to reduce typing. Recall that command-history was not one of the first-implemented features... – Thomas Dickey Nov 16 '15 at 09:27
  • 3
    Also to reduce printing. I believe many early unix machines didn't have screens and instead printed everything entered and output to the command line interface. – bdsl Nov 16 '15 at 11:56
  • 5
    Manpage for Vixie crontab even specifically mentions the tables: crontab is the program used to install, deinstall or list the tables used to drive the cron(8) daemon in Vixie Cron. – Arkadiusz Drabczyk Nov 16 '15 at 12:28
  • 1
    Also, some very early OSs had an 8-character limit on commands and file names; "crontable" would be 9 characters. This is purely speculation, but even if early Unix didn't have this limitation, it's possible that the commands were kept under the limit "just in case" and although "initable" is 8 characters it was also shortened for consistency. (Also, it could be misread as "init-able".) – Moyli Nov 16 '15 at 13:29
  • @RuiFRibeiro: I think Unix started out wthout filename limits ! Remember that the Unix designers were also C designers. The C string type is zero-terminated and therefore not artificially length-limited. File names may very well have been implemented the same. – MSalters Nov 16 '15 at 14:33
  • probably some confusion of mine, I do recall something about in the earlier days of at least 13-14 characters. – Rui F Ribeiro Nov 16 '15 at 15:04
  • @MSalters on what system is that file called "initab" and not "inittab"? – fvu Nov 16 '15 at 16:32
  • 1
    @RuiFRibeiro true, older commonly used filesystems like Minix (as used by very early Linux) and v6/v7 had a limit to 14 bytes for filenames - see https://en.wikipedia.org/wiki/Comparison_of_file_systems – fvu Nov 16 '15 at 16:41
  • I remember 6 character file name limits on some old OS I used. I was thinking it was *nix based, but perhaps not... – Brian Knoblauch Nov 16 '15 at 17:41
  • 2
    This answer would be great if all of this history were incorporated into it. – Lightness Races in Orbit Nov 16 '15 at 17:45
  • 3
    @MSalters Unix filenames were limited to 14 characters. It would have severely complicated the design of the filesystem to allow arbitrary-length strings. – Random832 Nov 16 '15 at 18:29
  • @Random832: You're right, better link – MSalters Nov 16 '15 at 18:47
  • I am incorporating some of the more relevant answers here in the answer, will all due respect to the people who remembered them. – Rui F Ribeiro Nov 17 '15 at 04:19
  • @MSalters, wrong. FIrst Unix systems had directories that were an array of 16-byte entries (2 for inode number, 14 for (non-'\0'-ended, '\0'-filled) filename). I know this because we used to have an IBM RT with such a filesystem way back... – vonbrand Nov 19 '15 at 21:38