ভিএমগুলিকে কেন "স্ট্যাক মেশিন" বা "রেজিস্টার মেশিন" ইত্যাদি হওয়া দরকার?


48

(এটি একটি অত্যন্ত নবাগত প্রশ্ন)

ভার্চুয়াল মেশিন সম্পর্কে আমি একটু পড়াশোনা করেছি।

দেখা যাচ্ছে তাদের অনেকগুলি শারীরিক বা তাত্ত্বিক কম্পিউটারগুলির সাথে খুব একইভাবে নকশাকৃত।

আমি পড়লাম যে JVM উদাহরণস্বরূপ, একটি 'স্ট্যাক মেশিন'। এর অর্থ কী (এবং আমি ভুল হলে আমাকে সংশোধন করি) তা হ'ল এটি একটি সমস্ত স্ট্যাকের 'অস্থায়ী মেমরি' সংরক্ষণ করে এবং এটি সমস্ত অপকডের জন্য এই স্ট্যাকটিতে অপারেশন করে।

উদাহরণস্বরূপ, উত্স কোডটি এর 2 + 3অনুরূপ বাইটোকোডে অনুবাদ করা হবে:

push 2
push 3
add

আমার প্রশ্নটি হ'ল:

জেভিএম সম্ভবত সি / সি ++ এবং অন্যান্য ব্যবহার করে রচিত। যদি তা হয় তবে জেভিএম নিম্নলিখিত সি কোডটি কার্যকর করে না কেন: 2 + 3..? আমি বলতে চাইছি, কেন এটি একটি স্ট্যাকের প্রয়োজন হয়, বা অন্যান্য ভিএম'র 'রেজিস্টার' - যেমন কোনও শারীরিক কম্পিউটারের মতো?

অন্তর্নিহিত শারীরিক সিপিইউ এই সমস্তটির যত্ন নেয়। ভিএম লেখকরা কেবল ভাষাগুলির সাথে প্রোগ্রাম করা ভাষায় 'স্বাভাবিক' নির্দেশাবলীর সাহায্যে ব্যাখ্যা করা বাইটকোডকে কার্যকর করেন না কেন?

সত্যিকারের হার্ডওয়্যার যখন আমাদের জন্য ইতিমধ্যে এটি করে থাকে তখন ভিএমগুলিকে কেন হার্ডওয়্যার অনুকরণ করা দরকার?

আবার খুব নবাগত-ইশ প্রশ্ন। আপনার সাহায্যের জন্য ধন্যবাদ


5
আপনি কী নন ভার্চুয়াল মেশিনগুলির ভিত্তিতে বিবেচনা করেছেন?

5
@ মিশেলটি আপনার মানে শারীরিক মেশিন?
আভিভ কোহন

অবশ্যই, বেশিরভাগ জাভাস্ক্রিপ্ট ভিএমএস স্ট্যাক মেশিন বা রেজিস্টার মেশিন নয় - ভি 8 / আয়নমোনকি / চক্র / ইত্যাদি জাভাস্ক্রিপ্ট প্রয়োগ করে এমন ভিএমএস। একটি "ভিএম" হ'ল একটি দোভাষী বা জেআইটি সংকলক যা ডিজাইনারের ইচ্ছা অনুযায়ী যে কোনও ভাষা প্রয়োগ করতে পারে।
বিলি ওনিল

@ বিলিওনিল উদাহরণস্বরূপ, যদি আমি কোনও ভাষার জন্য একটি ভিএম লিখছি এবং আমি সি তে লিখছি: ভিএম বাইটকোড লাইনটি 'প্রিন্ট "হাই" "কে পার্স করে এবং সম্পাদন করে printf("hi");: এটি কি ভিএম হিসাবে বিবেচিত হয়? এটির কোনও 'স্ট্যাক' বা 'নিবন্ধক' এবং বা কিছু নেই।
আভিভ কোহন

