Movatterモバイル変換


[0]ホーム

URL:


İçeriğe atla
VikipediÖzgür Ansiklopedi
Ara

GNU C Library

Vikipedi, özgür ansiklopedi
GNU C Library
YazarRoland McGrath
İlk yayınlanma1987 (39 yıl önce) (1987)[1]
Güncel sürüm2.43[2] Bunu Vikiveri'de düzenleyin 23 Ocak 2026
Kod deposuBunu Vikiveri'de düzenleyin
Programlama diliC
İşletim sistemiUnix benzeri
TürÇalışma zamanı kütüphanesi
LisansGNU Kısıtlı Genel Kamu Lisansı
Resmî sitesignu.org/software/libc/
Linux API'ı Sistem Çağrı Arayüzü, GNU C kütüphanesi velibevdev'den oluşur.
Linux çekirdeğinin sistem çağrılarını saran GNU C Kütüphanesi
Linux çekirdeği veGNU C LibraryLinux API'yi oluşturur. Derlemeden sonra ikili dosyalar birABI sağlar.

GNU C Library (TürkçeGNU C Kütüphanesi), bilinen adıylaglibc,GNU Tasarısı'nınC standart kütüphanesi uyarlamasıdır. Adına rağmen artık doğrudan C++ (ve dolaylı olarak diğerprogramlama dilleri) desteği bulunur. 1990'ların başındaÖzgür Yazılım Vakfı tarafındanGNUişletim sistemi için geliştirilmeye başlanmıştır.

GNU Kısıtlı Genel Kamu Lisansı altında dağıtılmıştır, glibc birözgür yazılımdır.

Tarihçe

[değiştir |kaynağı değiştir]

Glibc tasarısı ilkin daha çok Roland McGrath tarafından yazıldı, 1980'lerdeÖzgür Yazılım Vakfı için çalışmaktaydı.

Şubat 1988'de Özgür Yazılım VakfıANSI C'nin gereksindiği işlevselliğe neredeyse ulaştığını açıklamıştır.[3] 1992'de ANSI C-1989 ve POSIX.1-1990 işlevleri yerine getirilmiş, çalışma POSIX.2 yoluna girmiştir.[4]

Eylül 1995'te Ulrich Drepper glibc tasarısına ilk katkısını yaptı ve gitgide glibc'nin 1990'lardaki ana katkıcısı ve bakımcısı oldu.[5] Drepper uzun yıllar bakımcılık mevkiinde tutuldu ve 2012'ye kadar tasarıya yapılan katkıların toplam %63'ünü kendisine aittir.[6]

"Linux libc" çatalı

[değiştir |kaynağı değiştir]

1990 başlarındaLinux çekirdeği geliştiricileri glibc'yiçatalladılar. Çatallamalarını "Linux libc" olarak adlandırdılar, yıllarca ayrı olarak geliştirildi ve sürüm 2'den 5'e kadar dağıtıldı.

Özgür Yazılım Vakfı Ocak 1997'de glibc 2.0'ı dağıttığında POSIX ölçünlerine uygunluğu daha fazlaydı, daha iyiyerelleştirmeye ve çoklu dil işlevine,IPv6 yeterliliğine, 64-bit veri erişimine, çok iş parçacıklı uygulamalar için olanaklara, gelecek sürüm uyumluluğuna ve kodun daha fazla taşınabilirliğine sahipti.[7] Bu noktada, Linux çekirdeği geliştiricileri çatallamalarını durdurdular ve Özgür Yazılım Vakfı'nın glibc'sine döndüler.[8]

Linux libc'nin kullanılan son sürümülibc.so.5 iç adını (soname) kullanmıştır. Bundan hareketle Linux üzerinde glibc 2.x sürümlerilibc.so.6[9] iç adını kullanmıştır (Alfa veIA-64 mimarileri şimdilibc.so.6.1 adını kullanmaktadır). Kütüphaneler için sıradan teammülleri takiben *.so dosya ismi bazen libc6 olarak kısaltılmıştır (örneğinDebian'daki paket ismi).

Richard Stallman'a göre Linux libc'de yapılan değişiklikler glibc'yle birleştirilemezdi çünkü kodun yazarlık durumu açık değildi ve GNU tasarısı telif ve yazarların kaydedilmesi hakkında katı davranışlıdır.[10]

