लिनक्स कार्यक्रमों में क्या कर रहे हैं?


20

लिनक्स के लिए यूनिटी 3 डी के साथ किए गए गेम्स .dllमें उनके डेटा फ़ोल्डर में फाइलें होती हैं GameDataFolder/Managed

जो अजीब है क्योंकि मुझे लगा कि लिनक्स .soफाइलों के बजाय फाइलों का उपयोग करता है .dll

(एंड्रॉइड-यूनिटी 3 डी ऐप्स के लिए भी यही सच है।)

क्यूं कर?

जवाबों:


25

आप जिस खेल के बारे में बोल रहे हैं, वह .NET फ्रेमवर्क पर आधारित है और मोनो के साथ चल रहा है, जो Microsoft के .NET फ्रेमवर्क का एक स्वतंत्र और खुला स्रोत कार्यान्वयन है।

क्योंकि ये अनुप्रयोग .NET आधारित हैं, असेंबली में .dll एक्सटेंशन है। इसलिए आप फ़ोल्डर्स में DLL फाइल्स देख सकते हैं।

क्रॉस-प्लेटफ़ॉर्म उपयोग के लिए डिज़ाइन किया गया एक .NET प्रोग्राम विंडोज, लिनक्स या मैक पर एक ही "बायनेरिज़" (DLL जो असेंबली भी हैं) के साथ चल सकता है, जो MSIL में संकलित हैं और निष्पादित करने के लिए .NET / मोनो रनटाइम की आवश्यकता है ।

कृपया ध्यान दें कि आपके पास उबंटू रिपॉजिटरी में उपलब्ध मोनो फ्रेमवर्क पर आधारित कुछ मुफ्त एप्लिकेशन (केवल गेम नहीं) हैं। उदाहरण के लिए: समाधि।


11
यह भी ध्यान दें कि जो dll "वास्तविक" विंडोज़ नहीं हैं, वे वास्तव में .NET बाइकोडकोड संकलित करेंगे।
सान्या_जोल

5
यह भी ध्यान दें कि फ़ाइल एक्सटेंशन, सहित .dllऔर .soलिनक्स में अर्थहीन हैं। वे केवल हमारी सुविधा के लिए उपयोग किए जाते हैं।
code_dredd

1
@ क्या आप समझा सकते हैं? मुझे लगा कि वे अभी भी फ़ाइल प्रकार की जानकारी देने के लिए एक मानक हैं, इसलिए व्यर्थ नहीं हैं?
FMaz

2
@FynnMazurkiewicz: यह एक एकल केंद्रीय विशेषता की तुलना में थोड़ी भिन्न डिजाइन परंपराओं का मामला है जो या तो सिस्टम के अनुरूप है। वास्तव में, विंडोज कर्नेल और लिनक्स डायनेमिक लिंकर दोनों खुशी से एक साझा पुस्तकालय (अपने संबंधित प्रारूपों में) लोड करेंगे, भले ही इसका फ़ाइल नाम .dll या .so या कुछ और में समाप्त हो। ऐतिहासिक कारणों से Windows में लोडलॉइस syscall कुछ मामलों में ".dll" फ़ाइल नाम में संलग्न होगा यदि इसमें पहले से एक्सटेंशन नहीं है, लेकिन ऐसा नहीं है कि यह आमतौर पर कैसे उपयोग किया जाता है
हेनिंग मैखोलम

1
@ray बिलकुल नहीं: यदि आपकी फ़ाइल का नाम उसके साथ या उसके रूपांतरों के साथ समाप्त नहीं होता है, तो gccजैसे पुस्तकालय की आपूर्ति -lmनहीं की जाएगी। .so.a
रुस्लान

9

.dllमें फ़ाइलों को GameDataFolder/Managedआंतरिक रूप से मोनो का उपयोग करता है एक देशी कोड कार्यक्रम के हैं।

एकता गेम इंजन मोनो (यहां तक ​​कि अधिकांश विंडोज प्लेटफार्मों पर) को एम्बेड करता है

