Can anyone tell me the origin of the convention for using a dot to
split a filename into two parts, with the second part serving as some
sort of mnemonic indicator of the content of the file? E g "readme.txt"
for a text file, "fred.c" for a C program, "FY83Q2P1.WKS" for a spreadsheet,
and so on.
I told you it was an obvious question... :-}
Lawrence D'Oliveiro fone: +64-7-856-2889
Computer Services Dept fax: +64-7-838-4066
University of Waikato electric mail: l...@waikato.ac.nz
Hamilton, New Zealand 37^ 47' 26" S, 175^ 19' 7" E, GMT+13:00
To someone with a hammer and a screwdriver, every problem looks
like a nail with threads.
Multics usd the dot this way in 1966. Pathnames looked like
We got the idea of putting the type of file contents in the name from
CTSS, where files had a six-character NAME1 and a six-character NAME2, e.g.
Well, we used the convention on our PDP-1 at BBN in 1964 and I doubt
that we invented it. If this thread did it at all [as opposed to its
being some convention invented at IBM in 1952 or some such...] I'd bet
that the RLE guys came up with it for the pdp-1 probably around '62.
>Can anyone tell me the origin of the convention for using a dot to
>split a filename into two parts, with the second part serving as some
>sort of mnemonic indicator of the content of the file? E g "readme.txt"
>for a text file, "fred.c" for a C program, "FY83Q2P1.WKS" for a spreadsheet,
>and so on.
>I told you it was an obvious question... :-}
Not so obvious, because the Acorn Archimedes filing system under RISC OS
actually uses '.' as *directory seperator*. Must be some backward
compatibility to an ancient Acorn 8-bit machine. Different philosophies,
Type is indicated using a file attribute by itself. Real cute feature.
Filename are also limited to 10 chars, so imagine how nice it is to
exchange files with e.g. a DOS compatible filing system...
Christian Weisgerber na...@rhrk.uni-kl.de
> Not so obvious, because the Acorn Archimedes filing system under RISC OS
> actually uses '.' as *directory seperator*.
I can think of one stranger - VMS. Inside a path, . means directory separator.
In a file name, the . separates the file name and extension (each of which can
be 32 characters long). I.e.
And a directory appears in a directory listing as a file whose extension is .DIR.
So if you want a listing of the files in FOO:[BAR.BAZ], you write
But if you want a listing of FOO:[BAR.BAZ] itself, you write
Lots of fun!
-- Jeffrey Hutzelman
Gets better. With VMS you can use a dot to separate version numbers
as well, ie FOO.BAR;3 can also be written as FOO.BAR.3 Makes parsing
routines great fun!
TOPS compatibility strikes again
(I still like VMS though...)
SUN Microsystems ICNC
38240 Meylan, France
email: smck...@france.sun.com BIX: smckinty
To begin with, far from all operating systems have this convention.
In SINTRAN III (On the Norwegian ND computers), file names did have
two parts, called "name" and "type", but they were divided by a colon,
not by a dot, like "PROGRAM:SYMB" (SYMB was the file type used for
I think IBM's VM/CMS or something like that uses a space as the
separator (like "README TEXT"), at least it looks like that when
you're ordering files from a listserver.
Unix filenames aren't divided into different parts; '.' can be used
like any other character in a filename (almost, the exceptions are "."
and ".."). Much Unix software uses '.' + some suffix to identify a
file's contents; for example, a C source file must end in ".c". But
that's enforced by the compiler, not by the OS.
The OS's I know of that use two-part filenames with a dot in between
are MS-DOS, CP/M, VMS and TOPS-20.
MS-DOS got it from CP/M (of course -- they copied far too much from
CP/M when designing it, and they still managed to miss some good
features). CP/M in turn got it from some early DEC operating system,
and that's of course where VMS and TOPS-20 got it from as well.
So I suppose the real question is: Did DEC invent the "filename + '.'
+ extension" convention? Or did they in turn get it from somewhere
Magnus Olsson | \e+ /_
Dept. of Theoretical Physics | \ Z / q
University of Lund, Sweden | >----<
Internet: mag...@thep.lu.se | / \===== g
Bitnet: THEPMO@SELDC52 | /e- \q
>Not so obvious, because the Acorn Archimedes filing system under RISC OS
>actually uses '.' as *directory seperator*. Must be some backward
>compatibility to an ancient Acorn 8-bit machine. Different philosophies,
The original Acorn Atom (which I had one of) disk system had the following
setup for disks (this is all from memories 8 years passed):
4 possible disk drives, numbered 0..3, which were in fact side0-drive0,
side1-drive0, side0-drive1, side1-drive1.
1 character directories, where the default was $.
8 character filenames.
each file could be fully specified as in the form:
which means drive 0, directory $, file document
This *exact* file system was transferred to the BBC (which I also owned one
of), so that the BBC could read Atom-disks. This was called DFS.
A little later, there came the ADFS (where the A means Advanced), which
finally got heirachical, but I believe would still read and write DFS disks.
It is not so strange to see '.' as a directory specifier, as anyone who has
ever used a VMS system will testify...
_-_|\ Phil Kernick EMail: ph...@adam.adelaide.edu.au
/ \ Departmental Engineer Phone: +61 8 228 5914
\_.-*_/ Dept. of Psychology Fax: +61 8 224 0464
v University of Adelaide Mail: GPO Box 498 Adelaide SA 5001
>na...@rhrk.uni-kl.de (Christian Weisgerber) writes:
>>Not so obvious, because the Acorn Archimedes filing system under RISC OS
>>actually uses '.' as *directory seperator*.
>It is not so strange to see '.' as a directory specifier, as anyone who has
>ever used a VMS system will testify...
CDC's rather interesting NOS/VE operating system uses '.' as directory
separator, and hence it can't be used in filenames. '$' was the conventional
substitute in system files, and '_' elsewhere.
-Chip Olson. | ol...@husc.harvard.edu | ceo...@ldbvax.lotus.com
There were dots in data set names (file names as known to the OS) in
IBM's OS/360. They were used to indicate file type in TSO (Time Sharing
Option) and some other early interactive programming environments in
That's not necessarily the _origin_, but it provides a terminus ante quem...
Michael A. Covington, Ph.D. | mcov...@uga.cc.uga.edu | N4TMI
Artificial Intelligence Programs | U of Georgia | Athens, GA 30602
The reason the Archimedes uses the dot as a directory separator is that the
model B used that on its original Disc Filing System (although the directories
weren't properly heirarchical - you didn't need a command to make a directory
and a directory could not contain a subdirectory, only files. Additionally the
directory names were a SINGLE CHARACTER! Couple that with 100k on a disc on
the most basic drive, and 31 files per DISK (not directory) and it seems real
bad by todays standards (although I programmed on one for 5 years).
So, the filenames were like: A.PRG11 (btw, the main filename was only 7 chars
Root dir was '$' but you could leave it out, so $.Program = Program
The Archimedes uses a proper filesystem, with 800k floppies, proper subdirs
and things (10 letter filenames for a start) but to aid programs running under
the old filing system they kept the dot as the separator. All you have to do
is *CDIR to create the appropriate directories and the software will work with
the new filing system.
PS: I'm typing this article on an Archimedes. It has a really nice user i/face
and the power to run it properly (it's rather like the mac, but with a bit
more of an individualistic style)
| Graham West, University Of Bradford | "We are the music makers, and we |
|Email: JANET: g.i....@uk.ac.bradford | are the dreamers of the dreams." |
| INTERNET: g.i....@bradford.ac.uk | Gene Wilder, Charlie and the |
| MUD: Uggslid or Maerlyn | Chocolate Factory. |
Sounds sickeningy like IBM's MVS disk format. Unlike their VM/CMS
system which had some concept of directories, all MVS volumes were
flat-file. One directory and staticly allocated files. Each file
name could be up to 40 characters long, but there couldn't be more
than 8 characters in a row before a dot character had to be inserted.
So... People used the dot to generate a sort of hierarchy of file
names. This worked since the directories are sorted alphabeticly.
Creating files is always fun. Run a system-level utility to staticly
allocate enough disk blocks. And they had to be adjacent on the disk.
To unfragment, you'd have to back up, reformat, and restore.
Fortunately, you don't have to USE all of the space, and you can
allocate overflow storage in case you run out.
There are different file types, as specified by an attribute when you
allocate a file's space. Things get real hairy when you use the
all-too-common "Partitioned Data Set' (PDS) files. All files (or Data
Sets, since you could theoretically replace each one with a deck of
cards) of type PDS would contain a "directory" of "member" records.
Each member could have a name of up to 8 characters. Members would be
next-fit allocated within the storage space of the PDS file. Whenever
a member would be modified, a new copy would be created, with the old
space never reclaimed. Reclaiming space could only be done with some
utility to copy/delete/rename the PDS. Copying wouldn't copy unused
space. Despite this, there was never an undelete/recover utility for
David Charlap Q:"Where do these stairs go?"
dic...@hertz.njit.edu A:"They go up"
Hi! I am a .signature virus. Copy me into your .signature to join in!
Hm, for fun check out Primos from Prime Computers. A '*' and '/' were allowed
in directory names. And '>' was the directory seperator.
Please reply to kdn...@hertz.njit.edu for now.
"No problem, here's how you build it" -- R. Barclay, ST: TNG
That's about right. Historically, CMS worked like this:
Filenames in CMS are "filename filetype filemode". The filename and
filetype are each 1-8 characters in length, and can be about anything.
The filemode is a letter from A-Z, optionally followed by a digit from
0 to 5. The filemode letter indicated which "minidisk" (think: filesystem)
in the current environment the file is in; minidisks had named like
"DRAKE 191", where "DRAKE" is the owner's userid, and 191 is a meaningless but
unique 3 digit hex number. A given minidisk could be "ACCESSED", giving
it a filemode letter. The hierarchy of filemodes from A to Z was used
as the command search PATH, among other things. The filemode number
specified processing options on the command: for example, a file with
filemode 0 could only be seen if the minidisk was accessed read-write.
So a file had a filename, filetype, and filemode number, and lived on
a minidisk named "userid 123". You could ACCESS "userid 123" as, say, Q,
and then refer to a file on the disk as "FILENAME FILETYPE Q1".
Note that there's nothing quite like a now-standard hierarchical namespace
here. Recent releases of CMS have added hierarchical file naming;
A fully qualified filename in the hierarchical file system, SFS, might
userid.dir1.dir2.dir3.dir4.dir5.dir6.dir7 filename filetype
Directory names can be up to 16 bytes long, and directories can only be
nested 8 deep. Filename and filetype are still 8 bytes each. Applications
can access files either by new-fangled name as given above, or can use old-
style "filename filetype filemode", if a directory is ACCESSed and thus given
a filemode letter. So you can ACCESS "drake.dir1.dir2.dir3.dir4.dir5.dir6.dir7"
as, say, V, then refer to a file as "FILENAME FILETYPE V" just like before.
Gosh, aren't you glad you asked? Oh, wait, you didn't. Sorry. :-)
Sam Drake / IBM Almaden Research Center
Internet: dr...@almaden.ibm.com BITNET: DRAKE at ALMADEN
And IBM's MFR and MVT used filenames (up to a generous 44 characters, but
no more than 8 characters between dots, please) of the form:
That was around 1965 or so also. I don't recall the exact date.
> minidisks had named like
>"DRAKE 191", where "DRAKE" is the owner's userid, and 191 is a meaningless but
>unique 3 digit hex number.
meaningless? I think not. The number is the virtual address of
the device, used with the I/O instructions as the device address
for SIO/TIO and SIOF. In XA and ESA (and late releases of HPO for
MP boxes like the 308x and 3090-xxx) it could be 4 digits, and
became simply the device number used to pass to CP to translate
and punt to the I/O subsystem for SSCH.
>For example, a file with
>filemode 0 could only be seen if the minidisk was accessed read-write.
The complete list is:
0 = invisible to all read only links.
1 = default filemode
2 = alternate generic filemode. usually used for files intended
to be visible on a publie disk like MAINT 19E.
3 = erase after read. Great for temp files - no cleanup
4 = OS simulation data set. Created by programs using OS file
macros. Handy for reblocking files with FILEDEF.
5 = third alternate generic filemode. Nice for grouping things
for later deletion.
6 = virtual reserve/release using the CMS update-in-place
feature of the FSWRITE macro. Usually used in situations
where multiple userids need write access to a disk --
tricky to program or use.
>Sam Drake / IBM Almaden Research Center
>Internet: dr...@almaden.ibm.com BITNET: DRAKE at ALMADEN
David Boyes | Being dead is less lonely than being alive in
dbo...@rice.edu | only that you aren't awake to notice it.
And now documented (CMS 7) as possibly corrupting your minidisk if the CPU
Henry Troup - H...@BNR.CA (Canada) - BNR owns but does not share my opinions
I am politically incorrect but biodegradeable