کلمه جو
صفحه اصلی

ماشین مجازی جاوا

دانشنامه عمومی

ماشین مجازی جاوا (به انگلیسی: Java Virtual Machine) که به صورت اختصار JVM مشخص می شود، مجموعه ای از برنامه های نرم افزاری و ساختمان داده هایی است که برای مدلسازی ماشینی مجازی اجرای برنامه های سایر رایانه ها و اسکریپت های دیگر سامانه هاُ به کار می رود. مدلی که جی وی ام برای اجرا می پذیرد، شکلی از زبان میانی را اجرا می نماید. به این زبان میانی جاوا بایت کد اطلاق می گردد. این زبان میانی، به صورتی مفهومی، مجموعه ای از دستوراتِ زبان برنامه نویس مبتنی به پشته و معماری قابلیت مبتنی بر امنیت است. سان، ادعا نموده که هم اکنون، ۴٫۵ میلیارد دستگاه در جهان از جی وی ام استفاده می نماید.
یک ماشین مجازی جاوا، علاوه بر جاوا، زبان های برنامه نویسی دیگری را هم پشتیبانی می نماید. برای مثال دستورات زبان برنامه نویسی ادا توانایی ترجمه به بایت کد و نیز اجرا در این ماشین مجازی را دارا هستند. علاوه بر شرکت سان (که شرکت توسعه دهندهٔ جاواست که البته این انحصار به شرکت اوراکل واگذار شده است)، سایر شرکت ها نیز ماشین های مجازی جاوایی را منتشر نموده اند؛ که البته این کار تحت ویژگی های منتشر شده توسط سان، صورت می پذیرد. همچنانکه تمام حقوق تجاری آن تحت نام جاوا و متعلق به سان است.جاوا، متبادر کنندهٔ مفهومی خاص است: یکبار بنویس، همه جا اجرا کن. این مفهوم توسط جی وی ام، پیاده سازی شده است. جی وی ام، محیطی برای اجرای برنامه های جاوا می باشد. این ماشین مجازی نرم افزاری است که در لایهٔ بالایی سخت افزار واقعی و سیتم عامل قرار می گیرد.جی وی ام جزء حیاتی سکوی جاو است. جی وی ام، بر روی بسیاری از سخت افزارها و سکوهای نرم افزاری قابل نصب است. جاوا با استفاده از بایت کد یکسان برای تمام سکوها، ویژگی ای را معرفی می نماید با نام: یک بار ترجمه کن، هرجایی اجرا کن که مخالف با مفایر با یکبار بنویس، همه جا اجرا کن است. چراکه یکبار بنویس …، دربارهٔ زبان های ترجمه شوندهٔ چند سکویی است.
جی وی ام، به همراه مجموعه ای از کتابخانه های کلاسِ استاندارد توزیع می گردد. این کتابخانه ها رابط برنامه نویسی نرم افزار را پیاده سازی می نماید. یک رابط برنامه نویسی نرم افزار، توسط یک سامانهٔ رایانه ای، کتابخانه، یا برنامه برای تبادل داده بین آن ها فراهم می گردد. این رابط های برنامه ای، به صورت متناسب و با هم، در محیط زمانِ اجرای جاوا (JRE) به صورت یک بسته وجود دارد.
برنامه ایی که می خواهند بر روی جی وی ام، اجرا شوند، باید در قالبی استاندارد و کد دودویی (باینری) قابل حمل ترجمه شده باشند که به شکل نقطه کلاس (class.) است. یک برنامه ممکن است شامل تعداد زیادی کلاس در قالب فایل های مختلف باشد. برای توزیع ساده ترِ برنامه های با اندازهٔ بزرگ، معمولاً این برنامه ها را در فایل هایی با قالب .jar، (که کوته نوشت Java archive) ذخیره می گردد.محیط اجرایی جی وی ام، فایل هایی با قالب .class یا .jar اجرا می نماید. این کار با استفاده از شبیه سازی مجموعه دستورات جی وی ام و با از تفسیر نمودن آن صورت می پذیرد. همچنین اجرای برنامه می تواند از طریق ترجمه همزمانِ هات اسپاتِ جاوا صورت پذیرد. ترجمه همزمانِ٬که در واقع تفسیر نیست، برای دستیابی به سرعت های بالاتر در نسخه های امروزی جی وی ام استفاده می گردد. البته برای آن دسته از توسعه گران، که برای سامانه های خاص، نیاز به کد بومی دارند، ترجمهٔ زودهنگام نیز برای جی وی ام وجود دارد.مانند بسیاری از ماشین های مجازی، ماشین مجازی جاوا، دارای ساختاری مبتنی بر پشته که مبتنی بر ریزپردازنده/ریزکنترلگر اجرا کنندهٔ آن است .وظیفهٔ جی وی ام به عنوان شیءای از محیط اجرای جاوا، اجرای برنامه های جاوا می باشد. بعد از اتمام اجرای برنامهٔ جاوا، این شیء به وسیلهٔ زباله روب، پالایش می شود. ترجمهٔ همزمان، به عنوان بخشی از ماشین مجازی جاوا به منظور افزایش سرعت اجراست. این روش ترجمه، با ترجمهٔ همزمان بخش هایی که عملکرد یکسانی را دارند و کاهش زمان لازم برای ترجمه، این افزایش سرعت را به ارمغان می آورد.


کلمات دیگر: