接触linux和 C有些时间了,一直对于libc,glibc,unix/like unix的发展不是很了解,学习这么久还不知道他的详细发展,所以整理了此文。
目录:
1.C standard library
C standard library,IEEE,ANSIC,POSIX,C POSIX library,ISO,Single UNIXSpecification
2.glibc
GNU C Library,Linux Standard Base,GLib
3.UNIX and like UNIX
Solaris (operating system),SunOS,BSD,UNIX System V,System V Interface Definition,X/Open
C standard library
C standard library
The C Standard Library is the standard library for the programming language C, as specified in the ANSI Cstandard.[1] It was developed at the same time as the C POSIX library, which is basically a superset of it[citation needed]. Since ANSI C was adopted by the International Organization for Standardization,[2] the C standard library is also called the ISO C library.
Informally, the terms C standard library or C library or libc are also used to designate a particular implementation on a given system. In the Unix environment, such an implementation is usually shipped with the operating system and its presence is assumed by many applications. For instance, GNU/Linux comes with the GNUimplementation glibc.
The C standard library provides macros, type definitions, and functions for tasks like string handling, mathematical computations, input/output processing, memory allocation and several other operating systemservices.
IEEE
The Institute of Electrical and Electronics Engineers (IEEE, read I-Triple-E) is a non-profitprofessional association headquartered in New York City that is dedicated to advancing technological innovation and excellence. It has more than 400,000 members in more than 160 countries, about 55% of whom reside in theUnited States.[2][3]
ANSI C
ANSI C refers to the family of successive standards published by the American National Standards Institute (ANSI) for the C programming language. Software developers writing in C are encouraged to conform to the standards, as doing so aids portability between compilers.
POSIX
POSIX ( /ˈpɒzɪks/ poz-iks), an acronym for "Portable Operating System Interface", is a family of standards specified by the IEEE for maintaining compatibility between operating systems. POSIX defines the application programming interface (API), along with command line shells and utility interfaces, for software compatible with variants of Unix and other operating systems.[1][2]
C POSIX library
The C POSIX library is a specification of a C standard library for POSIX systems. It was developed at the same time as the ANSI C standard. Some effort was made to make POSIX compatible with standard C; POSIX includes additional functions to those introduced in standard C.
ISO
The International Organization for Standardization (French: Organisation internationale de normalisation, Russian: Международная организация по стандартизации, tr.Mezhdunarodnaya organizaciya po standartizacii),[1] widely known as ISO, is an international standard-setting body composed of representatives from various national standards organizations. Founded on February 23, 1947, the organization promulgates worldwide proprietary, industrial, and commercial standards. It has its headquarters in Geneva, Switzerland.[2]
Single UNIX Specification
The Single UNIX Specification (SUS) is the collective name of a family of standards for computer operating systems to qualify for the name "Unix". The SUS is developed and maintained by the Austin Group, based on earlier work by the IEEE and The Open Group.
glibc
GNU C Library
The GNU C Library, commonly known as glibc, is the C standard library released by the GNU Project. Originally written by the Free Software Foundation (FSF) for the GNU operating system, the library's development has been overseen by a committee since 2001,[2] with Ulrich Drepper fromGoldman Sachs as the lead contributor and maintainer.
Released under the GNU Lesser General Public License, glibc is free software.
Linux Standard Base
The Linux Standard Base (LSB) is a joint project by several Linux distributions under the organizational structure of the Linux Foundation to standardize the software system structure, including the filesystem hierarchy, used with Linux operating system. The LSB is based on the POSIXspecification, the Single UNIX Specification, and several other open standards, but extends them in certain areas.
According to the LSB:
The goal of the LSB is to develop and promote a set of open standards that will increase compatibility among Linux distributions and enable software applications to run on any compliant system even in binary form. In addition, the LSB will help coordinate efforts to recruit software vendors to port and write products for Linux Operating System.
The LSB compliance may be certified for a product by a certification procedure.[1]
The LSB specifies for example: standard libraries, a number of commands and utilities that extend the POSIX standard, the layout of the file system hierarchy, run levels, the printing system, including spoolers such as CUPS and tools like Foomatic and several extensions to the X Window System.
GLib
GLib is a cross-platform software utility library that began as part of the GTK+ project. However, before releasing version 2 of GTK+, the project's developers decided to separate non-GUI-specific code from the GTK+ platform, thus creating GLib as a separate product. GLib was released as a separate library so other developers, those who did not make use of the GUI-related portions of GTK+, could make use of the non-GUI portions of the library without the overhead of depending on a full-blown GUI library.
Since GLib is a cross-platform library, applications using it to interface with the operating system are usually portable across different operating systems without major changes.[1]
UNIX and like UNIX
Solaris (operating system)
Solaris is a Unix operating system originally developed by Sun Microsystems. It superseded their earlier SunOSin 1993. Oracle Solaris, as it is now known, has been owned by Oracle Corporation since Oracle's acquisition of Sun in January 2010.[2]
Solaris is known for its scalability, especially on SPARC systems, and for originating many innovative features such as DTrace, ZFS and Time Slider.[3][4] Solaris supports SPARC-based and x86-based workstations and serversfrom Sun and other vendors, with efforts underway to port to additional platforms. Solaris is registered as compliant with the Single Unix Specification.
Solaris was historically developed as proprietary software, then in June 2005 Sun Microsystems released most of the codebase under the CDDL license, and founded the OpenSolaris open source project.[5] With OpenSolaris Sun wanted to build a developer and user community around the software. After the acquisition of Sun Microsystems in January 2010, Oracle decided to discontinue the OpenSolaris distribution and the development model.[6][7] As a result, the OpenSolaris community forked as the OpenIndiana project,[8] a part of the Illumos Foundation.[7][9] In August 2010, Oracle discontinued providing public updates to the source code of the Solaris Kernel, effectively turning Solaris 11 into a closed source proprietary operating system. However, through the Oracle Technology Network (OTN), industry partners can still gain access to the in-development Solaris source code.[7]. The Open source portion of Solaris 11 is available for download from Oracle.[10]
SunOS
SunOS is a version of the Unix operating system developed by Sun Microsystems for their workstation and servercomputer systems. The SunOS name is usually only used to refer to versions 1.0 to 4.1.4 of SunOS. These versions were based on BSD, while SunOS version 5.0 and later are based on UNIX System V Release 4, and are marketed under the brand name Solaris.
BSD
Berkeley Software Distribution
Berkeley Software Distribution (BSD, sometimes called Berkeley Unix) is a Unix operating system derivative developed and distributed by the Computer Systems Research Group (CSRG) of the University of California, Berkeley, from 1977 to 1995. Today the term "BSD" is often non-specifically used to refer to any of the BSD descendants which together form a branch of the family of Unix-like operating systems. Operating systems derived from the original BSD code remain actively developed and widely used.
Historically, BSD has been considered a branch of UNIX—"BSD UNIX", because it shared the initial codebase and design with the original AT&T UNIX operating system. In the 1980s, BSD was widely adopted by vendors ofworkstation-class systems in the form of proprietary UNIX variants such as DEC ULTRIX and Sun Microsystems SunOS. This can be attributed to the ease with which it could be licensed, and the familiarity it found among the founders of many technology companies of this era.
Though these proprietary BSD derivatives were largely superseded by the UNIX System V Release 4 and OSF/1 systems in the 1990s (both of which incorporated BSD code and are the basis of other modern Unix systems), later BSD releases provided a basis for several open source development projects, e.g. FreeBSD, NetBSD, OpenBSD orDragonFly, that are ongoing. These, in turn, have been incorporated in whole or in part in modern proprietary operating systems, e.g the TCP/IP (IPv4 only) networking code in Microsoft Windows or the foundation of Apple'sMac OS X.
UNIX System V
Unix System V, commonly abbreviated SysV (and usually pronounced—though rarely written—as "System Five"), is one of the first commercial versions of the Unix operating system. It was originally developed by American Telephone & Telegraph (AT&T) and first released in 1983. Four major versions of System V were released, termed Releases 1, 2, 3 and 4. System V Release 4, or SVR4, was commercially the most successful version, being the result of an effort, marketed as Unix System Unification, which solicited the collaboration of the major Unix vendors. It was the source of several common commercial Unix features.
While AT&T sold their own hardware that ran System V (see AT&T Computer Systems), most customers ran a version from a reseller, based on AT&T's reference implementation. A standards document called the System V Interface Definition outlined the default features and behavior of implementations. The most widely used versions of System V today are IBM's AIX, based on System V Release 3, and Sun's Solaris and Hewlett-Packard's HP-UX, both based on System V Release 4.
In the 1980s and early-1990s, System V was considered one of the two major "flavors" of UNIX, the other being Berkeley Unix(BSD). During the period of the Unix wars System V was known for being the primary choice of manufacturers of large multiuser systems, in opposition to BSD's dominance of desktop workstations. However, with standardization efforts such as POSIX and the commercial success of Linux, this generalization is not as accurate as it once was.
System V Interface Definition
The System V Interface Definition (or SVID) is a standard that describes the AT&T UNIX System V behavior, including that of system calls, C libraries, available programs and devices. While it was not the first attempt at a standardizations document (the industry trade association /usr/grouppublished a standard in 1984 based on System III with a few system call additions from BSD), it was an important effort of early standardization of UNIX in a period when UNIX variants were multiplying rapidly and portability was problematic at best. By 1986, AT&T required conformance with SVID issue 2 if vendors were to actually brand their products "System V R3"[1]. By the 1990s, however, its importance was largely eclipsed by POSIX and the Single UNIX Specification, which were based in part upon the SVID. Part of the reason for this was undoubtedly their vendor-independent approach (see Unix wars).
X/Open
X/Open Company, Ltd. was a consortium founded by several European UNIX systems manufacturers in 1984 to identify and promote open standards in the field of information technology.
X/Open managed the UNIX trademark from 1993 to 1996, when it merged with the Open Software Foundation to form The Open Group.
参考:
<http://en.wikipedia.org/wiki/X/Open_Portability_Guide#Output>
<http://en.wikipedia.org/wiki/X/Open_Portability_Guide#Output>
<http://en.wikipedia.org/wiki/System_V_Interface_Definition>
<http://en.wikipedia.org/wiki/UNIX_System_V#SVR5>
<http://en.wikipedia.org/wiki/UNIX_System_V#SVR5>
<http://en.wikipedia.org/wiki/Berkeley_Unix>
<http://en.wikipedia.org/wiki/Single_UNIX_Specification>
<http://en.wikipedia.org/wiki/SunOS>
<http://en.wikipedia.org/wiki/Solaris_(operating_system)>
<http://en.wikipedia.org/wiki/Glib>
<http://en.wikipedia.org/wiki/Linux_Standard_Base>
<http://en.wikipedia.org/wiki/Glibc>
<http://en.wikipedia.org/wiki/International_Organization_for_Standardization>
<http://en.wikipedia.org/wiki/POSIX>
<http://en.wikipedia.org/wiki/ANSI_C>
<http://en.wikipedia.org/wiki/Institute_of_Electrical_and_Electronics_Engineers>