क्रॉस-प्लेटफॉर्म निष्पादन और साझा लाइब्रेरी जो .NET कॉमन लैंग्वेज रनटाइम या मोनो द्वारा या तो चलाए जा सकते हैं, उन्हें अक्सर विंडोज के साथ विशिष्ट नहीं होने पर भी क्रमशः .exeऔर .dllप्रत्यय के साथ नाम दिया जाता है । जब आप .dllGNU / Linux सिस्टम जैसे उबंटू या किसी OS लेकिन विंडोज के लिए एक प्रोग्राम में एक फाइल पाते हैं , तो यह आमतौर पर यही कारण है। अधिकांश समय जब आप .dllएक उबंटू प्रणाली में पाते हैं , तो गोलबोथ का जवाब यह बताता है। लेकिन यह काफी नहीं है कि यहां क्या हो रहा है।

एकता खेल इंजन - जिसके साथ भ्रमित नहीं होना चाहिए सबसे उबंटू विज्ञप्ति में डिफ़ॉल्ट ग्राफिकल इंटरफेस एक लोकप्रिय मालिकाना पार मंच खेल इंजन --is। यह इंजन .NET फ्रेमवर्क या मोनो के शीर्ष पर नहीं चलता है। इसके बजाय, यह मोनो को एम्बेड करता है , जिसका कहना है कि मोनो इसके ऊपर चलता है। यह है कि डेवलपर्स जो भी कोड अपने खेल की जरूरत है लिखता है जो पहले से ही एकता इंजन का हिस्सा नहीं है।

सामान्य तौर पर, मोनो का उसी तरह उपयोग किया जा सकता है जिस तरह से Microsoft का .NET CLR आमतौर पर पूरा .NET / मोनो प्रोग्राम चलाने के लिए उपयोग किया जाता है। लेकिन मोनो को आसानी से देशी कोड अनुप्रयोगों में आसानी से एम्बेड करने के लिए डिज़ाइन किया गया है , जिसमें उन अनुप्रयोगों को अनुकूलित करने में सक्षम होना भी शामिल है । यह उस स्थिति में चल रहा है जिसका आप वर्णन कर रहे हैं। आपके द्वारा देखी जा रही फाइलें किसी प्रोग्राम से संबंधित नहीं हैं जो सीधे मोनो या .NET CLR के ऊपर चलती हैं। इसके बजाय वे एक देशी-कोड प्रोग्राम से संबंधित हैं जो मोनो को एम्बेड करता है।

कैसे एकता खेल इंजन मोनो का उपयोग करता है

यूनिटी गेम इंजन, जो ज्यादातर C ++ में लिखा गया है, मोनो के अपने स्वयं के उदाहरण को होस्ट करता है, जो उपयोग नहीं करता है - और आपके सिस्टम के पैकेज प्रबंधक के माध्यम से स्थापित संस्करण - (यदि कोई हो) से भिन्न हो सकता है। इस एम्बेडेड मोनो रनटाइम का उपयोग स्टैंडअलोन .NET / मोनो कार्यक्रमों को चलाने के लिए नहीं किया जा सकता है, क्योंकि यह इसका उद्देश्य नहीं है। इसके बजाय, इंजन का मूल कोड भाग CIL कोड को चलाने के लिए इसका उपयोग करता है। (CIL कॉमन इंटरमीडिएट लैंग्वेज है , जो इसका आधिकारिक नाम है। इसे पहले MSIL या Microsoft इंटरमीडिएट लैंग्वेज कहा जाता था, क्योंकि Microsoft ने इसे मूल रूप से विकसित किया था।) प्रोग्रामर ऐसे गेम्स बनाते हैं, जो यूनीटी इंजन का उपयोग करते हैं, आमतौर पर C # में अपना कोड लिखते हैं, हालांकि अन्य भाषाएँ। समर्थित हैं।

