Sunday 15 September 2013

Loading native code in an OSGi bundle via more specific processor architecture filters -


जब एक मूल पुस्तकालय ओएसजीआई बंडल में पंजीकृत है, तो आप बंडल-नेटिवकोड हेडर का उपयोग करते हैं:

  libjnotify.so; osname = Linux; प्रोसेसर = x86   

यह libjnotify.so पुस्तकालय उपलब्ध बनाता है अगर जावा वीएम एक x86 लिनक्स पर्यावरण में निष्पादित है।

हालांकि, यह नए ओएस या प्रोसेसर आर्किटेक्चर को कवर नहीं करता है। इसके अलावा, इसमें वातावरण शामिल नहीं है, जिसके लिए प्रोसेसर आर्किटेक्चर पर्याप्त नहीं है।

उत्तरार्द्ध मामले का एक उदाहरण के लिए, एआरएम वातावरण पर विचार करें। OSGi हमें ARM_le और ARM_be प्रदान करता है लेकिन मेरी समझ यह है कि यह पर्याप्त नहीं है एआरएम आर्किटेक्चर (एआरएमवी 6, एआरएमव 7 आदि) के विभिन्न संस्करण, अंतहीनता की परवाह किए बिना, बाइनरी-संगत नहीं हैं। इसके अलावा, एआरएम एक एफपीयू के साथ आर्किटेक्चर ओएस चला सकते हैं जो 'नरम फ्लोट' (आर्मल) या 'हार्ड फ्लोट' (आर्मफ) एबीआई का उपयोग करता है। हार्ड फ्लोट के लिए संकलित लाइब्रेरी को नरम फ्लोट सिस्टम पर चलाया नहीं जा सकता, और इसके विपरीत।

इसलिए इन अधिक जटिल परिवेशों में, मूल कोड कैसे लोड किया जाना चाहिए?

< Div class = "post-text" itemprop = "text">

जब आप ओएस नाम और प्रोसेसर को परिभाषित करने के लिए जावा लॉन्च करते हैं तो आप सिस्टम गुण सेट कर सकते हैं:

-Dorg.osgi.framework .processor = my_processor_name -Dorg.osgi.framework.os.name = my_os_name

कोर R5 स्पेसी में अनुभाग 4.5.3 देखें।

आप तब उन संदर्भों को संदर्भित कर सकते हैं

इसके अलावा, आप OSGi पर ओएसजी के लिए नए ओएस और प्रोसेसर नाम सबमिट कर सकते हैं।

No comments:

Post a Comment