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.

Comments (12)

  1. Harry8 wrote::

    Or from OSX using HFS+

    Friday, September 12, 2008 at 3:03 pm #
  2. Harry8 wrote::

    Or from people using OSX with HFS+

    Friday, September 12, 2008 at 3:04 pm #
  3. Israel Miranda wrote::

    But, why Linux needs a case sensitive filesystem if it already has one ?

    Friday, September 12, 2008 at 4:50 pm #
  4. Sven wrote::

    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 …

    Friday, September 12, 2008 at 6:19 pm #
  5. Mark Brown wrote::

    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.

    Friday, September 12, 2008 at 6:24 pm #
  6. Juhapekka Tolvanen wrote::

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

    Friday, September 12, 2008 at 6:33 pm #
  7. Mark Brown wrote::

    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.

    Friday, September 12, 2008 at 6:43 pm #
  8. chithanh wrote::

    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.

    Saturday, September 13, 2008 at 12:23 am #
  9. Mark Brown wrote::

    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.

    Saturday, September 13, 2008 at 5:49 pm #
  10. windoof wrote::

    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?

    Monday, September 29, 2008 at 1:42 pm #
  11. Mark Brown wrote::

    windhoof @10: I’m not aware of any way to do that succesfully

    Sunday, October 12, 2008 at 6:32 pm #
  12. Michael Long wrote::

    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?

    Thursday, July 18, 2013 at 6:01 pm #