আমাদের কেন মাইক্রোকন্ট্রোলারগুলিতে আমাদের অ্যাপ্লিকেশন প্রোগ্রাম থেকে পৃথক একটি বুটলোডার প্রয়োজন?


28

আমাদের কেন একটি মাইক্রোকন্ট্রোলারের একই ফ্ল্যাশ প্রোগ্রাম মেমরির একটি পৃথক প্রোগ্রামের প্রয়োজন, বিশেষত STM32F103, যাকে বুটলোডার বলা হয়?

এটিকে মূল অ্যাপ্লিকেশন প্রোগ্রাম থেকে আলাদা রাখতে বিশেষ কী?

সাধারণভাবে বলতে গেলে, কোনও মাইক্রোপ্রসেসর-ভিত্তিক সিস্টেমের একটি বুটলোডার (যেমন পাওয়ারপিসি MPC8270 বলে) মাইক্রোকন্ট্রোলারের (আর্ম এটিএম 32F103 বলুন) এর মতোই কাজ করে বা তারা একে অপরের থেকে মৌলিকভাবে বিভিন্ন কাজ করে এবং এখনও উভয়কেই 'বুটলোডার' বলা হয় ?


2
একই কারণে আপনার স্বতন্ত্র চিপস এবং যন্ত্রাংশ রয়েছে এবং একটি দৈত্য মনোলিথিক কাঠামো নেই
এমোব

আপনি না। কম্পিউটার কনসোলে স্যুইচ এবং লাইট দিয়ে কেবল আপনার প্রোগ্রামটি প্রবেশ করুন।
হট লিকস

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

উত্তর:


55

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

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

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


3
আমাদের একই কারণ। এগুলি একই ফ্ল্যাশে রয়েছে তবে বুটলোডারটি ফ্ল্যাশ মুছে ফেলা-সীমানা প্রান্তিক করা এবং যথেষ্ট স্মার্ট কেবলমাত্র তার নিজের ঠিকানাগুলির চেয়ে ফ্ল্যাশ মুছতে পারে।
জোশুয়া

3
কিছু পরিস্থিতিতে, মাইক্রোপ্রসেসরের প্রোগ্রামিং শিরোনামটি পণ্যের চ্যাসি বিচ্ছিন্ন না করেই অ্যাক্সেসযোগ্য হতে পারে, সুতরাং অতিরিক্ত হার্ডওয়্যার ছাড়াই কমস বাসে এটি পুনরায় প্রোগ্রাম করতে সক্ষম হওয়া নির্ভরযোগ্যতার জন্য একটি মূল কারণ।
জন গো-সোসো

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

1
@ ওয়েল-গোলাপ: একইভাবে সিপিইউ বুটলোডারের প্রাথমিক ঠিকানা পায় - এটি হয় না। পরিবর্তে, সিপিইউ এটি বুটলোডারের প্রারম্ভিক ঠিকানা হিসাবে কী ব্যবহার করবে তা নির্দিষ্ট করে এবং বুটলোডার অ্যাপ্লিকেশন প্রোগ্রামের প্রারম্ভিক ঠিকানা হিসাবে এটি কী ব্যবহার করবে তা নির্দিষ্ট করে।
এমসাল্টারস

4
@kkrambo সাধারণত সত্য হলেও, কোনও বুটলোডার সি বা সি-প্রাপ্ত ভাষায় মোটামুটিভাবে লেখার কোনও প্রয়োজন নেই (না সর্বজনীন সত্য সত্য) main
ইয়াক্ক

26
  1. যাতে লোডিং প্রক্রিয়া ত্রুটিগুলি থেকে পুনরুদ্ধার করতে পারে। ধরা যাক আপগ্রেড করার সময় কোনও যোগাযোগের ত্রুটি বা পাওয়ার সংযোগ বিচ্ছিন্ন হয়ে গেছে। আপনি যদি আপগ্রেড করছিলেন এমন বুট লোডার যদি সেই অ্যাপ্লিকেশনটির অংশ হয় তবে ব্যবহারকারী বুট লোডারকে পুনঃবিখ্যাত করতে বিশেষ হার্ডওয়্যার ব্যবহার না করে আবার চেষ্টা করতে পারবেন না।

  2. কিছু মাইক্রোকন্ট্রোলাররা র‌্যাম থেকে কোড চালায় না। যদি বুট লোডারটি যদি অন্য সফ্টওয়্যারটির সাথে মিশে থাকে তবে আপনি আসলে আপনার সফ্টওয়্যারটি আপগ্রেড করতে সক্ষম হবেন না কারণ আপনি বর্তমানে কার্যকর হওয়া ফ্ল্যাশের পৃষ্ঠাগুলি মুছতে পারবেন না। চারপাশের কাজটি হ'ল নতুন কোডটি ফ্ল্যাশের দ্বিতীয়ার্ধে প্রথমে পোড়াতে হবে, তারপরে এটিতে ঝাঁপ দাও। নতুন কোডটি তারপরে ফ্ল্যাশের প্রথমার্ধে অনুলিপি করে। অবশ্যই খারাপ দিকটি হ'ল জ্বলন্ত ফ্ল্যাশটি সাধারণত ধীর হয় এবং এখন আপনাকে এটি দ্বিগুণ করতে হবে লোডিং প্রক্রিয়াটি দ্বিগুণ দীর্ঘ সময় নিতে পারে। এছাড়াও এই চারপাশে আপনার অ্যাপ্লিকেশন আকারটি আপনার মোট ফ্ল্যাশের অর্ধেকের বেশি হতে পারে না।

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

  4. প্রমাণীকরণ। সুরক্ষিত বুট লোডারগুলি যাচাই করার আগে বোঝানো অ্যাপ্লিকেশনটি একটি ডিজিটাল স্বাক্ষরের সাথে মেলে তা যাচাই করার চেষ্টা করুন। তবে যদি বুট লোডার এবং অন্যান্য কোডগুলি একত্রে মিশ্রিত হয়ে থাকে তবে আপনি ডিভাইসে কী চলবে তা আপনি নিয়ন্ত্রণ করতে পারবেন না কারণ একবার ব্যবহারকারী নতুন কোড লোড করলে আপনি স্টার্টআপে যা ঘটে তা নিয়ন্ত্রণ করতে পারবেন না।


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

