ग्लिबीसी (glibc)

जीएनयू सी लाइब्रेरी, जिसे आमतौर पर ग्लिबीसी के नाम से जाना जाता है, जीएनयू परियोजना का सी मानक लाइब्रेरी का कार्यान्वयन है। अपने नाम के बावजूद, यह अब सीधे C++ (और, अप्रत्यक्ष रूप से, अन्य प्रोग्रामिंग भाषाओं) का भी समर्थन करता है। इसकी शुरुआत 1980 के दशक में GNU ऑपरेटिंग सिस्टम के लिए फ्री सॉफ्टवेयर फाउंडेशन (FSF) द्वारा की गई थी।

जीएनयू लेसर जनरल पब्लिक लाइसेंस के तहत जारी, glibc मुफ्त सॉफ्टवेयर है। जीएनयू सी लाइब्रेरी प्रोजेक्ट जीएनयू सिस्टम के लिए कोर लाइब्रेरी प्रदान करता है, साथ ही कई सिस्टम जो कर्नेल (ऑपरेटिंग सिस्टम) के रूप में लिनक्स कर्नेल का उपयोग करते हैं। ये लाइब्रेरी ISO C11 (C मानक संशोधन), POSIX.1-2008, बर्कले सॉफ़्टवेयर वितरण, OS-विशिष्ट API और बहुत कुछ सहित महत्वपूर्ण API प्रदान करती हैं। इन एपीआई में खुला (सिस्टम कॉल),  पढ़ें (सिस्टम कॉल) ,  लिखें (सिस्टम कॉल) , malloc,  प्रिंटफ प्रारूप स्ट्रिंग , getaddrinfo,  गतिशील लोडिंग , pthreads|pthread_create, तहखाना (सी)C),  लॉग इन करें , एग्जिट (सिस्टम) जैसी मूलभूत सुविधाएं शामिल हैं। कॉल करें) और भी बहुत कुछ।

इतिहास
ग्लिबैक परियोजना शुरू में ज्यादातर रोलैंड मैकग्राथ द्वारा लिखी गई थी, जो 1987 की गर्मियों में एक किशोर के रूप में फ्री सॉफ्टवेयर फाउंडेशन (एफएसएफ) के लिए काम कर रहे थे। फरवरी 1988 में, एफएसएफ ने ग्लिबैक को एएनएसआई सी के लिए आवश्यक कार्यक्षमता लगभग पूरी कर लेने वाला बताया। 1992 तक, इसमें ANSI C-1989 और POSIX.1-1990 फ़ंक्शन लागू हो गए थे और POSIX.2 पर काम चल रहा था। सितंबर 1995 में उलरिच ड्रेपर ने ग्लिबैक में अपना पहला योगदान दिया और 1997 तक अधिकांश प्रतिबद्धताएं उनके द्वारा की गईं। ड्रेपर ने कई वर्षों तक रखरखाव का पद संभाला और 2012 तक परियोजना के लिए सभी प्रतिबद्धताओं का 63% जमा कर लिया। मई 2009 में glibc को Git रिपॉजिटरी में स्थानांतरित कर दिया गया था।

2010 में, एक लाइसेंसिंग समस्या का समाधान किया गया था जो कि ग्लिबैक में सन आरपीसी कार्यान्वयन के कारण हुआ था जो कि जीपीएल लाइसेंस संगतता नहीं थी। इसे बीएसडी लाइसेंस के तहत सन आरपीसी घटकों को फिर से लाइसेंस देकर तय किया गया था। 2014 में, glibc को s390 पर ABI ब्रेकेज बग का सामना करना पड़ा। जुलाई 2017 में, ग्लिबैक शुरू करने के 30 साल बाद, रोलैंड मैकग्राथ ने अपने प्रस्थान की घोषणा की, खुद को अनुरक्षक एमेरिटस घोषित किया और परियोजना में प्रत्यक्ष भागीदारी से हट गए। अगर पिछले कुछ साल नहीं तो पिछले कई महीनों ने यह साबित कर दिया है कि अब तुम्हें मेरी जरूरत नहीं है।

2018 में, अनुरक्षक रेमंड निकोलसन ने ग्लिबैक स्रोत कोड से गर्भपात के बारे में एक चुटकुला हटा दिया। बाद में रिचर्ड स्टालमैन  द्वारा इसे वापस करने की मांग के बाद अलेक्जेंड्रे ओलिवा द्वारा इसे बहाल कर दिया गया। 2021 में, फ्री सॉफ्टवेयर फाउंडेशन के लिए कॉपीराइट असाइनमेंट की आवश्यकता को परियोजना से हटा दिया गया था।