@ প্রোগ: হ্যাঁ, এটি সঠিক।
বিলি ওনিল

উত্তর:


51

ভার্চুয়াল বা না এমন একটি মেশিনের গণনার একটি মডেল প্রয়োজন যা এটিতে গণনা কীভাবে পরিচালিত হয় তা বর্ণনা করে। সংজ্ঞা অনুসারে, এটি গণনা করার সাথে সাথে এটি গণনার কয়েকটি মডেল প্রয়োগ করে। তারপরে প্রশ্নটি হল: আমাদের ভিএম এর জন্য আমাদের কোন মডেলটি বেছে নেওয়া উচিত? শারীরিক মেশিনগুলি হার্ডওয়ারে কার্যকর ও দক্ষতার সাথে কী করা যায় তার দ্বারা সীমাবদ্ধ। তবে, যেমন আপনি লক্ষ্য করেছেন, ভার্চুয়াল মেশিনগুলিতে এ জাতীয় কোনও বাধা নেই, এগুলি নির্বিচারে উচ্চ স্তরের ভাষা ব্যবহার করে সফ্টওয়্যারে সংজ্ঞায়িত করা হয়।

প্রকৃতপক্ষে, ভার্চুয়াল মেশিনগুলি রয়েছে যা আপনি বর্ণনা হিসাবে উচ্চ-স্তরের। তাদের প্রোগ্রামিং ভাষা বলা হয় । উদাহরণস্বরূপ সি স্ট্যান্ডার্ড তার পৃষ্ঠাগুলির সিংহভাগ তথাকথিত "সি অ্যাবস্ট্রাক্ট মেশিন" এর জন্য একটি মডেল সংজ্ঞায়িত করতে উত্সর্গ করে যা সি প্রোগ্রামগুলি কীভাবে আচরণ করে এবং এক্সটেনশনের মাধ্যমে (যেমন নিয়ম হয়) কীভাবে একটি সি সি সংকলক (বা দোভাষী) আচরণ করা উচিত

অবশ্যই, আমরা সাধারণত যে একটি ভার্চুয়াল মেশিন কল না। একটি ভিএম সাধারণত নীচের স্তরের এমন কিছু বোঝায় যা হার্ডওয়ারের কাছাকাছি, সরাসরি প্রোগ্রাম করার উদ্দেশ্যে নয়, দক্ষতার সাথে সম্পাদন করার জন্য ডিজাইন করা হয়। এই নির্বাচনের পক্ষপাতিত্বের অর্থ হ'ল যে উচ্চ-স্তরের কম্পোজেবল কোড গ্রহণ করে এমন কিছু (যেমন আপনি বর্ণনা করেন) কোনও ভিএম হিসাবে বিবেচিত হবে না কারণ এটি উচ্চ-স্তরের কোড কার্যকর করে।

তবে বিন্দুটি পেতে, ভিএম তৈরির কিছু কারণ এখানে রয়েছে (যেমন বাইটোকোড সংকলক দ্বারা লক্ষ্যযুক্ত কিছু) নিবন্ধভিত্তিক ভিত্তিক বা এর মতো। স্ট্যাক এবং রেজিস্টার মেশিনগুলি অত্যন্ত সহজ। প্রতিটি নির্দেশাবলীর জন্য নির্দেশাবলী, কিছু রাজ্য এবং শব্দার্থবিজ্ঞানের একটি ক্রম রয়েছে (একটি ফাংশন স্টেট -> রাজ্য)। জটিল গাছ হ্রাস, অপারেটর নজির নেই। এটিকে পার্সিং, বিশ্লেষণ এবং সম্পাদন করা খুব সহজ, কারণ এটি একটি ন্যূনতম ভাষা (সিনট্যাকটিক চিনিটি সংকলিত) এবং মানব-পঠনের পরিবর্তে মেশিন-রিড হওয়ার জন্য তৈরি করা হয়েছে।