Yönlendirme kurulu kurulması

[değiştir |kaynağı değiştir]

2001'den başlayarak kütüphanenin gelişimi bir kurul tarafından denetlenmiştir,[11] Ulrich Drepper ana katkıcı ve bakımcı olarak kaldı.[12] Ulrich Drepper'in açıkça belirttiği gibi yönlendirme kurulu kurulması toplum karşıtlığıyla çevrilmiştir, ona göre bu kurulRMS'nin başarısız yönetimi devralma girişimidir.[13][14][15]

Git'e geçiş

[değiştir |kaynağı değiştir]

ÖnceleriCVS deposunda olan glibc 2009'da Sourceware'dekiGit deposuna geçirilmiştir.[16]

Debian EGLIBC'ye geçiyor ve dönüyor

[değiştir |kaynağı değiştir]

Drepper'in liderlik şekli ve dış katkı kabulu üzerinde süren uzun tartışmalar etrafında[17][18][19]Debian 2009'da resmen glibc'nin çatalı EGLIBC'ye geçmiştir.[20] Nisan 2015'te Debian 8.0 (Jessie) ile birlikte geri dönmüştür.[21]

Yönlendirme kurulunun dağılması

[değiştir |kaynağı değiştir]

Mart 2012'de yönlendirme kurulu oylamayla kendini dağıtmış ve topluluk odaklı geliştirme süreci adına Drepper'i görevden almış, Ryan Arnold, Maxim Kuvyrkov, Joseph Myers, Carlos O'Donnel veAlexandre Oliva GNU bakımcılığıyla görevlendirilmiştir (ama ilave karar alıcı güçleri olmadan).[22][23]

glibc bakımcılığında yaşanan değişikliklerden sonra Debian ve diğer tasarılar glibc'ye geri döndüler.[24] Ayrıca, 2014 başından beri glibc çatalı EGLIBC artık geliştirilmemektedir, bunun sebebi "hedeflere artık doğrudan GLIBC'nin içinde ulaşılmış" olmasıdır.

İşlevsellik

[değiştir |kaynağı değiştir]

glibcSingle UNIX Specification (TürkçeTek UNIX Tarifnamesi) vePOSIX'in (1c, 1d ve 1j) gerektirdiği işlevselliği karşılamaktadır.ISO C11,ISO C99,Berkeley Unix (BSD) arayüzlerinin, System V Interface Definition'un (TürkçeSystem V Arayüz Tanımı) ve X/Open System Interface (TürkçeX/Open Düzen Arayüzü) uyumlu düzenlerin yanında tüm X/Open UNIX eklentilerine ortak tüm eklentilerle X/Open Portability Guide Issue 4.2'nin (TürkçeX/Open Taşınabilirlik Kılavuzu Sayı 4.2) gerektirdiği bazı işlevsellikleri karşılamaktadır.

Ek olarak, glibc ayrıca GNU ile geliştirme yapılırken kullanışlı ya da gerekli addedilmiş eklentileri de karşılamaktadır.

Desteklenen donanım ve çekirdekler

[değiştir |kaynağı değiştir]

Glibc değişikçekirdeklerin ve değişikdonanım mimarilerin çalıştırdığı birçok düzende kullanılmıştır. En yaygın kullanımı x86 donanım üzerindeLinux çekirdeğiyle birliktedir, yine de resmi olarak desteklenen donanımlar[25] şunlardır:32-bit ARM ve yeni 64-bit ISA (AArch64),DEC Alpha,PA-RISC,IA-64,Motorola m68k,MicroBlaze,MIPS,Nios II,PowerPC,s390,SPARC,TILE,x86. Resmi olarakHurd veLinux çekirdeklerini destekler. Ek olarakFreeBSD veNetBSD (Debian GNU/kFreeBSD veDebian GNU/NetBSD düzenlerinin kurulu olduğu) çekirdeklerde,OpenSolaris'in çatal sürümünde çalışan yüksek miktarda yama içeren sürümleri de vardır.[26] AyrıcaBeOS veHaiku'dalibroot.so olarak adlandırılmış ve (düzenlenmiş biçimde) kullanılmıştır.[27]