कांटा और प्रकार
1994 में, लिनक्स कर्नेल कांटा (सॉफ़्टवेयर विकास)  के डेवलपर्स glibc. उनका कांटा, Linux libc, लगभग 1998 तक अलग से बनाए रखा गया था। क्योंकि कॉपीराइट एट्रिब्यूशन अपर्याप्त था, परिवर्तनों को GNU Libc में वापस विलय नहीं किया जा सका। जब जनवरी 1997 में FSF ने glibc 2.0 जारी किया, तो POSIX मानकों के साथ glibc 2.0 के बेहतर अनुपालन के कारण कर्नेल डेवलपर्स ने Linux libc को बंद कर दिया। Glibc 2.0 में बेहतर अंतर्राष्ट्रीयकरण और अधिक गहन अनुवाद, IPv6 क्षमता, 64-बिट डेटा एक्सेस, मल्टीथ्रेडेड अनुप्रयोगों के लिए सुविधाएं, भविष्य के संस्करण की अनुकूलता और कोड अधिक पोर्टेबल था। Linux libc के अंतिम उपयोग किए गए संस्करण में आंतरिक नाम (soname) का उपयोग किया गया था libc.so.5. इसके बाद, Linux पर glibc 2.x soname का उपयोग करता है libc.so.6

2009 में, डेबियन और लिनक्स वितरणों की कई सूची#डेबियन-आधारित को ग्लिबैक से वेरिएंट में बदल दिया गया उदाहरण. एग्लिबैक को फ्रीस्केल सेमीकंडक्टर, एमआईपीएस टेक्नोलॉजीज, मोंटाविस्टा और पवन नदी प्रणाली ्स के एक संघ द्वारा समर्थित किया गया था। इसमें ऐसे परिवर्तन शामिल थे जो इसे अंतः स्थापित प्रणाली के लिए अधिक उपयुक्त बनाते थे और इसमें ऐसे आर्किटेक्चर के लिए समर्थन जोड़ा गया था जो glibc द्वारा समर्थित नहीं थे, जैसे कि PowerPC e500। eglibc का कोड संस्करण 2.20 पर वापस glibc में विलय कर दिया गया था। 2014 से, eglibc बंद कर दिया गया है। डेबियन जेसी की रिहाई के बाद से योक्टो प्रोजेक्ट और डेबियन भी ग्लिबैक में वापस चले गए।

संचालन समिति
2001 में शुरू हुए पुस्तकालय के विकास की देखरेख एक समिति द्वारा की गई थी, उलरिच ड्रेपर के साथ मुख्य योगदानकर्ता और अनुरक्षक के रूप में रखा गया। संचालन समिति की स्थापना एक सार्वजनिक विवाद से घिरी हुई थी, क्योंकि इसे उलरिच ड्रेपर द्वारा खुले तौर पर रिचर्ड स्टॉलमैन द्वारा एक असफल शत्रुतापूर्ण अधिग्रहण पैंतरेबाज़ी के रूप में वर्णित किया गया था। मार्च 2012 में, संचालन समिति ने खुद को भंग करने और समुदाय-संचालित विकास प्रक्रिया के पक्ष में ड्रेपर को हटाने के लिए मतदान किया, जिसमें रयान अर्नोल्ड, मैक्सिम कुविरकोव, जोसेफ मायर्स, कार्लोस ओ'डोनेल और एलेक्जेंडर ओलिवा ने जीएनयू रखरखाव की जिम्मेदारी संभाली (लेकिन) कोई अतिरिक्त निर्णय लेने की शक्ति नहीं)।

संस्करण इतिहास
अधिकांश प्रणालियों के लिए, glibc का संस्करण lib फ़ाइल को निष्पादित करके प्राप्त किया जा सकता है (उदाहरण के लिए, /lib/libc.so.6)।

कार्यक्षमता
glibc एकल UNIX विशिष्टता, POSIX (1c, 1d, और 1j) के लिए आवश्यक कार्यक्षमता और अंतर्राष्ट्रीय मानकीकरण संगठन C11 (C मानक संशोधन), अंतर्राष्ट्रीय मानकीकरण संगठन C99, बर्कले यूनिक्स (BSD) इंटरफेस के लिए आवश्यक कुछ कार्यक्षमता प्रदान करता है।, सिस्टम V इंटरफ़ेस परिभाषा (एसवीआईडी) और एक्स/ओपन पोर्टेबिलिटी गाइड (एक्सपीजी), अंक 4.2, सभी एक्स/ओपन यूनिक्स एक्सटेंशन के साथ एक्सएसआई (एक्स/ओपन सिस्टम इंटरफ़ेस) अनुरूप सिस्टम के लिए सामान्य सभी एक्सटेंशन के साथ।

