आज के लेख में What is JVM in Hindi : Java Virtual Machine & its Architechture के बारे में सभी तथ्यों एवं जानकारी को प्राप्त करेगे.
" jvm एक software based मशीन है जो जावा प्रोग्राम को execute कराता है. इसे किसी भी operating system में स्थापित (install) कर सकते है जैसे windows, DOS, Linux और Unix इत्यादि है. "
JVM Full Form
जेवीएम का फुल फॉर्म "Java virtual machine" होता है. जिसे हिंदी में जावा आभासी मशीन बोलते हैं. क्योंकि इसका फिजिकल रूप नहीं होता है इसीलिए इसे आभासी मशीन कहते हैं.
JVM क्या है? Java Virtual Machine (What is JVM in Hindi)
सभी लैंग्वेज के कंपाइलर सोर्स कोड को मशीन कोड में ट्रांसलेट करते हैं अर्थात परिवर्तित करते हैं. जावा कंपाइलर भी यही कार्य करता है लेकिन जावा का आर्किटेक्चर न्यूट्रालिटी हैं. जावा कंपाइलर सोर्स कोड को बाइट कोड में परिवर्तित करता है जिसे जावा वर्चुअल मशीन कोड कहते हैं. जावा वर्चुअल मशीन रनटाइम एनवायरमेंट प्रदान करता है जिसे Java runtime environment (JRE) कहते हैं. जावा वर्चुअल मशीन कंप्यूटर मेमोरी के अंदर स्थित होता है. जो बाइट कोड को मशीन कोड में परिवर्तित करता है. जिसे वर्चुअल मशीन कहते हैं.
JVM प्लेटफॉर्म कई हार्डवेयर और सॉफ्टवेयर के लिए उपलब्ध होता है. जावा प्लेटफाॅर्म इंडिपेंडेंट होता है जिसके बाइट कोड को किसी भी ऑपरेटिंग सिस्टम में रन कराया जा सकता हैं.
JVM कार्यान्वयन के रूप में रनटाइम एनवायरमेंट प्रदान करता हैं जिसे जावा रनटाइम एनवायरमेंट (JRE) बोलते हैं.
जावा के प्रोग्राम चलाने के लिए कमांड प्राॅम्प्ट पर जावा कमांड लिखते हैं तो JVM रनटाइम एनवायरमेंट प्रदान करता है. तब JVM एक instance बन जाता है.
JVM कैसे कार्य करता है
जावा वर्चुअल मशीन बाइट कोड को एग्जीक्यूट करता है. अर्थात कंपाइलर द्वारा कंपाइल किये गये बाइट कोड को जावा वर्चुअल मशीन एग्जीक्यूट करता है. जावा वर्चुअल मशीन में बाइट कोड एग्जीक्यूट होने के बाद .exe फाइल एक्सटेंशन के साथ एक नई फ़ाइल क्रिएट होती है. जावा वर्चुअल मशीन निम्न कार्य करती हैं.
- बाइट कोड को लोड करना.
- बाइट कोड को वेरीफाई करना.
- बाइट कोड को एग्जीक्यूट करना.
- रनटाइम वातावरण प्रदान करना.
- .exe फाइल क्रिएट करना.
Process of compilation
कंपाइलिंग एक प्रोसेस है जिसमें जावा के प्रोग्राम को बाइट कोड में परिवर्तित किया जाता है जिसे वर्चुअल मशीन कोड या बाइट कोड कहते हैं. जावा कंपाइलर का आउटपुट मशीन इंडिपेंडेंट होता है जिसे जावा इंटरप्रेटर में इनपुट किया जाता है. जावा कंपाइलर का नाम javac होता है.
Process of converting bytecode into machine code
और यह वर्चुअल मशीन को विशिष्ट मशीन कोड नहीं होता है. जावा इंटरप्रेटर के द्वारा उत्पन्न किए गए कोड को मशीन कोड कहते हैं. अर्थात जावा इंटरप्रेटर बाइट कोड को मशीन कोड में परिवर्तित करता है तो उस कोड को मशीन कोड बोलते हैं. जावा इंटरप्रेटर का नाम जावा होता हैं.
Internal Architecture of JVM
जावा वर्चुअल मशीन के इंटरनल आर्किटेक्चर के तीन भाग होते हैं. जिसमें क्लासलोडर, मेमोरी एरिया और एग्जीक्यूशन इंजन होता है. चित्र में आप जावा वर्चुअल मशीन का इंटरनल आर्किटेक्चर देख सकते हैं.
1. ClassLoader (क्लासलोडर)
क्लासलोडर जावा वर्चुअल मशीन का सब सिस्टम होता है जिसका उपयोग क्लास फाइल को लोड करने के लिए होता है. जब हम जावा प्रोग्राम को रन कराते हैं तो सबसे पहले क्लासलोडर इस फाइल को लोड करता है. जावा में तीन इन-बिल्ड क्लासलोडर होते हैं.
Bootstrap ClassLoader एक rt.jar फाइल को लोड करता है जिसमें जावा स्टैंडर्ड एडिशन (Java Standard Edition) के सभी क्लास फाइल को धारण करता है जैसे java.long, java.io, java.util java.net और java.sql आदि पैकेज क्लासेस (package classes) होते हैं.
Extension ClassLoader यह बूटस्ट्रैप क्लासलोडर से छोटा होता है. यह जार फाइल (jar file) को ext directory में लोड करता है.
System ClassLoader यह एक्सटेंशन क्लासलोडर से छोटा होता है. तथा यह क्लास फाइलों को क्लासपाथ में लोड करती हैं. और बाई डिफॉल्ट यह करेंट डायरेक्टरी में सेट होता है.
2. Memory Areas Allocated by JVM
Class Area : क्लास यानी मेथड एरिया जिसमें मैथेड डेटा , मेथड के कोड , फील्ड और रनटाइम कैन्सटैन्ट पूल (Runtime constant pool) को स्टोर करता है.
Heap : हीप (heap) मेमोरी का रनटाइम डेटा एरिया होता है जहां पर ऑब्जेक्ट को एलोकेट किया जाता है.
Java Stack : जावा स्टैक (Java stack) फ्रेम्स को स्टोर करता है. प्रत्येक बार Method को invoke करने से एक नया फ्रेम क्रिएट होता है.
Program Counter (pc) Register : प्रोग्राम काउंटर रजिस्टर में जावा वर्चुअल मशीन के निर्देशों का पता होता है जहां वर्तमान समय में निष्पादित किया जा रहा है.
Native Method Stack : नेटिव मेथड स्टैक में सभी नेटिव मेथड को स्टोर करता है यह एप्लीकेशन में यूज़ किया जाता है.
3. Execution Engine (एग्जीक्यूशन इंजन)
Execution Engine : यह एक वर्चुअल प्रोसेसर को धारण करता है.
Interpreter : इंटरप्रेटर बाइट कोड को रीड करता है फिर उसके इंस्ट्रक्शन को एग्जीक्यूट करता है.
Just in time (JIT) compiler : JIT compiler बाइट कोड के भाग को कंपाइल करता है. यह जावा वर्चुअल मशीन कोड को सीपीयू के निर्देश के लिए तैयार करता है. यह performance को इंप्रूव करने के लिए यूज किया जाता है.
4. Java native interface
यह एक फ्रेमवर्क इंटरफ़ेस है जो अन्य भाषाओं में लिखे गए एप्लीकेशन जैसे C, C++ आदि से कम्युनिकेट करने के लिए इंटरफ़ेस प्रदान करता है.
Advantages of Java Virtual Machine
जावा वर्चुअल मशीन के कई एडवांटेज है जो जावा को सिक्योर, प्लेटफॉर्म इंडिपेंडेंट और cross-platform बनाता है. जावा वर्चुअल मशीन के मुख्य advantages इस प्रकार हैं-
1. Platform Independent
जावा बाइट कोड को किसी भी प्लेटफाॅर्म या ऑपरेटिंग सिस्टम पर रन कराया जा सकता हैं जिसमें जावा वर्चुअल मशीन हो . जावा बाइट कोड को किसी हार्डवेयर पर निर्भर नहीं होना पड़ता है. क्योंकि यह जावा वर्चुअल मशीन में रन करता है.
2. Security
जावा वर्चुअल मशीन built-in security रखता है जो प्रोग्रामर को हाई सिक्योर जावा प्रोग्राम लिखने की अनुमति देता हैं. जावा प्रोग्राम अलग अलग environment में अलग-अलग technologies के साथ काम कर सकता हैं. जावा में security JVM द्वारा प्रदान की जाती हैं. JVM मशीन कोड generate करने से पहले invalid combination को detect करता है.
3. Java Runs in a Protected Area
जावा वर्चुअल मशीन पूरी तरह से यह सुनिश्चित करता है कि खतरनाक साइट से पाखंडी एपलेट हार्ड ड्राइव जैसे सिस्टम संसाधनों को एक्सेस (access) न कर सके.
4. Java Cross Platform
Cross Platform का मतलब होता हैं कि किसी प्रोग्राम को विभिन्न प्रकार के हार्डवेयर पर सफलतापूर्वक रन कराने के लिए प्रोग्राम की क्षमता को क्रास प्लेटफॉर्म कहते हैं. जावा एक क्रास प्लेटफार्म है जिसके बाइट कोड को किसी भी प्लेटफार्म जैसे पीसी, mac अन्य डिवाइसों में भी रन कराया जा सकता है.
मेरी राय
आप लोग What is JVM in Hindi : Java Virtual Machine & its Architechture के बारे में जाना है. अगर आप लोगो को मेरी यह post पसंद आयी हो तो comment करे और अपने दोस्तों के साथ whatsapp, facebook और twitter पर शेयर करे.
0 Comments