The Linux kernel needs a case sensitive filesystem

The Linux kernel source relies on a case sensitive filesystem. If you attempt to get the sources via git this will manifest as an error along the lines of:

fatal: Entry 'include/linux/netfilter/xt_CONNMARK.h

There are several header files like this the names of which differ only in case and just can’t be represented on a filesystem that doesn’t distinguish between cases. This is most commonly seen by people attempting to build embedded Linux from Windows.

12 thoughts on “The Linux kernel needs a case sensitive filesystem

  1. One of the next kernel releases with the new xfs code will have this, IMHO, braindead feature. Only because Windows or DOS I guess has a design error not everyone should adopt that error. Or maybe we should even get to 5+3 character names back …

  2. Israel @3: The issue is if you’re trying to work with the Linux source on a platform other than Linux – the most common example of this is trying to do embedded Linux development.

  3. Filesystems of Linux ARE case-sensitive. Filesystems of Windows are case-preserving. FAT of MS-DOS is case-insensitive filesystem.

  4. Juhapekka @6: Right, this refers to the sources rather than the kernel itself (and in fact filesystems can always implement whatever behaviour, though native ones are unlikely to). I’ll edit the post slightly to clarify.

  5. Note that POSIX mandates case sensitive file naming.
    NTFS is case sensitive, ie. it is valid to have readme.txt, Readme.txt, and README.TXT in the same directory. Just Win32 is specified to be case insensitive.

  6. chithanh @8: That’s a bit slippery, actually. POSIX specifies that the OS needs to support case sensititive filesystems but it doesn’t actually mandate that all filesystems supported actually implement this, which is what went wrong on OS X. Obvious exceptions on most POSIX systems include FAT and ISO9660 derived filesystems.

  7. Ok, I see, but still not clarified for me is, _how_ do I checkout the Linux kernel source correctly, if working under e.g. Windows, then?

  8. So, actually the title is inaccurate. The Linux kernel doesn’t need a case-sensitive file system, but the source code does.

    And all of the users are supposed to remember whether or not they named their file Michael.txt or michael.txt, just because some guy thought it would be cute to differentiate one file from another just by using the same name and changing the case of a couple of characters?

Leave a Reply