সফ্টওয়্যার দেশীয়ভাবে চালানোর অর্থ কী?


27

আমি ভাবছিলাম যে সফ্টওয়্যারটির দেশীয়ভাবে চালনার অর্থ কী। এই জাতীয় সফ্টওয়্যারটি আসলে কী এবং এটি কীভাবে সফ্টওয়্যার থেকে পৃথক হয় যা দেশীয়ভাবে চালিত হয় না? সফ্টওয়্যার প্রদত্ত পিসটি যদি আমার কম্পিউটারে স্থানীয়ভাবে চলবে তবে আমি কীভাবে বলতে পারি? আমার কম্পিউটারে এমন কি এমন সফ্টওয়্যার থাকার সম্ভাবনা রয়েছে যা দেশীয়ভাবে চলে?


2
"নেটিভ" বোঝায় এটি এটিকে যে কোনও প্ল্যাটফর্ম /
ওএসে

আমি না ... মনে হচ্ছে মডারেটরদের প্রশ্ন পড়তে খুব সমস্যা হয়েছে ...

5
@faB আপনি কি বুঝতে পেরেছেন যে কোনও মডারেটর প্রশ্নটি বন্ধ করার সাথে জড়িত ছিল না?
slhck

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

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

উত্তর:


43

কোনও সফ্টওয়্যার যদি প্ল্যাটফর্মটিতে চালানোর জন্য ডিজাইন করা হয় তবে একটি প্ল্যাটফর্মের মূল হয়।

একটি প্ল্যাটফর্মটি সাধারণত অপারেটিং সিস্টেমকে বোঝায় তবে এটি নিন্টেন্ডো গেম বয়ের মতো ডিভাইসেও প্রয়োগ করা যেতে পারে।

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

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

একটি সামঞ্জস্য স্তর একটি এমুলেটর মত ধরনের। যখন 64-বিট কম্পিউটার এবং অপারেটিং সিস্টেমগুলি মূলধারায় পরিণত হয়েছিল, তাদের বিদ্যমান 32-বিট প্রযুক্তির সাথে সামঞ্জস্য করা দরকার। যেহেতু -৪-বিট এবং ৩২-বিট আর্কিটেকচার খুব আলাদা, তাই প্রায়শই -৪-বিট মেশিনে 32-বিট সফ্টওয়্যার চালনার জন্য একটি সামঞ্জস্যতা স্তর প্রয়োজন হয়। মাইক্রোসফ্ট উইন্ডোজের -৪-বিট সংস্করণের জন্য মাইক্রোসফ্টকে একটি সামঞ্জস্যতা স্তর লিখতে হবে যাতে 32-বিট প্রোগ্রামগুলি এখনও নতুন 64-বিট সিস্টেমে কাজ করতে পারে। এ কারণেই কিছু প্রোগ্রাম প্রায়শই বলা ফোল্ডারে ইনস্টল করা হয় Program Files (x86), যার x86অর্থ "32-বিট"।

সামঞ্জস্যতা স্তরগুলি এমুলেটরগুলির তুলনায় স্থানীয় সিস্টেমের সাথে আরও ঘনিষ্ঠ হতে থাকে। VirtualBox অনুকরণ অপারেটিং সিস্টেমগুলি জন্য হার্ডওয়্যার * , এবং সিস্টেম এটি অনুকরণ হোস্ট সিস্টেমের সাথে খুব সরাসরি মিথষ্ক্রিয়া নেই। ওউডাব্লু 64৪ একটি সামঞ্জস্যতা স্তর যা এটি 32-বিট প্রোগ্রামগুলিকে আরও সংহত পদ্ধতিতে 64-বিট উইন্ডোতে চালাতে দেয়। WW64 প্রোগ্রামগুলি বিচ্ছিন্ন পরিবেশে অনুকরণের পরিবর্তে সামঞ্জস্যপূর্ণ করতে সহায়তা করে ।

একটি অনুবাদ গ্রন্থাগার সামঞ্জস্য স্তরগুলির একটি উপাদান। যখনই বাইনারি কোডটি অ-নেটিভালি চলছে, একটি অনুবাদ গ্রন্থাগার বিদেশী, অ-নেটিভ কলগুলিকে দেশী কলগুলিতে পুনঃনির্দেশ করতে সহায়তা করে যা সিস্টেম বুঝতে পারে। আসল টিআই -৩ 83 এর জন্য রচিত বিধানসভা প্রোগ্রামগুলি নতুন টিআই -৩ / / ৮৮ প্লাস ক্যালকুলেটরগুলির সাথে সামঞ্জস্যপূর্ণ নয় কারণ কিছু কল যে টিআই -৩'s এর আর্কিটেকচারে বোধগম্য হয়েছিল সেগুলি টিআই -৩ / / ৮৮ + তে আর বৈধ হবে না। একটি অনুবাদ গ্রন্থাগার (সম্ভবত মিরাজোসের মতো শেলগুলিতে অন্তর্ভুক্ত ) টিআই -৩ 83 এর জন্য কলগুলি টিআই -৩ / / ৮৮ + ক্যালকুলেটরগুলিতে নতুন, আপডেট হওয়া জায়গায় যেতে পারে তা নিশ্চিত করে।

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


