Google डेवलपर LLVM के लिए अपने स्वयं के libc को विकसित करना चाहते हैं

एलएलवीएम_लोगो

एलएलवीएम मेलिंग सूची में प्रस्तुत Google डेवलपर्स में से एक विकासशील विषय है एक क्रॉस-प्लेटफॉर्म मानक सी लाइब्रेरी (Libc) LLVM परियोजना के ढांचे के भीतर।

कई कारणों के लिए, Google वर्तमान परिवाद से संतुष्ट नहीं है (ग्लिबक, मसल) और कंपनी एक नए कार्यान्वयन को विकसित करने के लिए ट्रैक पर है, जिसे वह LLVM के हिस्से के रूप में विकसित करने का इरादा रखता है। एलएलवीएम विकास का उपयोग हाल ही में Google टूल बनाने के लिए आधार के रूप में किया गया है।

विकास क्रमिक होने की योजना बना रहा है, धीरे-धीरे कार्यक्षमता बढ़ रही है। यह प्रस्तावित है कि पहले विकल्प आवेदन और libc प्रणाली के बीच एक मध्यवर्ती परत का रूप लेते हैं, जहां से अवास्तविक सुविधाओं को उधार लिया जाएगा।

कार्यक्षमता के एक निश्चित स्तर तक पहुंचने के बाद, नए Libc का उपयोग Libc प्रणाली के पूर्ण प्रतिस्थापन के रूप में किया जा सकता है।

इसे x86-64 आर्किटेक्चर, लिनक्स, और स्टैटिक बाइंडिंग (डायनेमिक लोडिंग, पैकेजिंग और अतिरिक्त आर्किटेक्चर को दूसरा लागू किया जाएगा) के लिए समर्थन के साथ शुरू करने की योजना है।

परियोजना अभी भी विकास के प्रारंभिक चरण में है, लेकिन मूल उद्देश्यों को पहले ही परिभाषित किया जा चुका है:

  • दानेदार पुस्तकालय की आपूर्ति के दर्शन के अनुसार मॉड्यूलरिटी और विकासएक अखंड पहनावा के बजाय।
  • PIE मोड में स्टेटिक लिंक सपोर्ट (स्थिति-स्वतंत्र निष्पादनयोग्य) और बिना PIE के। CRT (C रनटाइम) और PIE लोडर को सांख्यिकीय रूप से जुड़ी निष्पादन योग्य फ़ाइलों के लिए प्रदान करें।
  • पुस्तकालय के अधिकांश कार्यों का समर्थन करता है POSIX प्लग-इन और कुछ सिस्टम-विशिष्ट एक्सटेंशन के साथ मानक जो मौजूदा अनुप्रयोगों में अनुरोध किए गए हैं।
  • विशिष्ट एक्सटेंशन के प्रति सावधान रवैया प्रदाता से और केवल आवश्यक होने पर उन्हें जोड़ना। तृतीय-पक्ष विस्तार समर्थन के लिए, यह क्लैंग और libc ++ प्रोजेक्ट दृष्टिकोण का उपयोग करने का प्रस्ताव है।
  • एलएलवीएम टूल्स का उपयोग करके विकास में सर्वोत्तम प्रथाओं का उपयोग करना, जैसे कि कीटाणुनाशक के आवेदन और शुरुआत से परीक्षणों का उन्मूलन।

सक्रिय एलएलवीएम डेवलपर्स में से एक ने संकेत दिया कि LLVM टूलकिट के भाग के रूप में libc डिलीवरी यह अर्थ के बिना नहीं है, लेकिन आम तौर पर ऐसी आवश्यकता के साथ वे मसल लाइब्रेरी का उपयोग करते हैं, यह अच्छी तरह से लिखा गया है, कई आर्किटेक्चर का समर्थन करता है, और गतिशील लिंकिंग सहित आवश्यक कार्यक्षमता प्रदान करता है।

एलएलवीएम में मसल को शामिल करना और मुख्य परियोजना के साथ एक समन्वित कांटा के रूप में इसका विकास उचित हो सकता है।

उनकी राय को मसल परियोजना के लेखक ने भी आवाज़ दी थी, जिन्होंने तर्क दिया कि Google का प्रस्ताव और LLVM वितरण में Libc को शामिल करने के कारण बहुत ही बुरे विचार हैं:

सही, संगत और उच्च-गुणवत्ता के लिबास का विकास और रखरखाव बहुत कठिन काम है। समस्या कोड की मात्रा में नहीं है, लेकिन सही व्यवहार प्रदान करने में है।

और इंटरफ़ेस कार्यान्वयन के साथ कठिनाइयाँ, C / C ++ में लिखे गए अनुप्रयोगों के विशाल भंडार पर विचार करने के साथ-साथ अन्य भाषाओं में अनुप्रयोगों के लिए जिनके रनटाइम का उपयोग Libc द्वारा किया जाता है।

बारीकियों को ध्यान में रखे बिना माथे का दृष्टिकोण केवल इस तथ्य को जन्म देगा कि कई मौजूदा कार्यक्रम Libc के साथ काम करने में सक्षम नहीं होंगे, लेकिन इस तरह की परियोजना उपभोक्ताओं के लिए रुचि नहीं होगी।

कॉर्पोरेट विकास Libc को बर्बाद कर सकता है, लेकिन व्यापक उपयोग को ड्राइव करें, जिसके परिणामस्वरूप अनुप्रयोगों में संगतता सुनिश्चित करने के लिए हैक्स को जोड़ने की आवश्यकता होगी।

कॉरपोरेट ओपन प्रोजेक्ट के तत्वावधान में विकास कंपनी की जरूरतों और निर्णयों की दिशा में कवरेज करेगा, समुदाय के हितों की रक्षा करेगा।

उदाहरण के लिए, नियंत्रण के तहत विकास में, अपने स्वयं के एक अन्य कार्यक्रम में त्रुटि के कारण होने वाली समस्या की पहचान करने के मामले में, इस त्रुटि के साथ लिब की संगतता की गारंटी देना आसान है, ताकि त्रुटि को ठीक किया जा सके।

Apple इन उद्देश्यों के लिए BSD libc कांटा का उपयोग करता है और Google Fuchsia कांटा का उपयोग करता है। मसल के डेवलपर का अनुभव बताता है कि वकीलों ने लाइसेंसिंग के मुद्दों को स्पष्ट करने के लिए मुख्य रूप से उनसे संपर्क किया।

Fuente: http://lists.llvm.org


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: एबी इंटरनेट नेटवर्क 2008 SL
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।