The /usr directory is the main application-storage directory. The binary files in this directory are not required for system start-up or maintenance, so the /usr hierarchy may be, and often is, located on a separate file system. Because of its (usually) large size, /usr has its own hierarchy of subdirectories. We will mention just a few:
/usr/X11R6: the entire X Window System hierarchy. All binaries and libraries required for the operation of X (including the X servers) must be located here. The /usr/X11R6/lib/X11 directory contains all aspects of X's configuration which do not vary from one computer to another. Specific configurations for each computer should go in /etc/X11.
/usr/bin: contains the large majority of the system's binaries. Any binary program which isn't necessary for the maintenance of the system and isn't a system administration program must be located in this directory. The only exceptions are programs you compile and install yourself, which must be located in /usr/local.
/usr/lib: contains all the necessary libraries to run programs located in /usr/bin and /usr/sbin. There is also a /usr/lib/X11 symbolic link pointing to /usr/X11R6/lib, the directory which contains the X Window System libraries (but only if X is installed)[18].
/usr/local: this is where you must install any applications you compile from source. The installation program should create the necessary hierarchy.
/usr/share: this directory contains all read-only architecture-independent data required by applications in /usr. Among other things, you will find zone and location information (zoneinfo and locale).
Let's also mention the /usr/share/doc and /usr/share/man directories, which respectively contain application documentation and the system's manual pages.
[18] Please note that Mandrakelinux now uses Xorg instead of X Window System as the default X Window system.