বিপরীতে, এমনকি সহজ সি-এর মতো ভাষাগুলিও পার্সিং করা বেশ শক্ত, এবং এটি সম্পাদন করার জন্য অ-স্থানীয় বিশ্লেষণের প্রয়োজন যেমন পরীক্ষা করা এবং প্রসারণ করা প্রকারগুলি, ওভারলোডগুলি সমাধান করা, একটি প্রতীক টেবিল বজায় রাখা, স্ট্রিং আইডেন্টিফায়ারগুলি সমাধান করা, রৈখিক পাঠ্যকে অগ্রাধিকার দ্বারা চালিত এএসটিতে রূপান্তর করা like , ইত্যাদি। এটি এমন ধারণাগুলি তৈরি করে যা মানুষের কাছে প্রাকৃতিক আসে তবে মেশিনগুলির দ্বারা কঠোরভাবে বিপরীত হতে হয়।

জেভিএম বাইটকোড, উদাহরণস্বরূপ, দ্বারা নির্গত হয় javac। এটি ভার্চুয়াল কখনও কখনও মানুষের দ্বারা পড়তে বা লেখার দরকার পড়ে না, তাই মেশিন দ্বারা এটি ব্যবহারের দিকে চালিত হওয়া স্বাভাবিক। আপনি যদি এটি মানুষের জন্য অনুকূলিত করেন তবে জেভিএম প্রতিটি স্টার্টআপে কোডটি পড়ে, পার্স করবে, বিশ্লেষণ করবে এবং তারপরে যেকোন উপায়ে সরল মেশিনের মডেলের অনুরূপ একটি মধ্যবর্তী প্রতিনিধিত্বতে রূপান্তর করবে । মাঝের মানুষটিকেও কেটে ফেলতে পারে।


সুতরাং আপনি যা বলছেন তা হ'ল স্ট্যাকের নির্দেশাবলীতে সমস্ত System.out.println("hi");কিছু সংকলন করা (অর্থাত্ স্ট্যাকের কোনও নির্দেশিকায় int a = 7সংকলিত , স্ট্যাকের কোনও নির্দেশিকায় সংকলন করা ইত্যাদি) প্রোগ্রাম কার্যকর করা সহজ এবং আরও দক্ষ করে তোলে?
আভিভ কোহন

2
@ প্রোগ মূলত, হ্যাঁ তবে শুধু ফাঁসি নয়, বিশ্লেষণও। সবকিছু যে প্রোগ্রামের মাধ্যমে সম্পন্ন করা হয়।

তবুও, আমি কেন বুঝতে পারি না 2 + 3তা সংকলিত push 2 push 3 addaddশেষে পদক্ষেপ সি কোড চালিয়ে যাহাই হউক না কেন JVM দ্বারা মৃত্যুদন্ড কার্যকর করা হয় 2 + 3। জেভিএমের প্রোগ্রামারদের এটি করার জন্য আর কোনও উপায় নেই। কেন এটি সংকলন করে না 2 + 3, এবং এখনই JVM কে কেবল সি কোডটি 2 + 3(এটি সিতে লেখা আছে ধরে নেওয়া) চালাবেন?
আভিভ কোহন

@ প্রোগ জেভিএম লেখক কেবল জেভিএম উত্স কোডটিতে লিখতে পারবেন না 2 + 3কারণ জেভিএমকে কোনও ক্রমে কোনও ক্রিয়াকলাপ চালিয়ে যে কোনও প্রোগ্রামের সাথে কাজ করতে হবে। বিল্ডিং সি উত্স কোড এবং একটি সি বাস্তবায়নের পিছনে পিছনে একই সমস্যাটিকে সি বাস্তবায়নের দিকে ঠেলে দেয় (এবং সহজেই সম্পন্ন করা যায় না, দক্ষতার সাথে একা থাকুন)। প্রোগ্রামটি বর্ণনা করে এমন কিছু ডেটা স্ট্রাকচার থাকতে হবে, যাতে এটি ব্যাখ্যা করা যায় এবং জেআইটি সংকলিত হয় এবং "হিউম্যান রিডেবল সোর্স কোড" উপরে বর্ণিত কারণগুলির জন্য ডেটা কাঠামোর একটি ভয়াবহ পছন্দ।

