  Linux C Library (libc) ɂ
  앐r / Taketoshi Sano, (kgh12351@nifty.ne.jp)
  $Date: 1999/05/20 11:27:05 $, ($Revision: 1.11 $)

  Linux C Library (libc) ̊TvɂāA̖ƗjȂǂȒPɂ܂
  ߂̂łBeѕ̍\ɂĂ̌ӌ҂Ă
  B

  1.  uCuvƂ

  ܂ JF ɂ GCC-HOWTO (v1.17/Daniel Barlow , | v1.17j2/
  삳) ̒A֘A镶͂p܂B

    6.1.  LCu static ȃCu

    vO쐬̍ŏIiḰuNvƌĂ΂܂BSĂ̕i
    āAȂ̂ȂǂׂƂłB
    ut@CJvƂ悤ȗނ̍Ƃ́ÃvO
    s܂BĂ̂悤ȋ@\uiv̓Cu
    ̌`Œ񋟂Ă܂Bʂ Linux VXeł́ACu
     /lib  /usr/lib ɂ܂ȉꏊɂ邱Ƃ܂܂܂jB

  ܂uCuvƂ́AL̈pŐĂ悤

       ̃vOŋʂĎg悤ȁAėpIȁwix
       ĎgR[hW߂

  łB UNIX ł̃\tgEFAJ͗j C ōsȂ邱Ƃ
  ߁A ({IȃR}h⃉Cug̊J́A̗O
  ĂقƂ C ɂĂ܂) uł{IȕivW߂
  Cu̖O "libc" ƕtĂ܂B

  Ⴆ΃t@CJ߂̊֐ł fopen(3) ƂAWo͂ɕ\
  邽߂̊֐ł printf(3) Ȃǂ "libc" CuɊ܂܂Ă
  ܂B

  2.  LCu

  ĂсA JF  GCC-HOWTO p܂B

    static ȃCupꍇ́AJ̓vOKv
    镔iTAo͂st@Cɂ̕iRs[܂B
    LCȕꍇ͈Ƃs܂B
    J͏o̓t@CɁũvOsƂɂ́A
    ܂ꂱ̃Cu[hĂȂƂ܂v
    bZ[W𖄂ߍ݂܂BĖ炩ɋLCu
    pst@C̃TCY͏Ȃ܂B
    ܂郁fBXNeʂȂ܂B Linux ɂ
    ftHg̐U镑ł́ALCu΂pA
    Ȃ static ȃNs܂Bst@CLCu
    `ɂ̂ static ɂȂĂ܂ꍇ́Aʒu
    LCũt@Cāia.outł *.saA ELF ł *.so łjA
    炪ǂݍ݉\ɂȂĂ邩ǂ`FbNĂB

  uLCuv́ÃCugvOׂĂɂāu
  Lv (邢͋pAł shared) ̂łB

  N (s`쐬) ɁustaticvȃCugpꍇ͊es
  `t@C̓ɂ̃CuRs[ꂽR[hۑ邽
  ߁Aۂɓ삷鎞͂ꂼ̃R[hƗɃ[֓ǂݍ܂
  BCugvO𕡐NƁA܂R[h
  ׂ̕ēƗɃ[֓ǂݍ܂邽߁A[̎gpʂ͋N
  ɂقڔႵđ܂B

  uLCuvgpꍇAes`t@C̓ɂ
  ubZ[WvۑĂANꂽɂ̃vO̎s
  ɕKvȋLCu[ɖΓǂݍ܂܂AC
  ug̃vOɂĊɓǂݍ܂Ă΁AVɃ
  [֓ǂݍ܂̂͂̃vOŗL̃R[hƂȂA[gp
  ʂƏȂĂ݂܂B

  libc5 ł́Aʏ̃R}h (/bin/sh, /bin/cp, /bin/ls Ȃ) 
  Ɏgp "libc" ̎̂ "/lib/libc.so.5.4.33" Ȃǂ̂悤
  "libc.so.5.x.y" Ƃ`̖Otꂽt@CłB

  ̃t@Cɂ "/lib/libc.so.5" ƂÕNtĂAe
  vO͓쎞ɂ̃Nt@C肪ƂĎ̂ł
  /lib/libc.so.5.x.y ɃANZX܂B

  vO make ɂ̓J (ld) ͂܂ /usr/lib/libc.so ɃAN
  ZX܂B̃t@C libc5 ł /lib/libc.so.5 ւ̃N
  ȂĂÃÑt@C瓾񂪓쎞ɋLCu
  T߂́u肪 (ĹubZ[Wv)vƂĊes`
  t@C̓ɖߍ܂܂Bɂďڍׂm肽́A JF 
  GCC-HOWTO  "soname"ƂL[[hŌĂ݂ĂB

  libc6 (glibc2) ł͂ƘbĂāA "/usr/lib/libc.so" 
  ȉ̂悤 ld ̃XNvgɂȂĂ܂B

       /* GNU ld script Use the shared library, but some functions
       are only in the static library, so try that secondarily.  */
       GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a )

  AJ (ld) LCuT߂ɂ܂̃t@C
  (/usr/lib/libc.so) Ƃ_ libc5 ̏ꍇƓłBႤ̂́A
  쎞̋LCuƂĒTɂׂt@CNɂĎ
  Ă̂ł͂Ȃ /lib/libc.so.6 ƂOŎĂAƂ_
  ˁB

  ȂAlibc6 (glibc2) łAlibc ȊÓAႦΎZpZCu
  ܂܂Ă libm Ȃǂł /usr/lib/libm.so  /lib/libm.so ւ̃
  NĂ܂B

  Ȃ݂ɁAL̈pɂ "a.out"  "ELF" Ȃǂ́uLCu
  v̍\ () płBŋ߂ Linux VXeȂ炷ׂ
  "ELF" ƎvĂΗǂł傤B

       ELF ɂĂ̏ڍׂ JF  ELF-HOWTO ǂŉB

  3.  Linux C Library : R[h̋N

  āA "libc" ũvOŋʂĎg悤ȁAėpI
  wixƂĎgR[hW߂vCu̒łAuł{I
  ȕivW߂Cuł邱ƂoĂĉB

  āAŁu Linux Ƃ̓J[l̂ƂłvƂƂvo
  ĉB

  "Linux VXe" ŎgpĂuCuv̊J́A Linux J[l
  ̊JƂ͓ƗĂ܂B

  Debian 1.3.1 (bo)  /usr/doc/libc5/copyright Ƃt@Cɂ

       This is the Debian GNU/Linux prepackaged version of the
       Linux C library.  The Linux C library was adapted from,
       apparently, the GNU C library version 1.07.4, with additions
       from 4.4BSD.  Please see the file `glibc' in the source dis-
       tribution for complete details.  Note that glibc 2.* uses a
       mostly rewritten library which will be used as libc6 on
       Linux.

        Debian GNU/Linux ɂăpbP[Wꂽ Linux C
       CułB Linux C CúAo[W 1.07.4 
       GNU C Cux[XɁA 4.4BSD 炢̋@\ǉ
       č쐬܂BڍׂɂĂ̓\[Xzz "glibc"
       ƂÕt@CQƂĉB

       ܂ glibc 2.* ͂قƂǊSɏꂽCuł
       A Linux VXe libc6 ƂĎg͂̂
       łAƂƂɒӂĉB

  ƏĂ܂B܂A Linux  "libc" (C library)  GNU  libc
  1.07.4 x[XɁA 4.4BSD ̊g@\ĊJẮA
  ƂƂłB

  3.1.  Linux C Library : libc5 (ELF)

  NOALCǔ` "a.out"  "ELF" ւƈڍśA
  Linux p "libc" ̃o[W 4  5 ֈڍsł܂B

  ߂ɁA "file /lib/libc.so.?.*" sĂ݂ĉB̃VXe
  (Debian 1.3.1) ł

  /lib/libc.so.4.6.27: \\
    Linux/i386 demand-paged executable (QMAGIC), stripped
  /lib/libc.so.5.4.33: \\
    ELF 32-bit LSB shared object, Intel 386, version 1, stripped

  \܂B

  "Linux/i386 demand-paged executable (QMAGIC)" ͂̋LCu
  "a.out" `ł邱ƂA܂ "ELF 32-bit LSB shared object, Intel
  386, version 1," ͂̋LCu "ELF" `ł邱Ƃ
  B

       JF  GCC-HOWTO ɂ́u 6.4.3.1.  ZMAGIC  QMAGICvƂ
       ܂B QMAGIC ȑO ZMAGIC Ƃ "a.out" `g
       Ă悤łB܂ "a.out" `ɂ͂̎ނ
       ̂łB

  3.2.  Linux C Library : libc6 (glibc2)

  āA Linux C Cũo[W 5 "libc5" ܂ł͏L̂悤 GNU
  libc 1 nx[XɊJi߂Ă܂A "libc5" n͂
  łɐV@\ɊւJIĂ܂B

  ݊JĂo[W GNU libc 2.x  (Linux libc 6) łB
   "Linux libc6" ł͂ȂA "glibc2" ƌĂ΂邱ƂŔA]
  Linux C Library  libc5 ܂ł GNU libc NɎĂ͂ĂA
  ɑ啝ȕύXuʕvɂȂĂƂɔׁAV libc6 
  uGNU libc 2 ̂́vłƂƂɂ܂B
  ȉA JF  Glibc 2 HOWTO (v1.5/Erig Green A|͉{A
  ) ꕔp܂B

    1.1.  glibc2ɂ

    Glibc2  GNU C Cu̍ŐVłłB݁AύXȂœ삷̂́A
    GNU Hurd VXe Linux i386, m68k, alpha VXełBPowerPC,
    MIPS, Sparc, Sparc 64, Arm p Linux ɂ 2.1 łőΉ̗\łB
    Iɂ́Aق̃A[LeN`[ƃIy[eBOVXepɂ
    Ή̗\łB

    Linux ł, glibc2  Linux libc 5 ̌pA܂libc o[W6 Ƃ
    p܂BLinux libc J҂ libc5  (glibc2 ) u
    ܂ƂĂ܂B 2.0.6 ̒iKŁA glibc ͏\ȕi
    ȂĂ܂Bo[W 2.1 (߂\\) ́A葽
    @ֈڐAAV@\ǉāASIɗp悤
    Ȃł傤B

  ȑOA GNU Bulletin Ō̂łAႦ

       <http://www.gnu.org/bulletins/bull20.html#SEC24>
       <http://www.gnu.org/bulletins/bull21.html#SEC20>
       <http://www.gnu.org/bulletins/bull22.html#SEC21>

  ɂƁA GNU libc 2.0 ̊J GNU/Hurd ȑΏۂƂ Roland
  McGrath ɂčsȂĂA݂͓r Linux/i386 ɒS
  Ă Ulrich Drepper SƂȂčsȂĂA Linux/Alpha
  S David Mosberger-Tang  Richard Henderson A
  Linux/m68k S Andreas Schwab ͂Ă悤łB

  ܂ Linux libc5 ̎vȊJ҂ H.J.Lu  glibc2 ̊JɎQ
  ĂA libc5.4.46 ̃AiEX <http://lwn.net/980625/libc5.html>
  ł

  Hi, Gals and Guys,

  The Linux C library 5 is phasing out. I am only maintaining it for
  very serious bug fixes only. People who want new features and other
  improvements should use the Linux C library 6, aka, the GNU C library
  2. Please check the glibc 2 web site for details.

  ₠A݂ȂB

  Linux C Cu 5 ͏XɏłĂƂĂ܂B͒P
  ɏdȃoOtBbNX݂̂̂߂Ɍ݂̃R[hێ炵Ă܂B
  V@\₻̑̉ǂKvȐĺA Linux C Cu 6A
  ܂ GNU C Cu 2 g܂傤Bڍׂ glibc 2 ̃EFuTCg
  QƂĂB

  ƏĂ܂B

       ܂AŌ̂ GNU libc 2 ̊J Linux C
       Library ̊J҂ɂĎɍsȂĂƂƂ
       B

  ꂪu Linux libc6 = GNU libc 2 v̔wiłB

  4.  Linux C Library : ̔W

  ŋ߁A glibc2.0 ɑV[XƂ glibc2.1 J܂
  B alpha.gnu.org  kernel.org ł܂B̎̕M_
  ł glibc-2.1.1-pre2 JꂽŐVo[Ŵ悤łBݎ嗬
  libc6 (glibc2) ́AXɂ glibc2.1 ɈڍsĂ̂Ǝv
  B

  ܂ۂɎgĂ͂܂񂪁A glibc2.1  glibc2.0 ƔrƃX
  bh܂ȂǂPĂƂ̂ƂłBȂۂɃXbh̋@\
  ( SMP VXeł̐\ɗL) 𗘗pɂ linuxthreads Ƃ
  ʃpbP[WKvłBӂĂB

  A glibc2.1 ł͓Ȏd|g glibc2.0 Ƃ̃oCi݊
  Ă炵łA\[X͈ꕔύXKv (܂\[X݊ł
  Ȃ) 悤łB܂ locale ̈ glibc2.0 Ƃ͕ύXĂ ({
  IȘggƂẮA惊x߂dlɂȂĂ炵) Ȃǂ̘b
  ܂BO܂ł͓{ (ja_JP.ujis) ߂ɂ͐ݒt@C
  CKvƌĂ̂łAŋ (2.1.1) ͕Wł̂܂܎g
  悤ɂȂĂ炵łB

  ꂩǂȂĂ̂ACuJ̓ڂ܂
  ˁB

  5.  

  5.1.  肢

  ܂ŁAƂ肠ł܂Ƃ߂Ă݂܂A܂܂s
  Ă񂪂͂łBuǉė~vƂӌ
  ͐񋳂ĉB낵肢܂B

  5.2.  ӎ

  ̕ LDP/JF  GCC-HOWTO, ELF-HOWTO, Glibc 2 HOWTO ₻̑̎Q
  l瓾ꂽ܂Ƃ߂̂łB Linux [U[̖ɗ
  𐔑WςAEɔMĂ LDP  JF ݂̂ȂɊӂ
  B

  5.3.  ̔̕zzɂ

   copyrighted (c) 1999 Taketoshi Sano

  ̕ GNU pubNCZX (GPL) o[W 2 ȍ~̏
  A邢͕WI Linux hLgvWFNg (LDP) ̏Ɋ
  zzȂΎRɂĂĂ܂܂B̃CZX͂
  ̃hLgł悤ȃTCgł܂BLDP ̏
  (|̂) ȂCĂ܂BCꂽo[W
  GPL ̊ł̂ݔzẑƂ邱Ƃ\łB

