← Back to context

Comment by enricozb

1 year ago

I recently learned that macOS has a (by default) case insensitive filesystem. How does this line up with the certification?

I don't know about the Unix certification process itself, but the Single Unix Specification explicitly mentions case-insensitivity among non-conforming file system behaviors that are allowed as extensions (in 2.1.1 item 4, third-to-last bullet):

https://pubs.opengroup.org/onlinepubs/9799919799/

So a conforming OS has to make case-sensitive file systems available (which MacOS does: you can create case-sensitive HFS or APFS volumes). But I'm not sure if a conforming OS instance (i.e., running system) has to have any case-sensitive mount points, and either way, AFAIK there's no practical and race-free way for a conforming application to detect whether any particular mount point behaves case-sensitively.

So I believe that as far as the standard goes, a conforming application might run on a conformingly-extended OS where no portion of the the file namespace behaves case-sensitively. IOW, a conforming application cannot rely on case-sensitivity for file names.

There’s a specific “Unix mode” you have to turn on to be in the compliant state, it’s not the default. Presumably among other changes this puts APFS into case-sensitive mode.

  • How much stuff breaks when you do that?

    • There's commercial software that will not run on a case-sensitive file system, such as Photoshop.

      If you're using 3rd party software, you don't want to format your default volume with case-sensitivity enabled.