File systems used by DOS and Windows have used file attribute bits as a relatively prominent feature. The first of them, FAT, exposes four attributes to the user: read-only, archive, hidden and system. (There are a few more used internally, but they do not concern us here.) The function of ‘read-only’ is self-explanatory. ‘Archive’ is somewhat less obvious, but once you look it up, it also seems sensibly motivated: it denotes that the file has been modified since last backup. ‘Hidden’ makes the file not appear in normal directory listings and makes it harder to accidentally delete, as basic protection against inattentive or perhaps too adventurous users, while ‘system’… does the same.
For as long as I can remember, applying the ‘hidden’ and ‘system’ attributes has had virtually the same effect, and they were usually used together, often in conjunction with the ‘read-only’ attribute: most notably, for the DOS kernel files IO.SYS
and MSDOS.SYS
. As such, the attributes seem pretty much redundant to each other; although more recent releases of Windows seem to have started subtly differentiating between them, with ‘system’ acting as a ‘super hidden’ bit of sorts, whose hidden-in-listings effect has to be separately disabled, and which sometimes triggers strongly-worded discouragements when the user attempts to delete the file. But this doesn’t seem to be what motivated the addition of the ‘system’ bit in the first place, back in MS-DOS 2.0 (if not earlier). So what was the real motivation?