IOS – known reason why the filesystem in iOS is case-sensitive

iosmacos

Developing an iOS apps, there was a thing that drove me mad: executing the same app that created the same files at the same path, the iPhone simulator worked the correct way, while a real iPhone didn't. I eventually discovered that i mistyped a character (uppercase instead of lowercase) and consequently the iPhone created a folder starting with an uppercase character, while putting the file in a path with that folder starting with the lowercase version of that character. The simulator however, didn't care of that difference. I suppose that was because the simulator, running on a case-insensitive system (OS X/mac OS), inherits its "case-insensitivity", while the iPhone (seems to me) is natively case-sensitive.

Is there any known explanation/documentation by Apple (or other trusted sources) on why the iOS filesystem is case-sensitive, given that is an OS based on a case-insensitive one (OS X)?

Best Answer

HFS+ originally ran on System 8 and System 9 and is case-insensitive. Apple developed the HFSX case sensitive file system around 2002-2003 as a replacement for UFS which was used by NextSTEP and could also be used by OS X.

In the transition from System 9 to OS X, Apple offered Carbon API's so that vendors could easily port their products without completely re-writing their applications. Carbon does not offer case sensitivity. For many years major vendors used Carbon code in their products, so HFS+ was left as the default file system.

iOS has transitioned to APFS but TimeMachine uses HFSX.