क्रॉस-प्लेटफ़ॉर्म मानक C लाइब्रेरी, कॉस्मोपॉलिटन 2.0 के नए संस्करण से मिलें

का शुभारंभ परियोजना का नया संस्करण "कॉस्मोपॉलिटन 2.0", जो एक मानक सी पुस्तकालय और एक सार्वभौमिक निष्पादन योग्य फ़ाइल प्रारूप विकसित करता है जिसका उपयोग दुभाषियों और आभासी मशीनों के उपयोग के बिना विभिन्न ऑपरेटिंग सिस्टम के लिए प्रोग्राम वितरित करने के लिए किया जा सकता है।

बर्तन सार्वभौमिक निष्पादन योग्य फ़ाइलें उत्पन्न करने के लिए विभिन्न प्रणालियों से विशिष्ट खंडों और शीर्षलेखों के संयोजन पर निर्भर करता है ऑपरेटिंग सिस्टम एक फ़ाइल में, यूनिक्स, विंडोज और मैकओएस में उपयोग किए जाने वाले कई अलग-अलग प्रारूपों को मिलाकर।

यह सुनिश्चित करने के लिए एक निष्पादन योग्य सिस्टम पर चलाएं विंडोज और यूनिक्स, विंडोज पीई फाइलों को शेल स्क्रिप्ट के रूप में एन्कोड करने के लिए एक ट्रिक का उपयोग किया जाता है, इस तथ्य का लाभ उठाते हुए कि थॉम्पसन शेल "#!" स्क्रिप्ट मार्कर का उपयोग नहीं करता है।

ऐसे प्रोग्राम बनाने के लिए जिनमें कई फाइलें शामिल हैं (सभी संसाधनों को एक फाइल में मिलाकर), यह विशेष रूप से तैयार किए गए ज़िप संग्रह के रूप में एक निष्पादन योग्य फ़ाइल उत्पन्न करने के लिए समर्थित है। प्रस्तावित प्रारूप की रूपरेखा (उदाहरण hello.com आवेदन):

अतिरिक्त पोर्टेबिलिटी के लिए qemu-x86_64 कॉल प्रदान की जाती है और x86_64 आर्किटेक्चर के लिए संकलित कोड को गैर-x86 प्लेटफॉर्म पर चलाने की अनुमति देता है, जैसे कि रास्पबेरी पाई बोर्ड और एआरएम प्रोसेसर से लैस ऐप्पल डिवाइस। प्रोजेक्ट का उपयोग स्टैंड-अलोन एप्लिकेशन बनाने के लिए भी किया जा सकता है जो बिना ऑपरेटिंग सिस्टम (नंगे धातु) के काम करते हैं। ऐसे अनुप्रयोगों में, एक बूटलोडर निष्पादन योग्य फ़ाइल से जुड़ा होता है, और प्रोग्राम बूट करने योग्य ऑपरेटिंग सिस्टम के रूप में कार्य करता है।

कॉस्मोपॉलिटन 2.0 . की मुख्य नवीनताएं

इस नए संस्करण में यह हाइलाइट किया गया है कि आंतरिक संसाधनों तक पहुँचने के लिए स्कीमा बदल दिया गया है अंदर एक ज़िप फ़ाइल से (फ़ाइलें खोलते समय, सामान्य /zip/… पथ अब zip:.. उपसर्ग का उपयोग करने के बजाय उपयोग किए जाते हैं)। इसी तरह, विंडोज़ में डिस्क तक पहुंचने के लिए, "सी:/..." के बजाय "/ सी/..." जैसे पथों का उपयोग करना संभव है।

एक नया एपीई लोडर प्रस्तावित है (वास्तव में पोर्टेबल निष्पादन योग्य), जो सार्वभौमिक निष्पादन योग्य फ़ाइलों के प्रारूप को परिभाषित करता है। नया बूटलोडर प्रोग्राम को मेमोरी में आवंटित करने के लिए mmap का उपयोग करता है और अब मक्खी पर सामग्री को नहीं बदलता है। यदि आवश्यक हो, सार्वभौमिक निष्पादन योग्य को अलग-अलग प्लेटफार्मों से बंधे नियमित निष्पादन योग्य में परिवर्तित किया जा सकता है।