7
@ প্রোগ আপনি 2 + 3 এর নির্দিষ্ট ক্ষেত্রে খুব বেশি মনোযোগী বলে মনে করছেন কি a + b? তারপরে যুক্ত করার মানগুলি থেকে আসে না i.argument{1,2}, সেগুলি স্থানীয় ভেরিয়েবল থেকে লোড হয়। কি হবে frobnicate(x[i]) + (Foo.bar() * 2)? এই নকশাটি ব্যবহার করে, কেবলমাত্র একটি addঅপারেশন রয়েছে (এর জন্য int) এবং এটি সংযোজনগুলি কীভাবে গণনা করা হয়েছিল তা থেকে এটি স্বাধীনভাবে কাজ করে। এছাড়াও, এমন একটি নির্দেশ যা কেবল পূর্ণসংখ্যার আক্ষরিক যোগ করে তা অর্থহীন হবে: এর ফলাফলটি পাশাপাশি প্রাক-গণনা করা যেতে পারে (এর পরিবর্তে add(2,3)এটি হওয়া উচিত push(5))।

20

এই উত্তরটি জেভিএমকে কেন্দ্র করে, তবে বাস্তবে এটি কোনও ভিএমের জন্য প্রযোজ্য।

সত্যিকারের হার্ডওয়্যার যখন আমাদের জন্য ইতিমধ্যে এটি করে থাকে তখন ভিএমগুলিকে কেন হার্ডওয়্যার অনুকরণ করা দরকার?

তারা তা করে না, তবে এটি ভিএমকে অনেক সহজ এবং পোর্টেবল করে তোলে: একটি ভিএম যা হার্ডওয়্যারকে এমুলেট করে কোনও হার্ডওয়্যার সিপিইউর তুলনায় একই কম্পিউটারের মডেল ব্যবহার করতে পারে।

বিশেষত জেভিএম বহনযোগ্যতার কথা মাথায় রেখে নির্মিত হয়েছিল, এটি এটি নির্মিত হয়েছিল তাই এটি হার্ডওয়ারে প্রয়োগ করা যেতে পারে (এটি আজ বিশ্বাস করাও কঠিন হতে পারে, তবে জাভাটির উত্স এম্বেড করা বিশ্বে ছিল - বিশেষত, ইন্টারেক্টিভ টেলিভিশনের জন্য নিয়ামকগণ )।

আপনার যদি এর মতো লক্ষ্য থাকে তবে এটি আকাঙ্ক্ষিত যে ভিএম যতটা সম্ভব একটি শারীরিক মেশিনের কাছাকাছি চালিত হয়, কারণ প্রকৃত মেশিন কোডে অনুবাদ করা সহজ এবং এইভাবে দ্রুত হয়। একবার আপনার কাছে ভিএম এর অপকডস হয়ে গেলে, তত্ত্ব অনুসারে, আপনাকে যা করতে হবে তা হল প্রোগ্রামটি আসলে চালু হওয়া সিপিইউয়ের অপকডগুলিতে অনুবাদ করতে হবে। অনুশীলনে এটি ঠিক তেমন সহজ নয়।

আমি বলতে চাইছি, কেন এটি একটি স্ট্যাকের প্রয়োজন হয়, বা অন্যান্য ভিএম'র 'রেজিস্টার' - যেমন কোনও শারীরিক কম্পিউটারের মতো?

