System Servicesgnuc-librarylibclocalesdynamic-linkercharacter-encodingmemory-profiling

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

bash
sudo apt install glibc-doc

Flags

-v SPECGive values for compilation environment SPEC (getconf)
--no-addrconfigDo not filter out unsupported IPv4/IPv6 addresses (getent)
--from-code=NAMEEncoding of original text (iconv)
--listList all known coded character sets (iconv)
--library-path PATHUse given PATH instead of LD_LIBRARY_PATH (ld.so)
-nOnly process directories specified on command line, don't build cache (ldconfig)
--all-localesWrite names of available locales (locale)
--charmap=FILESymbolic character names defined in FILE (localedef)
-p,--png=FILEGenerate PNG graphic and store it in FILE (memusage)

Examples

Display help for querying system configuration variables
getconf --help
Show usage for getting entries from administrative databases like passwd, group, hosts
getent --help
Display help for converting between character encodings
iconv --help
Show usage for configuring dynamic linker run-time bindings
ldconfig --help
Get help for displaying locale-specific information
locale --help
Show usage for compiling locale definition files
localedef --help
Display help for profiling a program's memory usage
memusage --help
Updated 2026-04-16kali.org ↗