Section 3.2. GNU libc


3.2. GNU libc

Except for libc and libm, there are no other standard naming conventions for UNIX system libraries. Some of the system libraries that exist on Linux might not match the names of libraries used on different UNIX platforms. It is important to know which libraries in Linux include and support which functionalities. Table 3-2 shows the Linux system libraries in terms of their functionalities.

Table 3-2. Linux System Library Table

Description

Linux

Curses

libncurses, libform, libmenu, libpanel, libplot

Database

APIs libdb*

Security APIs

libc(shadow.h)

Socket APIs

libc(BSD4.3)

RPC APIs

libc

Math

libm

XDR APIs

libc

Real-time priority

libc


The following lists installed libraries from the GNU libc distribution and their respective descriptions:[5]

[5] Referenced from "Bleeding Edge Linux From Scratch" version CVS 2004-04-06

ld.so is the helper program for shared library executables.

libBrokenLocale.[a, so] is used by programs, such as Mozilla, to solve broken locales.

libSegFault.so is a segmentation fault signal handler. It tries to catch segfaults.

libanl.[a, so] is an asynchronous name lookup library.

libbsd-compat.a provides the portability needed to run certain BSD programs under Linux.

libc.[a, so] is the main C librarya collection of commonly used functions.

libcrypt.[a, so] is the cryptography library.

libdl.[a, so] is the dynamic linking interface library.

libg.a is a runtime library for g++.

libieee.a is the IEEE floating-point library.

libm.[a, so] is the mathematical library.

libmcheck.a contains code run at boot.

libmemusage.so is used by memusage to help collect information about the memory usage of a program.

libnsl.a is the network services library.

libnss_compat.so, libnss_dns.so, libnss_files.so, libnss_hesiod.so, libnss_nis.so, libnss_nisplus.so are the Name Service Switch libraries, containing functions for resolving host names, usernames, group names, aliases, services, protocols, and the like.

libpcprofile.so contains profiling functions used to track how much CPU time is spent in which source code lines.

libpthread.[a, so] is the POSIX threads library.

libresolv.[a, so] contains functions for creating, sending, and interpreting packets to the Internet domain name servers.

librpcsvc.a contains functions providing miscellaneous RPC services.

librt.[a, so] contains functions providing most of the interfaces specified by the POSIX.1b real-time extension.

libthread_db.so contains functions useful for building debuggers for multithreaded programs.

libutil.[a, so] contains code for "standard" functions used in many different UNIX utilities.

Most of these libraries are located in the /usr/lib directory; some, such as libSegFault.so, are in the /lib directory.

3.2.1. glibc Conformance

GNU glibc distributes a conformance[6] report detailing adherence to various standards. This list also shows where GNU libc needs to be improved. As of this writing, the conformance report shows that GNU libc passes conformance header checks to FIPS POSIX90, POSIX96, UNIX98, ANSI, C89/99, and ISO9899 standards. All major Linux distributions' glibc implementations also support the LSB.

[6] Available at http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/CONFORMANCE?cvsroot=glibc




UNIX to Linux Porting. A Comprehensive Reference
UNIX to Linux Porting: A Comprehensive Reference
ISBN: 0131871099
EAN: 2147483647
Year: 2004
Pages: 175

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net