case sensitivity

Moderator, John Quarterman std-unix at ut-sally.UUCP
Sun Oct 26 13:34:02 AEST 1986


From: seismo!bellcore!jgs (Jeff Smits)
Date: Tue, 21 Oct 86 16:32:57 edt

One of the nice things about the UNIX system, is that the operating system
doesn't try to define precise semantics of the  use of its facilities.
"A path-name is a null-terminated character string starting with an optional
slash (/), followed by zero or more directory names separated by slashes,
optional followed by a file-name." (From the System III reference manual)
That is all the semantics attached to the concept of a path-name.

By leaving the semantics simple, it makes it easy to support file/path-names
with international characters in them.  UNIX Pacific offers a source product
called JAE 1.0 (Japanese Application Environment) based on System V, Release
2.1.0.  Included in its features is support for Japanese file-names as
documented in the Future Directions section of SVID Issue 2.
The basic concept is that the US ASCII code-set is always present contained
in the code-set range 001-0177(octal).  The range above 0177 (0x200-0x377 on
an eight-bit machine) is reserved for international characters.  No changes
were needed to the core operating system to support this.  Many of the utilities
function correctly with these code-sets.  This is all because there were no
additional semantics attached to the meaning of a character in a path-name.

It is the terminal driver's responsibility to convert the data received from
an international terminal into this internal representation.

The important point is that the operating system has no knowledge of the
code-set the path-names are written in.  The only assumption made about a
path-name is that the '/' character separates components in a path, and
the NULL character terminates the path.

If the standard changed to support case translation, it would be building an
code-set bias into an operating system implementation.  It would be difficult
to support the variety of code-sets with that type of conversion being done
in the operating system.

Due to international considerations and the fact that current practice
(both System V and BSD) support case sensitive file-names, I think
the current P1003 draft is correct with respect to case sensitivity.


						Jeff Smits
						AT&T Information Systems
						..!attunix!jgs
						(201)-522-6263
						190 River Rd.
						Summit, NJ 07901

Volume-Number: Volume 7, Number 86



More information about the Mod.std.unix mailing list