Lawrence D'Oliveiro
2024-08-05 01:05:10 UTC
I think several OSes had the idea, from the early days, of having some
part of a file name identify the kind of file it is. But it was DEC, I
believe, that originated the convention of having a dot separator enforced
by the filespec syntax: “«name».«ext»”. (Some other OSes, possibly IBM if
I recall rightly, used a space to separate the parts.)
Unix also copied the dot idea, but purely as a convention: the dot was
just another character that was valid in filenames, and the recognition of
some part of a filename as an “extension” was done only in particular
userland tools that needed to do filename transformations (e.g. make), not
by the OS itself.
From there, Gary Kildall was inspired somewhat by the DEC systems he was
using in the early development of CP/M, simplifying the filespec format
down a bit: only single-character device names and no directories (to
begin with) or file versioning, but keeping the core “«dev»:«name».«ext»”
idea. And then Tim Patterson copied CP/M in his “QDOS” for x86, which
Microsoft bought and made the basis of their MS-DOS, the limitations of
which (like single-letter device names) continue to afflict Windows to
this day.
part of a file name identify the kind of file it is. But it was DEC, I
believe, that originated the convention of having a dot separator enforced
by the filespec syntax: “«name».«ext»”. (Some other OSes, possibly IBM if
I recall rightly, used a space to separate the parts.)
Unix also copied the dot idea, but purely as a convention: the dot was
just another character that was valid in filenames, and the recognition of
some part of a filename as an “extension” was done only in particular
userland tools that needed to do filename transformations (e.g. make), not
by the OS itself.
From there, Gary Kildall was inspired somewhat by the DEC systems he was
using in the early development of CP/M, simplifying the filespec format
down a bit: only single-character device names and no directories (to
begin with) or file versioning, but keeping the core “«dev»:«name».«ext»”
idea. And then Tim Patterson copied CP/M in his “QDOS” for x86, which
Microsoft bought and made the basis of their MS-DOS, the limitations of
which (like single-letter device names) continue to afflict Windows to
this day.