एकता इंजन विंडोज में भी मोनो को एम्बेड करता है। के लिए यूनिवर्सल विंडोज प्लेटफार्म और कोई अन्य प्लेटफार्मों - - खेल यह मोनो के बजाय माइक्रोसॉफ्ट .NET फ्रेमवर्क का उपयोग करता है। लेकिन अधिकांश प्लेटफ़ॉर्म पर अधिकांश यूनिटी गेम, जिनमें अधिकांश मोबाइल डिवाइस और गेमिंग कंसोल शामिल हैं, और उबंटू और विंडोज सहित, मोनो का उपयोग करते हैं। कुछ प्लेटफार्मों पर IL2CPP मोनो के विकल्प के रूप में उपलब्ध है, और कुछ ही IL2CPP समर्थित है। देखें स्क्रिप्टिंग प्रतिबंध जानकारी के लिए।

अन्य परिस्थितियाँ जहाँ आप .dllउबंटू की फाइलें देख सकते हैं

.dllउबंटू पर एक फ़ाइल को देखने की संभावना है, जहां दो स्थितियों का वर्णन किया गया है:

  1. एक साझा पुस्तकालय जिसका उपयोग .NET / मोनो एप्लिकेशन द्वारा किया जाना है। गोलबॉथ के उत्तर में इस पर विस्तार से वर्णन किया गया है। यह वही है जो .dllआप उबंटू प्रणाली पर देखेंगे। यह सिर्फ .dllआपके GameDataFolder/Managedफ़ोल्डर में मौजूद फाइलों के लिए नहीं होता है ।
  2. एक कोड प्रदान करने वाली फ़ाइल जो एक एम्बेडेड मोनो रनटाइम द्वारा एक मूल कोड एप्लिकेशन के लिए "स्क्रिप्टिंग" प्रदान करने के लिए उपयोग की जाती है। इस मामले में यही चल रहा है।

दो अन्य सामान्य रूप से सामान्य मामले हैं जहां आपको .dllउबंटू पर एक फ़ाइल दिखाई दे सकती है :

  1. .NET कोर के लिए कंपाइलर .dllफ़ाइलों के बजाय फ़ाइलों का उत्पादन करता है .exe, तब भी जब आप जो संकलन कर रहे हैं वह लाइब्रेरी नहीं है। नेट कोर क्रम (CoreCLR कहा जाता है), और नहीं नियमित .नेट फ्रेमवर्क या मोनो, इन फ़ाइलों को चलाता है। .NET कोर एक Microsoft उत्पाद है, लेकिन मानक .NET फ्रेमवर्क के विपरीत, .NET कोर , GNU / Linux सिस्टम जैसे Ubuntu के लिए आधिकारिक समर्थन के साथ क्रॉस-प्लेटफ़ॉर्म है , और यह मुफ़्त खुला स्रोत सॉफ़्टवेयर है
  2. कभी-कभी .dllउबंटू में आपके द्वारा देखी गई एक फ़ाइल सिर्फ एक विंडोज लाइब्रेरी होगी। आप यह देख सकते हैं कि प्रोग्राम को एक उबंटू सिस्टम संग्रहीत किया जा रहा है, लेकिन विंडोज पर चलाएं, या यदि आप उबंटू में एक विंडोज ड्राइव माउंट करते हैं। आप इसे उन प्रोग्रामों के संबंध में भी देख सकते हैं, जो उबंटू पर वाइन का उपयोग करने में सक्षम हैं , जिसमें सॉफ्टवेयर भी शामिल है जो वाइन के साथ आता है या आप winetricksअन्य विंडोज सॉफ़्टवेयर का समर्थन करने के लिए स्वचालित रूप से इंस्टॉल करते हैं।

यह उन सभी परिस्थितियों को पूरी तरह से सूचीबद्ध करने का प्रयास नहीं है, जहां आप .dllउबंटू पर मुठभेड़ कर सकते हैं । (उदाहरण के लिए, यह एक ओएस / 2 पुस्तकालय भी हो सकता है ।) हालांकि, मेरा मानना ​​है कि वे चार मामले सबसे आम हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.