GNU C Library

C-ohjelmointikielen standardikirjasto

GNU C-kirjasto (glibc) on GNU-projektin toteutus C-kielen standardikirjastolle.[1] Kirjasto toteuttaa C-kielen alustariippuvat osat ja pyrkii seuraamaan olennaisia standardeja kuten ISO C, POSIX ja IEEE 754 sekä toteuttaa muun muassa BSD:n alustakohtaiset rajapinnat.

Glibc:n sijoittuminen sovelluksien ja käyttöjärjestelmän ytimen väliin.

Nimi on johdettu alkuperäisestä Unixin libc-kirjastosta. "libc" on yleisesti käytetty lyhenne "C-kielen standardikirjastolle", joka sisältää funktioita kaikille C-kielisille (ja toisinaan muunkielisille) ohjelmille.[2]

Linux-ympäristössä kirjasto toteuttaa kutsut Linux-ytimen järjestelmäkutsuihin.[3] Useissa tapauksissa kirjasto toteuttaa asioita, jotka ohjelman tekijä voisi tehdä itse.[3] Tietyille toiminnoille kuten ohjelmien käynnistämiseen, muistin varaamiseen ja tiedostojen käsittelyyn kirjasto kutsuu ytimen toimintoja.[3]

glibc on lisensoitu sallivammalla GNU Lesser General Public License (LGPL) lisenssillä, joka sallii käytön dynaamisena kirjastona. Kirjaston linkitys staattisena kirjastona osaksi ei-vapaata ohjelmatiedostoa ei ole lisenssin mukaista.[4]

HistoriaMuokkaa

Kirjaston kehityksen aloitti Roland McGrath, joka ilmoitti lopettamisesta ylläpitäjänä 30 vuoden jälkeen vuonna 2017.[5] Linuxille on ollut oma libc-kirjasto, josta on siirrytty glibc:n käyttöön vuodesta 1997 alkaen.[6] Linuxin libc 4 ja 5 perustuivat glibc:lle, joka ei ollut aktiivisessa kehityksessä tuolloin: glibc 2.0:ssa oli selkeitä parannuksia, jonka jälkeen useat Linux-jakelut siirtyivät glibc:n käyttöön.[6]

Vaihtoehtoiset kirjastotMuokkaa

Useita vaihtoehtoisia kirjastoja on myös kehitetty pääasiassa sulautettuihin järjestelmiin.

GNU libc on sisältää useita ominaisuuksia, mikä johtaa erityisesti suureen tallennustilan tarpeeseen. Eräässä vertailussa pienin GNU libc:hen staattisesti linkitetty käännetty C-kielinen ohjelma on kooltaan 662 kilotavua. Sulautettuihin tarkoitetuilla uClibc:lla ohjelma on 5 kilotavua ja dietlibc:lla 0,2 kilotavua.[7]

Vaihtoehtoisia c-kirjastoja:

Android käyttää Googlen kehittämää Bionic-C-kirjastoa.[15]

LähteetMuokkaa

  1. glibc Definition The Linux Information Project. Viitattu 4.11.2017.
  2. https://man7.org/linux/man-pages/man7/libc.7.html
  3. a b c 3. User space and the libc interface win.tue.nl. Viitattu 28.10.202. (englanniksi)
  4. Glibc and static linking lwn.net. Viitattu 4.11.2017. (englanniksi)
  5. Roland McGrath bows out as glibc maintainer lwn.net. 7.7.2017. Viitattu 28.10.2021. (englanniksi)
  6. a b A Technical Comparison of glibc 2.x With Legacy System Libraries people.redhat.com. Arkistoitu . Viitattu 28.10.2021. (englanniksi)
  7. Comparison of C/POSIX standard library implementations for Linux Eta Labs.
  8. http://www.eglibc.org/faq
  9. https://www.uclibc.org
  10. https://uclibc-ng.org
  11. https://www.musl-libc.org
  12. http://www.fefe.de/dietlibc/
  13. https://sourceware.org/newlib/
  14. picolibc (PDF) static.sched.com. Viitattu 28.9.2021. (englanniksi)
  15. Bionic C Library Overview dre.vanderbilt.edu. Viitattu 10.2.2020. (englanniksi) 

Aiheesta muuallaMuokkaa