11

আপনার প্রধান অ্যাপ্লিকেশন প্রোগ্রামটি আপডেট করার জন্য তারা আপনাকে সেখানে উপস্থিত রয়েছে।

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


9

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


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

7

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


1
একটি মাইক্রোকন্ট্রোলারে, কোড সম্ভবত র‍্যামে থাকে না, তাই এটি উচ্ছেদ করা যায় না। আপনি অবশ্যই র‍্যাম থেকে বুটলোডারের ডেটা বাতিল করতে পারেন।
বেন ভয়েগট

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

2

সংক্ষিপ্ত উত্তর, কারণ সফ্টওয়্যার দুর্দান্ত।

বুটলোডার "খাঁটি হার্ডওয়্যার" এর মতো সমস্ত কিছু আপনার কাছে থাকতে পারে। তবে বুটলোডারটি যে সফটওয়্যার হিসাবে সফটওয়্যার হিসাবে লিখিত হয়, তা হার্ডওয়ার দ্বারা ব্যাখ্যা করা এখন পর্যন্ত অনেক দূর, খুব সহজ easier

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

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

একটি মাইক্রোকন্ট্রোলারে, বুটলোডার যে কাজগুলি করে তা কিছুতে প্রোগ্রামে বিভক্ত হয়ে যায়। আপনার প্ল্যাটফর্মের জন্য সংকলক প্রতিটি এক্সিকিউটেবলের মধ্যে স্বয়ংক্রিয়ভাবে "সেটআপ" কোডটি ইনজেক্ট করতে পারে।

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

সর্বোপরি সত্য যে প্রধান প্রোগ্রামের একটি ফ্ল্যাশ বুটলোডারকে ঝুঁকি দেয় না (এবং মূল প্রোগ্রামটি পুনরায় প্রকাশ করার ক্ষমতা) এবং একটি তুচ্ছ ত্রুটিযুক্ত বুটলোডার থাকা খুব দুর্দান্ত জিনিস।


-1

একটি উত্তর যা আবৃত হয়নি তা হ'ল সি ভাষার সীমাবদ্ধতার কারণে উদ্বেগের পৃথকীকরণের প্রয়োজন।

সাধারণত বুটলোডারগুলি অ্যাসেম্বলির খুব প্রাথমিক পর্যায়ে বুট পর্যায়ের সাথে অ্যাসেম্বলি এবং সি এর মিশ্রণে লেখা হয়।

এটি নির্দিষ্ট কিছু জিনিস সেটআপ করার জন্য করা হয়:

  • সি স্ট্যাক বরাদ্দ
  • রেজিস্টার মধ্যে স্ট্যাক পয়েন্টার পড়া
  • রেজিস্টার মধ্যে প্রোগ্রাম কাউন্টার পড়া
  • রিসেট ভেক্টর ঘোষণা
  • দ্বিতীয় পর্যায়ে (initramfs) র‌্যামে লোড করা হচ্ছে।

এটি নেওয়া পদক্ষেপগুলির একটি মোটামুটি অনুমান এবং আমি এআরএম বুট প্রক্রিয়াটি বর্ণনা করছি, x86 এবং অন্যান্য আর্কিটেকচারের জন্য এটি আবার আলাদা।

যাইহোক, মূল কারণটি একইরকম: সি স্ট্যাক বরাদ্দ অবশ্যই সমাবেশ থেকে করা উচিত।


ডাউনটা কেন? এটি উভয় প্রাসঙ্গিক এবং সঠিক।
বিটশিফ্ট

-1

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

মাইক্রোকন্ট্রোলার

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