लिनक्स पर, binfmt_misc कर्नेल मॉड्यूल का उपयोग करना संभव है एपीई कार्यक्रम चलाने के लिए। यह ध्यान दिया जाता है कि binfmt_misc का उपयोग सबसे तेज़ स्टार्टअप विधि है, इसके अलावा का एक कार्यान्वयन ओपनबीएसडी प्रोजेक्ट द्वारा विकसित प्रतिज्ञा () और अनावरण () सिस्टम कॉल की कार्यक्षमता, साथ ही सी, सी ++, पायथन और रेडबीन कार्यक्रमों में कॉल डेटा का उपयोग करने के लिए एक एपीआई प्रदान करने के साथ-साथ प्रॉमिस डॉट कॉम से एक उपयोगिता। मनमानी प्रक्रियाओं को अलग करने के लिए।

हम वह भी पा सकते हैं Linux के लिए, clock_gettime और gettimeofday कॉल का प्रदर्शन बढ़ा दिया गया है vDSO (वर्चुअल डायनेमिक शेयर्ड ऑब्जेक्ट) तंत्र के उपयोग के कारण 10 गुना तक, जो सिस्टम कॉल हैंडलर को उपयोगकर्ता स्थान पर स्थानांतरित करने और स्विच संदर्भ को दरकिनार करने की अनुमति देता है।

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

दूसरी ओर, यह भी हाइलाइट करता है मल्टीथ्रेडिंग के लिए कार्यान्वित कार्य: _spawn() और _join(), जो विभिन्न ऑपरेटिंग सिस्टम के लिए विशिष्ट एपीआई पर सार्वभौमिक बाइंडिंग हैं। POSIX थ्रेड्स के लिए समर्थन को लागू करने के लिए भी काम चल रहा है।

अन्य परिवर्तनों में से जो खड़े हैं:

  • सभी फ़ंक्शन और सिस्टम कॉल के बारे में जानकारी भेजने के लिए निष्पादन योग्य को "-ftrace" और "-strace" विकल्पों के लिए समर्थन जोड़ा गया।
  • Linux 5.9+, FreeBSD 8+ और OpenBSD के साथ संगत क्लोज़फ्रॉम () सिस्टम कॉल के लिए जोड़ा गया समर्थन।
  • जटिल संख्याओं के साथ काम करने के लिए गणितीय कार्यों को मुसल पुस्तकालय से स्थानांतरित कर दिया गया है।
  • कई गणित कार्यों को गति दी गई है।
  • नोइंटरनेट () फ़ंक्शन प्रस्तावित है, जो नेटवर्क क्षमताओं को अक्षम करता है।
  • स्ट्रिंग्स को कुशलता से जोड़ने के लिए नए फ़ंक्शन जोड़े गए: एपेंडेड, एपेंडफ़, एपेंडर, एपेंड, एपेंड, एपेंड्ज़, केपेन्डफ़, केवापेन्डफ़, और वैपेन्डफ़।
  • उन्नत विशेषाधिकारों के साथ काम करने के लिए डिज़ाइन किए गए kprintf() फ़ंक्शन के परिवार का एक संरक्षित संस्करण जोड़ा गया है।
  • एसएसएल, एसएचए, कर्व 25519 और आरएसए कार्यान्वयन के उल्लेखनीय रूप से बेहतर प्रदर्शन।

अंत में, यदि आप इसके बारे में अधिक जानने में रुचि रखते हैं, तो आपको पता होना चाहिए कि प्रोजेक्ट कोडया आईएससी लाइसेंस के तहत वितरित किया जाता है (एमआईटी/बीएसडी का सरलीकृत संस्करण)।


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

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

*

*

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