C library and Unix发展扫盲

原创 2012年03月21日 17:50:07

接触linux C有些时间了,一直对于libcglibcunix/like unix的发展不是很了解,学习这么久还不知道他的详细发展,所以整理了此文。

 

目录:

1.C standard library

C standard library,IEEE,ANSIC,POSIX,C POSIX library,ISOSingle UNIXSpecification

2.glibc

GNU C Library,Linux Standard Base,GLib

3.UNIX and like UNIX

Solaris (operating system),SunOSBSD,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 (FrenchOrganisation internationale de normalisationRussian: Международная организация по стандартизации, 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 GenevaSwitzerland.[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 hierarchyrun 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 DTraceZFS 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. FreeBSDNetBSDOpenBSD 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 callsC 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>

<http://en.wikipedia.org/wiki/C_standard_library>  

codeforces802C Heidi and Library (hard) -- 费用流

题目大意:每天会有一个客人来图书馆,共n天,第i个客人要看的书是ai。 为了保证每个客人都能读到想要的书,你可以在任意时间去商店买书并放入图书馆或者从图书馆里丢掉几本书,图书馆里最多只能有k本书。...
  • gjghfd
  • gjghfd
  • 2017年05月30日 10:27
  • 260

GNU C Library 3 Virtual Memory Allocation And Paging 虚拟内存分配和页面调度——摘要

文档地址:https://www.gnu.org/software/libc/manual/html_node/Memory.html#Memory   3 虚拟内存分配和分页   3.1 进...

Library for Converting Data to and from C Structs for Lua 5.1

Library for Converting Data to and from C Structs for Lua 5.1 (download) This library offers basic...

【计算机网络知识扫盲】之一:网络的发展历程

互联网产生于1969年初,它的前身是阿帕网(ARPA网),是美国国防部高级研究计划管理局为准军事目的而建立的,开始时只连接了4台主机,这便是只有四个网点的“网络之父”;到了1972年公开展示时,由于学...

System Programming with C and Unix

  • 2014年03月11日 18:45
  • 3.12MB
  • 下载

翻译 | Keras : Deep Learning library for Tensorflow and Theano

看到Kears时,发现代码好简洁,在github上学习了它的帮助文档,很有用处,便翻译过来,留用。翻译不好勿喷。 哈哈 Keras 是一个用python写的,能够在Tensorflow或Theano上...

Debugging C and C++ In Unix

  • 2007年09月27日 19:49
  • 118KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C library and Unix发展扫盲
举报原因:
原因补充:

(最多只允许输入30个字)