2009-04-08 20 views
15

मैं http://www.cafeaulait.org/javafaq.html पर आइटम # 6.10 पढ़ रहा था और मैंने यह सोचना शुरू किया कि बड़े खिलाड़ी JVM के अपने कार्यान्वयन के बारे में कैसे जाते हैं। एक व्यक्ति के लिए एक प्रयोगात्मक कुछ या दूसरा संभव (और व्यवहार्य) होगा?कस्टम जेवीएम कैसे बनाएं?

+0

http://www.cafeaulait.org/javafaq.htm: अनुरोध किया गया URL/javafaq.htm इस सर्वर पर नहीं मिला था। यह /javafaq.html है, मैं एक संपादन में यह सही है। –

+0

@ अनुदान: तो मैंने किया, लेकिन थोड़ा धीमा। :) –

+0

"6.10: क्या जावा पॉइंटर्स है?"? –

उत्तर

10

के लिए संभव किया जा रहा है तकनीकी रूप से पर दांव नहीं होगा, सभी जानकारी लोगों को बनाने के लिए एक नया JVM भाषा और लक्षित मंच के लिए सार्वजनिक विशिष्टताओं में है की जरूरत है। एक जेवीएम को डेस्कटॉप कंप्यूटर या मोबाइल फोन पर चलने के लिए अलग-अलग व्यवहार करने की आवश्यकता होगी, भले ही बाइटकोड व्याख्या काफी हद तक समान हों।

कुछ स्थानों जानकारी के लिए देख शुरू करने के लिए: टिम लिंडहोम द्वारा "जावा वर्चुअल मशीन विशिष्टता" पढ़ना

http://en.wikipedia.org/wiki/List_of_Java_virtual_machines

http://www.jcp.org/en/jsr/detail?id=30

मैं क्या सूर्य, आईबीएम द्वारा JVM कार्यान्वयन के देखा है

या एस्मेरटेक जैसी छोटी कंपनियां, एक साधारण जेवीएम लिखना एक कई मैन-महीनों का प्रोजेक्ट है लेकिन जेएसआर के बाद जेएसआर जोड़ने के बाद अधिक कार्यक्षमता का समर्थन करने में सालों लग सकते हैं।

अब, यदि आपको केवल एक साधारण बाइटकोड दुभाषिया की आवश्यकता है, तो यह बुरा नहीं है, लेकिन यह अभी भी लिखने के लिए कोड का थोड़ा सा है।

3

एक बात के लिए, आप Apache Harmony पर एक नजर है करने के लिए वे एक लंबा सफर तय किया है, इसलिए अपनी परियोजना इतिहास वास्तव में आप प्रयास की आवश्यकता पर एक अच्छा विचार दे सकते हैं कर सकते हैं। मैं अपने आप को यह एक पुरुष

+0

"अपाचे हार्मनी 16 नवंबर, 2011 से अपाचे सॉफ्टवेयर फाउंडेशन में सेवानिवृत्त हो गया है।" – Raedwald

4

मैं समझता हूं कि, वर्तमान में, बड़े खिलाड़ी सूर्य से जावा लाइब्रेरी को लाइसेंस देते हैं। फिर वे अपने स्वयं के परिशोधन जोड़ते हैं। कार्यान्वयन के बीच मुख्य अंतर बाइटकोड-> मशीन कोड कंपाइलर है।

4

एक हस्तनिर्मित जेवीएम सामान्य रूप से वर्चुअल मशीनों के बारे में जानने के लिए एक शानदार तरीका होगा, प्रोग्राम भाषा डिजाइन (जेवीएम स्पेक के माध्यम से) के मुद्दों, और पार्सिंग की नीची किरदार और आगे।

आप उस दिशा में ले जाने के लिए चुनते हैं, तो आप भी अनुकूलन का पता लगाने सकता है, जो वह जगह है जहाँ यह दिलचस्प हो सकता है, और आप शोध पत्र लेने के लिए और अपने एल्गोरिदम लागू कर सकते हैं।

कहा जा रहा है कि, यदि आप स्क्रैच से वीएम बनाने के लंबे और कठिन कार्य में कम रुचि रखते हैं, तो आप Kaffe जैसे मौजूदा ओपन सोर्स वीएम को संशोधित करना चाहेंगे।

Kaffe जावा आभासी मशीन की एक साफ कमरे कार्यान्वयन है, के साथ साथ जुड़े वर्ग पुस्तकालयों एक जावा रनटाइम उपलब्ध कराने की जरूरत: कैसे जावा कोड सूर्य की JVM में काम करता है यह आपको बताएंगे कि क्या एक आभासी मशीन है, लेकिन जरूरी नहीं कि वातावरण।

इस तरह, आप विवरण का अध्ययन कर सकते हैं, लेकिन अधिक रोचक सुविधाओं को लागू करने के लिए गोता लगा सकते हैं।

संबंधित मुद्दे