Küçük aygıtlarda kullanım

[değiştir |kaynağı değiştir]

GeçmişteLinus Torvalds[28] vegömülü Linux yazılımcıları glibc'nin diğer kütüphanelerden yavaş ve "şişirilmiş" olduğu yönünde eleştirmiştir. Bu sebeple çeşitli farklı, daha küçük izdüşüme sahip C standart kütüphaneleri oluşturuldu. Farklı libc'ler şunlardır:Bionic (çoğunluklaBSD'deki libc'yi taban aldı ve Android'de kullanıldı[29]),dietlibc,uClibc,Newlib,Klibc vemusl.

Yine de çoğu küçük aygıt tasarısı diğerlerine karşılık GNU libc'yi kullandı. Bunun sebebi uygulama desteği, standartlara uyumu ve eksiksiz olduğu içindir. Bu küçük aygıt tasarılarına örnek olarakOpenmoko[30] ve (GPE görüntü yazılımı kullanılırken) iPaqel bilgisayarı içinFamiliar Linux verilebilir.[31]

Farklı seçenekler

[değiştir |kaynağı değiştir]

GNU C Library'den farklı diğerC standart kütüphaneler şunlardır:Bionic libc,dietlibc,EGLIBC,klibc,musl,Newlib veuClibc.

Uyumluluk katmanları

[değiştir |kaynağı değiştir]

Google'ınAndroid'i ve Microsoft'un Windows'u gibi diğer çevre-dizgeler için yazılacak programların glibc üzerinde çalışmalarını sağlayanuyumluluk katmanları ("shim'ler") vardır.libhybris Android'in Bionic'i için bir uyumluluk katmanıdır. Wine daWin32 API/ABI'den glibc'ye uyumluluk katmanı olarak görülebilir.

Ayrıca bakınız

[değiştir |kaynağı değiştir]

Kaynakça

[değiştir |kaynağı değiştir]
  1. ^Corbet, Jonathan (28 Mart 2012)."A turning point for GNU libc". LWN.net. 23 Nisan 2016 tarihinde kaynağındanarşivlendi. Erişim tarihi:21 Nisan 2016. 
  2. ^Andreas K. Hüttel (24 Ocak 2026)."The GNU C Library version 2.43 is now available" (İngilizce). Erişim tarihi:24 Ocak 2026. 
  3. ^"GNU's Bulletin, vol. 1 no. 4, February, 1988". 16 Nisan 2016 tarihinde kaynağındanarşivlendi. Erişim tarihi:21 Nisan 2016.Çoğu kütüphane tamamlandı. Roland McGrath […] ANSI C kütüphane işlevler setini neredeyse tamamladı. Umuyoruz ki bu baharda hazır olur. 
  4. ^"GNU's Bulletin, vol. 1 no. 12". 11 Mart 2016 tarihinde kaynağındanarşivlendi. Erişim tarihi:21 Nisan 2016.Artık tüm ANSI C-1989 ve POSIX.1-1990 işlevlerini içeriyor, POSIX.2 ve Unix işlevleri (BSD ve System V) üzerindeki çalışma devam ediyor 
  5. ^glibcGitHub'da değişiklik özeti.
  6. ^Corbet, Jonathan (28 Mart 2012)."A turning point for GNU libc". LWN.net. 23 Nisan 2016 tarihinde kaynağındanarşivlendi. Erişim tarihi:21 Nisan 2016.Tasarının git deposunda 19,000'e yakın katkı bulunuyor (bu katkılar 1995'e kadar gidebiliyor), 12,000'den fazlası Ulrich tarafından yapılmış 
  7. ^Lee, Elliot (2001)."A Technical Comparison of glibc 2.x With Legacy System Libraries". 11 Nisan 2004 tarihindekaynağından arşivlendi. Erişim tarihi:21 Nisan 2016. 
  8. ^"Forking: it could even happen to you". 15 Eylül 2009 tarihinde kaynağındanarşivlendi. Erişim tarihi:21 Nisan 2016.GNU LIBC ve Linux LIBC arasındaki ayrım -- Linux kararlı olana dek yıllarca devam etti ve sonra çatallamalar tek bir tasarıda birleştirildi 
  9. ^"Fear of Forking essay, see "6. glibc --> Linux libc --> glibc"". 31 Mart 2016 tarihindekaynağından arşivlendi. Erişim tarihi:21 Nisan 2016. 
  10. ^"Fear of Forking, footnote on Stallman's merge comments". 31 Mart 2016 tarihindekaynağından arşivlendi. Erişim tarihi:21 Nisan 2016. 
  11. ^"glibc homepage". 22 Nisan 2016 tarihinde kaynağındanarşivlendi. Erişim tarihi:21 Nisan 2016.2001'de GNU C Kütüphanesi Yönlendirme Kurulu …, kuruldu ve şu an Mark Brown, Paul Eggery, Andreas Jaeger, Jakub Jelinek, Ronald McGrath ve Andreas Schwab'dan oluşuyor. 
  12. ^"Ulrich Drepper". LinkedIn. 9 Ocak 2011 tarihinde kaynağındanarşivlendi. Erişim tarihi:13 Haziran 2012. 
  13. ^Drepper, Ulrich (26 Haziran 2000)."RMS is at it again". sourceware.org. 28 Aralık 2012 tarihinde kaynağındanarşivlendi. Erişim tarihi: 20 Kasım 2015.Birkaç hafta önce RMS bana saldırmaya başladı (bir tek posta, bunu nüfuzu almaya çaşılan doğrudan olmayan çaba takip etti, bunu bugün bir başka postayı takip etti). Esas şu ki o benim "GNU ilkelerini" takip etmediğimden yakınıyor ve bu nedenle benim de bir parçası olabileceğim yönlendirme kuruluyla değiştirilmesini söylüyor. Bazılarınız (ismen Roland ve Andreas S.) muhtemelen bunu diğer kurul üyeleri gibi bizi de önerdiğinden beri biliyorsunuz. Ek olarak Mark Brown da listede (Bu ismi, IBM'den bu kümeye uyacak bir kişiyi tanıyorum ama gerçekten o olup olmadığından emin değilim.) Her nasılsa, bunu tamamıyla reddediyorum. Bu tamamıyla yardımcı olmuyor, zıt olan doğrudur. İlk olarak, (herhangi) ana ilkeleri ihlal ettiğimin farkında değilim. Sadece açıkça politik hedefler (tabii ki bir küfür olan) RMS'nin emirlerini takip etmiyorum ve muhtemelen Winblowz'u umursamıyorum […] Bunların hiçbiri herhangi bir şekilde değişiklik yaratmayacak. 
  14. ^Drepper, Ulrich (15 Ağustos 2001)."glibc 2.2.4". sourceware.com. 9 Nisan 2016 tarihinde kaynağındanarşivlendi. Erişim tarihi: 29 Kasım 2015.Ve şimdi güzel olmayan şeyler için. Stallman son olarak benim glibc gelişimini dışarıdan yönetme olarak adlandırdığım şeyi denedi. Arkamdan komplo kurdu ve diğer ana geliştiricileri denetimi ele almaları için ikna etti sonunda o artık denetimde ve ne ona ne keyif verirse onu dikte edebilecek. Bu girişim başarısız ama her yerdeki insanları baskı altında tuttu ve bu gerçekten çirkin. Sonunda ben "yönlendirme kurulu" olarak adlandıran şeyin oluşturulmasını kabul ettim. 
  15. ^rms-accused-of-attempting-glibc-hostile-takeover 4 Mart 2016 tarihindeWayback Machine sitesindearşivlendi. onslashdot.com on August 19, 2001
  16. ^glibc repo 29 Nisan 2016 tarihindeWayback Machine sitesindearşivlendi. on Sourceware.com
  17. ^Ulrich Drepper 2007-10-03 06:13:55 UTC 15 Nisan 2016 tarihindeWayback Machine sitesindearşivlendi.Bunun "sadece x86" ile yapılacak bir şeyi yok. Tüm ABIler değişikliğe gereksinim olmadığını biraz anlayan insanlar tarafından tasarlandı. Herhangi bir değişiklik iyi tasarlanmış mimarileri kötü etkileyecektir [...] Ama senin dosyandaki kendi sürümün eklentidedir.
  18. ^Drepper, Ulrich (25 Mayıs 2005)."Dictatorship of the Minorities". udrepper.livejournal.com. 8 Ocak 2015 tarihinde kaynağındanarşivlendi. Erişim tarihi:15 Ocak 2012. 
  19. ^Jarno, Aurélien (5 Mayıs 2009)."Debian is switching to EGLIBC". aurel32.net. 7 Ekim 2011 tarihindekaynağından arşivlendi. Erişim tarihi:15 Ocak 2012.More friendly upstream (especially with regard to embedded architectures): “Daha dostane üst akım (özellikle gömülü mimariler gözetilerek): "İşbirliğini, iletişimi, inceliği ve diğer geliştiricilere saygınlığı özendirerek" (buna zıt olarak) 
  20. ^timothy (6 Mayıs 2009)."Debian Switching From Glibc To Eglibc".Slashdot. 13 Mart 2016 tarihinde kaynağındanarşivlendi. Erişim tarihi:14 Ocak 2012. 
  21. ^"Debian paket değişiklik özeti". 26 Mart 2016 tarihinde kaynağındanarşivlendi. Erişim tarihi:21 Nisan 2016. 
  22. ^McGrath, Roland (26 Mart 2012)."glibc steering committee dissolving". Sourceware.org. 18 Nisan 2016 tarihinde kaynağındanarşivlendi. Erişim tarihi:13 Haziran 2012. 
  23. ^Myers, Joseph S. (26 Mart 2012)."GNU C Library development and maintainers". Sourceware.org. 12 Mart 2016 tarihinde kaynağındanarşivlendi. Erişim tarihi:13 Haziran 2012. 
  24. ^"Debian is switching (back) to GLIBC". Aurélien. 19 Haziran 2014. 29 Mart 2016 tarihindekaynağından arşivlendi. Erişim tarihi:19 Haziran 2014. 
  25. ^"The GNU C Library machine maintainers". 18 Nisan 2016 tarihinde kaynağındanarşivlendi. Erişim tarihi:21 Nisan 2016. 
  26. ^Bartley, David; Spang, Michael."GNU/kOpenSolaris (GNU libc/base + OpenSolaris kernel)". 22 Nisan 2016 tarihindekaynağından arşivlendi. Erişim tarihi: 16 Aralık 2008. 
  27. ^"Haiku Source". 1 Mayıs 2016 tarihinde kaynağındanarşivlendi. Erişim tarihi:21 Nisan 2016.libroot.so GNU tasarısının parçası değildir ve Haiku'nun kaynak koduna dahil edilmiştir. 
  28. ^Torvalds, Linus (9 Ocak 2002)."Posting to the glibc mailing list". 12 Ekim 2015 tarihinde kaynağındanarşivlendi. Erişim tarihi:21 Nisan 2016. 
  29. ^"Bionic libc README". 10 Ağustos 2015 tarihinde kaynağındanarşivlendi. Erişim tarihi:21 Nisan 2016. 
  30. ^"OpenMoko components". 22 Nisan 2016 tarihinde kaynağındanarşivlendi. Erişim tarihi:21 Nisan 2016.Biz glibc kullanacağız (uClibC değil) … Farklı seçenekler yerden tasarruf sağlıyor ve daha çok iyileştirilmiş fakat bize daha çok birleştirmek için baş ağrısı verecek gibi 
  31. ^"Re: [Familiar] Which glibc for Familiar 0.8.4  ?". 12 Mart 2022 tarihinde kaynağındanarşivlendi. Erişim tarihi:21 Nisan 2016.Soru: Familiar 0.8.4'ü inşa etmek için hangi GLIBC sürümü kullanıldı? Cevap: 2.3.3 

Dış bağlantılar

[değiştir |kaynağı değiştir]
Tarihçe
GNU's not UNIX
Lisanslar
Yazılım
Sözcüler
Diğer konular
"https://tr.wikipedia.org/w/index.php?title=GNU_C_Library&oldid=36778012" sayfasından alınmıştır
Kategoriler:
Gizli kategoriler:

[8]ページ先頭

©2009-2026 Movatter.jp