इसके अलावा, glibc ऐसे एक्सटेंशन भी प्रदान करता है जिन्हें GNU विकसित करते समय उपयोगी या आवश्यक समझा गया है।

समर्थित हार्डवेयर और कर्नेल
glibc का उपयोग उन प्रणालियों में किया जाता है जो कई अलग-अलग कर्नेल (ऑपरेटिंग सिस्टम) और विभिन्न कंप्यूटर हार्डवेयर आर्किटेक्चर चलाते हैं। इसका सबसे आम उपयोग x86 हार्डवेयर पर लिनक्स कर्नेल का उपयोग करने वाले सिस्टम में होता है, हालाँकि, आधिकारिक तौर पर समर्थित हार्डवेयर इसमें शामिल हैं: ARM एआरएम वास्तुकला|32-बिट ARM और इसका नया 64-बिट ISA (AArch64), ARC_(प्रोसेसर), C-SKY, DEC अल्फा, IA-64, मोटोरोला 68000 श्रृंखला, MicroBlaze ़, MIPS एमआईपीएस आर्किटेक्चर, Nios II, PA- जोखिम, PowerPC, RISC-V, IBM System z, SPARC, और x86 (पुराने संस्करण TILE64 का समर्थन करते हैं)। यह आधिकारिक तौर पर जीएनयू हर्ड और लिनक्स कर्नेल कर्नेल का समर्थन करता है। इसके अतिरिक्त, भारी पैच वाले संस्करण भी हैं जो फ्रीबीएसडी और नेटबीएसडी (जिसमें से डेबियन जीएनयू/केफ्रीबीएसडी|डेबियन जीएनयू/केफ्रीबीएसडी और डेबियन जीएनयू/नेटबीएसडी सिस्टम क्रमशः बनाए गए हैं) के कर्नेल पर चलते हैं, साथ ही  ओपनसोलर  का एक फोर्कड-संस्करण भी है। इसका प्रयोग (संपादित रूप में) एवं नामकरण भी किया जाता है libroot.so BeOS और Haiku (ऑपरेटिंग सिस्टम) में।

छोटे उपकरणों में उपयोग
अतीत में अन्य पुस्तकालयों की तुलना में सॉफ़्टवेयर ब्लोट और धीमी होने के कारण ग्लिबैक की आलोचना की गई है, उदाहरण के लिए लिनस टोरवाल्ड्स द्वारा और एंबेडेड लिनक्स  प्रोग्रामर। इस कारण से, कई सी मानक लाइब्रेरी#कार्यान्वयन बनाए गए हैं जो छोटे पदचिह्न पर जोर देते हैं। हालाँकि, कई छोटे-डिवाइस प्रोजेक्ट अपने एप्लिकेशन समर्थन, मानकों के अनुपालन और पूर्णता के कारण छोटे विकल्पों पर GNU libc का उपयोग करते हैं। उदाहरणों में ओपनमोको शामिल है और iPaq हैंडहेल्ड के लिए परिचित Linux (जीपीई पामटॉप पर्यावरण डिस्प्ले सॉफ़्टवेयर का उपयोग करते समय)।

संगतता परतें
अन्य पारिस्थितिक तंत्रों के लिए लिखे गए प्रोग्रामों को ग्लिबैक इंटरफ़ेस पेशकश प्रणालियों पर चलाने की अनुमति देने के लिए संगतता परतें (शिम (कंप्यूटिंग)) हैं। इनमें हाइब्रिस (सॉफ्टवेयर), एंड्रॉइड (ओएस) के लिए एक अनुकूलता परत | एंड्रॉइड के बायोनिक (सॉफ्टवेयर), और वाइन (सॉफ़्टवेयर)  शामिल हैं, जिन्हें  खिड़कियाँ  एपीआई से ग्लिबैक और यूनिक्स-जैसे पर उपलब्ध अन्य मूल एपीआई के लिए एक संगतता परत के रूप में देखा जा सकता है। सिस्टम.

यह भी देखें

 * ग्नुलिब
 * लिनक्स कर्नेल एपीआई