স্ট্যাক ভিত্তিক ভার্চুয়াল মেশিন মডেলটি ব্যবহার করার সুবিধা রয়েছে যে এটি সহজেই রেজিস্ট্রার এবং স্ট্যাক মেশিন উভয়কেই স্থানান্তরিত করা যায়, যদিও বিপরীতটি অগত্যা সত্য নয়। একটি নিবন্ধভিত্তিক ভিএম-র নিবন্ধকের সংখ্যা, নিবন্ধের আকার ইত্যাদি সম্পর্কে অনুমান করা প্রয়োজন স্ট্যাক মেশিনের সাহায্যে এ জাতীয় কোনও অনুমানের প্রয়োজন হয় না।

অন্তর্নিহিত শারীরিক সিপিইউ এই সমস্তটির যত্ন নেয়। ভিএম লেখকরা কেবল ভাষাগুলির সাথে প্রোগ্রাম করা ভাষায় 'স্বাভাবিক' নির্দেশাবলীর সাহায্যে ব্যাখ্যা করা বাইটকোডকে কার্যকর করেন না কেন?

ঠিক আছে, এই জাতীয় ভিএমগুলি এগুলি করে, তারা বাইটকোড ব্যাখ্যা করে। এমনকি জেভিএম আসলে এটি করে, কমপক্ষে জেআইটি (সুনির্দিষ্ট) কিক করার আগে: এটি বাইট কোডগুলি ব্যাখ্যা করে এবং জেভিএম লিখিত ছিল এমন ভাষায় বিবৃতিগুলি কার্যকর করে (সাধারণত সি বা সি ++, তবে একটি লিখিত আছে) জাভাস্ক্রিপ্টে, ডপ্পিও )। নোট, তবে, এমনকি এই জাতীয় বিবৃতিগুলি একটি সংকলক দ্বারা মেশিন কোডে অনুবাদ করা হয়েছিল এবং জাভা সংকলক যেটি উত্পাদন করে তার সাথে খুব মিল দেখায় - যথা, তারা তাদের কাজ সম্পাদনের জন্য নিবন্ধ এবং স্ট্যাক ব্যবহার করে। নোট করুন "বর্ণিত" বনাম "সংকলিত" ভাষার ব্যবহার এই মুহুর্তে কিছুটা ঝাপসা হয়ে যায় ।


অবশ্যই, সফ্টওয়্যারে প্রয়োগ করা যায় এমন কোনও কিছু হার্ডওয়ারে প্রয়োগ করা যেতে পারে। এছাড়াও, জেভিএম বর্তমানে (হটস্পট) একটি জেআইটি সংকলক - এটি জেভিএম লিখিত ভাষায় বিবৃতিগুলি কার্যকর করে না If যদি এটি করা যায়, জাভা ভয়ঙ্করভাবে সঞ্চালন করবে এবং এটি আজকের মতো কার্যকর প্ল্যাটফর্মের কাছাকাছি আর নেই would । (জাহান্নাম, সর্বাধিক জাভাস্ক্রিপ্ট প্রয়োগগুলি দ্রুত হবে)
বিলি ওনিল

2
@ বিলিওনিল "পদ্ধতি অনুসারে পদ্ধতি সংকলন করার পরিবর্তে, ঠিক সময়ে, জাভা হটস্পট ভিএম তাত্ক্ষণিকভাবে একটি দোভাষী ব্যবহার করে প্রোগ্রামটি চালায়, এবং কোডটি বিশ্লেষণ করে প্রোগ্রামটিতে গুরুত্বপূর্ণ হট স্পটগুলি সনাক্ত করার জন্য এটি চালিত হয়েছে Then হট স্পটগুলিতে গ্লোবাল নেটিভ-কোড অপ্টিমাইজার "" oracle.com/technetwork/java/ whitepaper-135217.html #2 থেকে উদ্ধৃত , বিভাগ "হট স্পট ডিটেকশন"
মিরাকুলিক্সেক্স

হ্যাঁ. "নেটিভ কোড অপ্টিমাইজার" == জেআইটি সংকলন। কোডের জন্য একটি দোভাষী পর্ব রয়েছে যা জেআইটিটিং খুব কম ব্যবহৃত জিনিস এড়াতে "গরম" বলে মনে হয় না। তবে এর অর্থ এই নয় যে কোনও জেআইটিটিং মোটেই করা হয় না।
বিলি ওনিল

উত্তর করার জন্য ধন্যবাদ. আপনার উত্তর থেকে আমি যা সংগ্রহ করেছি তা হ'ল ভিএম-তে হার্ডওয়্যার অনুকরণ করার কারণগুলি ('স্ট্যাকস' বা 'রেজিস্টারগুলি সহ' ইত্যাদি) কারণ এটি পরে বাইকোড বা উত্স কোডটি একটি আসল মেশিন কোডে সংকলন করা সহজ করে তোলে শারীরিক সিপিইউ তবে এগুলি বাদে - কোনও ভিএম-তে এমুলেটিং হার্ডওয়্যার থেকে কী লাভ? আমি এখনও বুঝতে পারছি না যে কোনও ভিএম ডিজাইন করা কেন কেউ 'স্ট্যাক মেশিন' বা 'রেজিস্টার মেশিন' ইত্যাদি বিবেচনা করবে যখন বাস্তবে আমরা সফ্টওয়্যার নিয়ে কথা বলছি। আমি কিছু অনুপস্থিত করছি?
আভিভ কোহন

@ প্রোগ ওকে, আপনার কাছে একটি প্রোগ্রামিং ভাষা আছে, এক্স বলুন its আপনি কীভাবে এর প্রোগ্রামগুলি চালাবেন? আপনি হয় উত্সটি ব্যাখ্যা করতে পারেন বা এটি মেশিন কোডে সংকলন করতে পারেন, বা কিছু মধ্যবর্তী কোডে এটি সংকলন করতে পারেন। এখন আপনার কাছে আরও একটি প্রোগ্রামিং ভাষা রয়েছে, ওয়াই এবং এক্স ব্যবহার করে এটি প্রয়োগ করতে চান both উভয় বাস্তবায়ন যদি দোভাষী হয় তবে আপনার এক্স এর ইন্টারপ্লেটারের সাথে ওয়াইয়ের দোভাষা চলবে এবং এটি খুব ধীর হবে।
18446744073709551615

11

ভিএমগুলিকে কেন "স্ট্যাক মেশিন" বা "রেজিস্টার মেশিন" ইত্যাদি হওয়া দরকার?

তারা করে নাই. আপনার যদি ভার্চুয়াল মেশিনের দরকার হয় তবে এটি কিছু হতে পারে।

বিদ্যমান ভার্চুয়াল মেশিনগুলি পরিস্থিতিগুলির সমাধান হিসাবে উপস্থিত হয়েছে: সত্যিই একটি উজ্জ্বল ধারণা আমার মাথায় এসেছে, আমি একটি নতুন প্রোগ্রামিং ভাষা আবিষ্কার করেছি! তবে আমাকে কোড তৈরি করতে হবে। (কী এক বিরক্তিকর কাজ!) তবে আমি কুরুচিপূর্ণ হওয়ার কারণে i8086 কোড উত্পন্ন করতে চাই না এবং আমি 68k কোড উত্পন্ন করতে চাই না কারণ প্রত্যেকে ইন্টেল ব্যবহার করছে। ভ্যাক্সও রয়েছে, তবে আমার কাছে কোনও ভ্যাক্স নেই, কম্পিউটার বা ভ্যাক্স বই নেই। অতএব আমি এমন কিছু প্রসেসরের কোড তৈরি করব যা শারীরিকভাবে বিদ্যমান না এবং সফ্টওয়্যারটিতে সেই প্রসেসরটি বাস্তবায়িত করে। সেই ভিএম এর অনুমানটি আমার থিসিসে একটি অধ্যায় তৈরি করবে। তত্ত্বগতভাবে, এটি কোনও প্রসেসরের নেটিভ কোডে সংকলন করা সম্ভব হবে, তবে তা আমার হবে না।