বিবিধ

সংশোধণী

* মাইকেল কেজারলিং , আপনাকে এই উত্তরটির সাথে কিছু সমস্যা ধরার জন্য ধন্যবাদ ।

অন্যান্য

"নেটিভ" এবং "অ-নেটিভ" মধ্যে পার্থক্য কালো এবং সাদা নয়(ক্রেডিট আফরাজায় )


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

1
নেটিভ প্রায়শই বোঝায় যে এটি অন্তর্নিহিত প্ল্যাটফর্মের জন্য প্রাথমিক গ্রন্থাগার সেট এবং এপিআই ব্যবহার করছে, যা কিছুটা বিশৃঙ্খলা তৈরি করতে পারে। উইন 32 এপিআই অ্যাপ্লিকেশনগুলির মতো "নেট" হিসাবে নেট অ্যাপ্লিকেশনগুলিকে "নেটিভ" হিসাবে বিবেচনা করে না এমন বেশ কয়েক জন লোক রয়েছে এবং একইভাবে কিছু লোক জিনোম ডেস্কটপে "নেটিভ" চলমান কোনও কেডিপি প্রোগ্রামকে বিবেচনা করে না।
আফ্রাজিয়ার

@ আফ্রাজিয়ার: এটি কারণ। নেট অ্যাপ্লিকেশনগুলি "কমন ল্যাঙ্গুয়েজ রানটাইম" চালানোর জন্য ডিজাইন করা হয়েছে এবং উইন্ডোজটিতে চালনার জন্য একটি সামঞ্জস্যতা স্তর প্রয়োজন। অথবা লিনাক্সে চলার জন্য একটি ভিন্ন সামঞ্জস্যতা স্তর।
বেন ভয়েগট

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

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

4

নেটিভ কোড সাধারণত প্ল্যাটফর্ম-ইন্ডিপেডেন্ট কোডের বিপরীতে ব্যবহৃত হয়। আপনি যদি নেটিভ সফ্টওয়্যারটি চালান, আপনি একটি সংকলিত বাইনারি চালাচ্ছেন এবং উদাহরণস্বরূপ, জাভাস্ক্রিপ্ট বা জাভা বাইটকোডের মতো একটি প্ল্যাটফর্ম-ইন্ডিপডেন্ট স্ক্রিপ্ট। সংকলিত সি বা সংকলিত সি ++ হ'ল দেশীয় কোডের ভাল উদাহরণ।


3

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

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

আপনি যদি এমএস উইন্ডোজ এপিআই এমুলেটর WINE চালান তবে সেটি নেটিভ কোড নয়। যদিও আপনি সেই চিপসেটের (x86) জন্য ডিজাইন করা কোডটি কার্যকর করছেন, আপনি ওএসের কোডটি চালাচ্ছেন না যা এটি বুট করেছে, তবে প্রতিস্থাপন গ্রন্থাগারগুলি। ম্যাম বিভিন্ন সিপিইউ এবং অপারেটিং সিস্টেমের জন্য বাইনারিগুলি চালায়।

স্ক্রিপ্টগুলি নেটিভ কোড নয়। এগুলি একটি উচ্চ স্তরের ভাষায় লেখা হয় যা আপনার সিপিইউতে চালিত কোডটিতে রানটাইমে রূপান্তর করতে হবে।

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


। নেট, ভিবিএ, এক্সএলএল , আইএ -32 (এএমডি 64 সিপিইউগুলিতে, কমপক্ষে), ...
সিভিএন

3

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

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

জাভা অ্যাপ্লিকেশনগুলি প্রায়শই "সুইং" ব্যবহার করে এবং সম্পূর্ণ আলাদা দেখায়, কারণ তারা সিস্টেমগুলি ব্যবহার না করে তাদের নিজেরাই তাদের নিয়ন্ত্রণ করে। সুবিধাটি হ'ল প্রোগ্রামটি প্রতিটি ওএসে একই দেখায়।

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

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

তেমনি, আমি এমন একটি প্রোগ্রাম বিবেচনা করব যা জিটিকে ব্যবহার করে, ইউনিক্স ফাইল সিস্টেম কাঠামো সম্পর্কে জানে এবং সম্ভবত উবুন্টু বা জিনোমের জন্য একটি .deb প্যাকেজ নেটিভ আসে। এমনকি জাভাস্ক্রিপ্টে প্রথম পক্ষের জিনোম অ্যাপ্লিকেশন লেখা আছে যেগুলি নেটিভ কল করতে পারে! একইটি উইন্ডোজ 8 "মেট্রো" অ্যাপ্লিকেশনগুলিতে প্রযোজ্য যা বিভিন্ন ভাষায় লেখা যেতে পারে, কিছু সংকলিত হয়, কিছু না।


2

আরও বিমূর্ত শর্তে বলতে গেলে এটি অন্য কাউকে আপনার বিশ্বাসকে ভিন্ন ভাষায় কোনও প্রোগ্রাম চালানোর জন্য দেওয়া like

  • নেটিভ অর্থ ওএস বাইনারি হিসাবে তিনি চেনেন দ্রুততম, সাদামাটা উপভাষা ব্যবহার করবেন means

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

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

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

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