glibc
GNU C Library (glibc) provides the core shared libraries, utilities, and tools used by nearly all programs on Linux systems. It includes binaries for locale management, dynamic linking, character encoding conversion, and development utilities.
Description
glibc is the standard C library implementation for GNU/Linux systems, containing essential shared libraries like libc6 and utilities in packages such as libc-bin and libc-devtools. It supports system configuration queries, administrative database lookups, shared library dependency management, locale generation, timezone handling, and memory profiling. These components are critical for program execution, internationalization, and development tasks.
Use cases include querying system variables with getconf, retrieving user/group entries via getent, converting character encodings with iconv, configuring dynamic linker bindings using ldconfig, generating locales with localedef, and profiling memory usage of applications via memusage. Development packages provide headers, sources, and tools like gencat for message catalogs and sotruss for tracing shared library calls.
Packages like locales and nscd handle localization data and name service caching, optimizing performance for services like LDAP or NIS. Debugging symbols and multi-architecture variants (e.g., AMD64, 32-bit, X32) support diverse compilation and runtime environments.
How It Works
glibc operates as the primary runtime library, providing standard C functions, math libraries, and dynamic linking via ld.so/ldconfig which resolves dependencies using /etc/ld.so.cache and search paths like /lib/x86_64-linux-gnu. Utilities like getent query NSS libraries for passwd/group/hosts, iconv performs charset conversion via gconv modules, localedef compiles locale definitions from charmaps and input files into binary archives, while memusage/mtrace profile malloc usage and memory through instrumentation. nscd caches NSS results daemonically, reducing lookup latency.
Installation
sudo apt install glibc-docFlags
Examples
getconf --helpgetent --helpiconv --helpldconfig --helplocale --helplocaledef --helpmemusage --help