অন্যদিকে, "2 + 3" এর মতো স্বরলিপিটি সম্ভবত ভিএম দ্বারা প্রত্যাশিত ভবিষ্যতে ব্যবহার করা হবে না কারণ এটি বোঝায় যে কিছু কার্যকর হওয়ার আগে অনেকগুলি রূপান্তর করা।


উত্তর করার জন্য ধন্যবাদ. সুতরাং আমি আপনার উত্তর থেকে যা জড়ো করেছি তা হ'ল ভিজিটাল সিপিইউগুলি অনুকরণ করে এমন কোনও ভিএম ডিজাইন করার প্রেরণা কারণ এটি পরবর্তীতে প্রকৃত মেশিন কোডের সাথে সংকলিত সংকলকগুলি কার্যকর করা সহজ করে তোলে। তবে এর বাইরে - কোনও 'স্ট্যাক মেশিন' বা 'রেজিস্টার মেশিন' ইত্যাদির ক্ষেত্রে ভিএম ডিজাইনের কোনও সুবিধা আছে কি?
আভিভ কোহন

1
রেজিস্টারগুলিকে নিবন্ধের বরাদ্দ অ্যালগরিদম প্রয়োজন, যার জন্য তত্ত্ব এবং ডিবাগ উভয়ই প্রয়োজন। একটি স্ট্যাক মেশিন (যেমন একটি শূন্য অপারেণ্ড এক) স্ট্যাকের উপর কেবল ডেটা রাখতে পারে। OTOH, হার্ডওয়্যার সাধারণত একটি পরিবর্তনশীল-আকারের স্ট্যাকের পরিবর্তে সীমিত পরিমাণে রেজিস্টার প্রয়োগ করে। সুতরাং সফ্টওয়্যারটির জন্য স্ট্যাকগুলি আরও সহজ, হার্ডওয়্যারগুলির জন্য নিবন্ধগুলি আরও সহজ এবং সম্ভবত এটি আরও দ্রুত।
18446744073709551615

-2

জিজ্ঞাসা করা প্রকৃত প্রশ্নের উত্তর দিতে। "ভার্চুয়াল ম্যাচিন" শব্দের অর্থ সমস্ত সফ্টওয়্যার / হার্ডওয়্যার সিমুলেটেড / অনুকরণযুক্ত। আপনি যদি নির্দেশাবলী কার্যকর করতে অন্তর্নিহিত সফ্টওয়্যার / হার্ডওয়্যার ব্যবহার করেন তবে আপনার কাছে কোনও ভিএম নেই, আপনার একটি সংকলক / দোভাষী রয়েছে।


এটি কি কেবল আপনার মতামত বা আপনি কোনওভাবে এটি ব্যাক আপ করতে পারেন?
মশা

পছন্দ করুন "সমস্ত" হার্ডওয়্যার "সিস্টেম" বা "পূর্ণ" ভিএম-তে অনুকরণ করা হয়। সমস্ত ভিএম পূর্ণ নয়। উদাহরণস্বরূপ, বিএসডি ভিএম স্তরটির নাম দেওয়া হয়েছে "ভার্চুয়াল মেশিন", যদিও সেখানে হার্ডওয়্যার অনুকরণ করা হয়নি।
নেটচ

আমি মনে করি না যে প্রশ্নটি অবশ্যই পরিভাষা সম্পর্কিত, তবে বরং ভার্চুয়াল মেশিনগুলি কার্যকারিতা বাস্তবায়ন করে যা আপাতদৃষ্টিতে প্রকৃত হার্ডওয়্যার দ্বারা পরিচালিত হয়েছে
রায়ান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.