The /lib directory contains kernel modules and those shared library images (the C programming code library) needed to boot the system and run the commands in the root filesystem, ie. by binaries in /bin and /sbin. Libraries are readily identifiable through their filename extension of *.so. Windows equivalent to a shared library would be a DLL (dynamically linked library) file. They are essential for basic system functionality. Kernel modules (drivers) are in the subdirectory /lib/modules/'kernel-version'. To ensure proper module compilation you should ensure that /lib/modules/'kernel-version'/kernel/build points to /usr/src/'kernel-version' or ensure that the Makefile knows where the kernel source itself are located.
Contains platform/architecture dependent libraries.
iptables shared library files.
Contains various keymaps.
The home of all the kernel modules. The organisation of files here is reasonably clear so no requires no elaboration.
has details on ISA based cards, the modules that they require and various other attributes.
lists all modules dependencies. This file can be updated using the depmod command.
is the PCI equivalent of the /lib/modules/'kernel-version'/isapnpmap.dep file.
is the USB equivalent of the /lib/modules/'kernel-version'/isapnpmap.dep file.
All OSS (Open Sound System) files are installed here by default.
PAM library files.
The FSSTND states that the /lib directory contains those shared library images needed to boot the system and run the commands in the root filesystem, ie. by binaries in /bin and /sbin. Shared libraries that are only necessary for binaries in /usr (such as any X Window binaries) must not be in /lib. Only the shared libraries required to run binaries in /bin and /sbin may be here. In particular, the library libm.so.* may also be placed in /usr/lib if it is not required by anything in /bin or /sbin. At least one of each of the following filename patterns are required (they may be files, or symbolic links): libc.so.* The dynamically-linked C library (optional) ld* The execution time linker/loader (optional) If a C preprocessor is installed, /lib/cpp must be a reference to it, for historical reasons. The usual placement of this binary is /usr/bin/cpp. The following directories, or symbolic links to directories, must be in /lib, if the corresponding subsystem is installed: modules Loadable kernel modules (optional) /lib<qual> : Alternate format essential shared libraries (optional) There may be one or more variants of the /lib directory on systems which support more than one binary format requiring separate libraries. This is commonly used for 64-bit or 32-bit support on systems which support multiple binary formats, but require libraries of the same name. In this case, /lib32 and /lib64 might be the library directories, and /lib a symlink to one of them. If one or more of these directories exist, the requirements for their contents are the same as the normal /lib directory, except that /lib<qual>/cpp is not required. /lib<qual>/cpp is still permitted: this allows the case where /lib and /lib<qual> are the same (one is a symbolic link to the other).