সুতরাং, উদাহরণস্বরূপ, আপনি যদি কোনও বাহ্যিক হার্ডওয়্যার ছাড়াই নিয়মিত কম্পিউটার থেকে সফ্টওয়্যারটি আপডেট করতে চান তবে আপনি ডিভাইসটি প্রোগ্রাম করার জন্য একটি বুটলোডার ব্যবহার করতে পারেন যা বিভিন্ন ধরণের ইন্টারফেস (যেমন আরডিনোতে ইউএসবি-তে আরএস 232, ইউএসবি বা আরএস 232) থেকে পড়ে reads সাধারণ ইন্টারফেসের উপর।

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

মাইক্রোপ্রসেসর

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

X86 / x64 সিস্টেমে এই বুটলোডারটি হয় হয় BIOS বা UEFI (মূলত একটি BIOS এর একটি নতুন সংস্করণ)।

কখনও কখনও আপনার এমনকি চেইনে একাধিক বুটলোডার চলতে পারে। উদাহরণস্বরূপ যদি আপনার উইন্ডোজ এবং লিনাক্সের সাথে দ্বৈত-বুট সিস্টেম থাকে তবে আপনি নিম্নলিখিতটি দিয়ে শেষ করতে পারেন:

  • BIOS / UEFI বুট আপ করে এবং GRUB ইনস্টলড সন্ধান করে। এরপরে এটি GRUB (= গ্র্যান্ড ইউনিফাইড বুটলোডার) লোড করে
  • GRUB এক ধরণের লিনাক্স এবং উইন্ডোজ বুটলোডার আবিষ্কার করে। ব্যবহারকারী উইন্ডোজ বুটলোডার নির্বাচন করে।
  • উইন্ডোজ বুটলোডার শুরু করে এবং উইন্ডোজ 7 এবং উইন্ডোজ 10 ইনস্টলড আবিষ্কার করে। ব্যবহারকারী উইন্ডোজ 10 নির্বাচন করে।
  • উইন্ডোজ 10 অবশেষে বুট।

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

TLDR

সুতরাং উভয় সিস্টেমে বুটলোডার একই ধরনের কাজ করে (ব্যবহারকারীকে কোন কোডটি বুট করতে হবে তা চয়ন করতে সহায়তা করা) তারা কীভাবে এটি সম্পাদন করে এবং তারা ঠিক কী করে তার মধ্যে উভয়েরই পার্থক্য রয়েছে।


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

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

"মাইক্রোপ্রসেসরগুলি এমন একটি রম উপস্থিত করে যা বুটলোডারের পক্ষে যথেষ্ট বড় ... x86 / x64 সিস্টেমে এই বুটলোডারটি হয় হয় বিআইওএস বা ইউইএফআই" ন্যাপ। বিআইওএস বা ইউইএফআই অফ-চিপ ফ্ল্যাশ মেমোরিতে সংরক্ষণ করা হয়। অন-চিপ রমটি আরও নিম্ন স্তরের ফাংশনগুলির জন্য যেমন মাইক্রোকোডের সূচনা করার জন্য।
বেন ভয়েগট

@ ডাকারন: আমি চিপটি বাসের বাসে অন্য কোনও কিছু ছাড়াই অপ্রয়োজনীয় উদ্দেশ্যে ব্যবহারযোগ্য হওয়ার জন্য তৈরি করা হয়েছে কিনা তার উপর ভিত্তি করে একটি মাইক্রোপ্রসেসর এবং মাইক্রোকন্ট্রোলারের মধ্যে লাইন আঁকবো would 8031 টি যোগ্যতা অর্জন করবে না এটি বাদে এটি কার্যত 8051 (যা অবশ্যই মাইক্রোকন্ট্রোলার) যা অভ্যন্তরীণ রমে কোনও কার্যকর উপকরণ হিসাবে নির্দিষ্ট করা হয়নি , তবে অন্যথায় অভ্যন্তরীণ স্টোরেজ থেকে পুরোপুরি ব্যবহারযোগ্য হওয়ার জন্য ডিজাইন করা হবে)। কোনও আরডিএ / সিডিপি 1802 এর মতো কিছু যোগ্যতা অর্জন করবে না যদিও এটি এলইডি নেমটাগ চালানোর জন্য ব্যবহার করা যেতে পারে ...
সুপারক্যাট

... কোনও বাহ্যিক র‌্যাম এবং রম ছাড়াই, কারণ র‌্যামলেস / রমলেস ডিজাইনগুলি তুচ্ছ কাজগুলিতে সীমাবদ্ধ। টিএমএস 32050 এর মতো কিছু যা যদি আমি মনে করি একটি বুটলোডার এবং কিছু হাজার শব্দ র‍্যামের 16-বিট শব্দ অভ্যন্তরীণভাবে একটি মাইক্রোকন্ট্রোলার হিসাবে যোগ্যতা অর্জন করবে; যদিও অনেক অ্যাপ্লিকেশনগুলিতে আরও বেশি র‌্যাম যুক্ত হওয়া দরকার, যদি ইউআরটি এর মাধ্যমে অন্য সিস্টেমে সংযুক্ত করা হয় তবে এটি তার মেমরি বাসে কোনও কিছুই ছাড়াই অনেকগুলি উদ্দেশ্য পূরণ করতে পারে।
supercat
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.