8

One answer to this question mentions the UNIX 03 certification of OSX. Now AFAIK the standard file system of OSX is/was HFS, which "saves the case of a file that is created or renamed but is case-insensitive in operation" (i.e. it's case-preserving but case-insensitive).

Does the UNIX certification or POSIX require a case-sensitive file system?

4
  • HFS+, the standard file system on OS X is case-insensitive by default, but I'm pretty sure it's POSIX.
    – Barmar
    Apr 11, 2017 at 19:52
  • 1
    @Barmar that is correct. POSIX sees the case-insensitive filesystem as an 'extension' of POSIX; see my answer
    – Wyatt Ward
    Apr 11, 2017 at 20:47
  • @Barmar: ""HFS+ is probably the worst file-system ever." - Torvalds. :-) Apr 11, 2017 at 20:53
  • 1
    For what it's worth, if you want to use Adobe software on a Mac, you cannot use case-sensitive HFS.
    – Wildcard
    Mar 2, 2018 at 4:27

1 Answer 1

4

According to the POSIX specification:

The system may provide non-standard extensions. These are features not required by POSIX.1-2008 and may include, but are not limited to:

--snip--

  • Non-conforming file systems (for example, legacy file systems for which _POSIX_NO_TRUNC is false, case-insensitive file systems, or network file systems)

--snip--

So it looks like case sensitivity is the norm, but it is possible to support a non-compliant (case-insensitive) file system and still call your product UNIX as long as it can also support case-sensitive file systems.

(edit)

Actually, see this part of the specification:

Two proposals were entertained regarding case folding in filenames:

  1. Remove all wording that previously permitted case folding.

Rationale

Case folding is inconsistent with the portable filename character set and filename definitions (all bytes except <slash> and null). No known implementations allowing all bytes except <slash> and null also do case folding.

  1. Change "though this practice is not recommended:" to "although this practice is strongly discouraged."

Rationale

If case folding must be included in POSIX.1, the wording should be stronger to discourage the practice.

The consensus selected the first proposal. Otherwise, a conforming application would have to assume that case folding would occur when it was not wanted, but that it would not occur when it was wanted.

So it looks like is purposely left ambiguous - it is neither explicitly permitted nor forbidden.

6
  • This answer badly misinterprets the quoted excerpts - while POSIX systems are allowed to offer non-conforming extensions, this obviously doesn't make these extensions conforming. Jun 7, 2017 at 16:12
  • Which is why I interpreted it as I did. It isn't explicitly defined affirmatively or negatively. Basically what you said.
    – Wyatt Ward
    Jun 8, 2017 at 22:53
  • Uhm - the standard explicitly says these extensions are both non-standard and non-conforming. It doesn't get any more explicit or affirmative or negative than that. Jun 13, 2017 at 9:34
  • 1
    @MarcLehmann also, OS X would be noncompliant if this were actively disallowed. But it's a registered compliant UNIX platform.
    – Wyatt Ward
    Jun 18, 2017 at 5:28
  • 4
    OS X with a case insensitive filesystem is clearly noncompliant. The fact that is is registered in a non-default (but compliant) configuration obviously does not mean every extension of every unix-like OS is suddenly compliant. If your reasoning would be sound, then every extension by any unix-like OS would somehow be compliant... Take Windows for example: Just because microsoft windows has a POSIX-compliant subsystem does not mean the win32 API is somehow POSIX-compliant, it only means that subsystem is. Same for OSX - it's only compliant with case-sensitive filesystem, which it does support. Jun 19, 2017 at 21:11

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .