বুটিং হার্ড হয়
বুট করা ... ভাল ... এটি সত্যিই সবচেয়ে শক্ত অংশ। প্রতিবার যখন কোনও কম্পিউটার বুট হয় তখন এটি মূলত নিজেকে নতুনভাবে পূরণ করে। এটি এর বিভিন্ন অংশগুলির সাথে নিজেকে পরিচিত করে তোলে এবং প্রতিটিটির জন্য এটির সক্ষমতা অর্জন করে। তবে এটি নিজের বুটস্ট্র্যাপ দ্বারা নিজেকে টানতে হবে, তাই কথা বলতে, প্রতি বার থেকে স্কয়ার এক থেকে।
বুট প্রক্রিয়া ডিজাইন করার সময় কৌশলটি মেশিনকে পর্যায়ক্রমে আনতে হয়। আপনার বুটটি অবশ্যই দ্রুত এবং নির্ভরযোগ্য হতে হবে এবং প্রতিবার এটি সম্পূর্ণ অজানা পরিবেশে দুটি জিনিসই হওয়া উচিত । আমি এমনকি সত্যিকারের / সুরক্ষিত মোড কথোপকথনেও উদ্যোগ নেব না (যা এটি এমনকি আমি বলতে পারতাম না তাও বলা যায় না) , তবে বুট করার মতো অনেক কিছুই চলছে। যেহেতু কম্পিউটারটি তার বিভিন্ন উপাদানগুলিকে প্রতিটি সময় স্নাতক পদক্ষেপে এটি করে। সম্ভবত এর মধ্যে সবচেয়ে গুরুত্বপূর্ণ হ'ল অন বোর্ডের কোডটি চালানো থেকে অন-ডিস্ক কোড সম্পাদন করা বা অন্য কথায় - কার্নেল এক্সিকিউট হওয়া। এটি তখনই হয় যখন ফার্মওয়্যার (সম্ভবত) অপারেটিং সিস্টেমের কাছে আত্মসমর্পণ করে।
বহু বছর আগে এত ঘটনা ঘটেনি। এটি BIOS হিসাবে ব্যবহৃত হত সত্যই বেসিক ইন / আউট - নিয়মিত প্রোগ্রামগুলি পর্দা অঙ্কন এবং ডিস্ক অ্যাক্সেসের মতো জিনিসগুলির জন্য ফার্মওয়্যারের কাছে কল করত। এগুলিকে বাধা বলা হত - পুরানো টুপিগুলি তাদের নতুন ডট-ম্যাট্রিক্স বা ইউএসআরের জন্য প্রায়শই আইআরকিউ দেওয়ার ক্ষেত্রে পাওয়া আনন্দিত রোমাঞ্চের জন্য তাদের সেরা স্মরণ করতে পারে।
INT13H
বিআইওএস ডিস্ক অ্যাক্সেসের জন্য পরিষেবা হিসাবে অফার করে এমন বাধা ( বা INT
সমাবেশ লিঙ্গে ) 13 এইচ সিরিজের ফাংশন functions ফার্মওয়্যার থেকে ডিস্কে ঝাঁপ দেওয়ার জন্য বুট প্রক্রিয়াতে বিআইওএস সিস্টেমগুলির জন্য এটি আজও ব্যবহৃত হয়।
একটি বায়োস সিস্টেম এটি আবিষ্কার করে এমন প্রতিটি ডিস্কের প্রথম কয়েকটি বাইট পরীক্ষা করে এবং এটি একটি মাস্টার বুট রেকর্ড ( বাMBR
) হিসাবে স্বীকৃত একটি প্যাটার্ন সন্ধান করবে । এটি কয়েক দশক পুরানো ডি-ফ্যাক্টো স্ট্যান্ডার্ড এবং এতে কিছুটা কাঁচা, এক্সিকিউটেবল বাইনারি রয়েছে যা ডিস্কের মাথায় লেখা থাকে written এমবিআর একটি বায়োএস ডিস্ককে বুটেবল হিসাবে চিহ্নিত করে। এটি যখন খুঁজে পাওয়া যায় তখন এটি চেক করা বন্ধ হয়ে যায়, এবং ব্যবহারিকভাবে কোনও চালাক কৌশল না করে আপনি যা পেয়েছেন তা হ'ল। এটি যখন এটির সন্ধান করে এটি এটিকে মেমোরিতে মানচিত্র করে এবং এটি কার্যকর করে (রিয়েল মোডে, তবে আমি এখনও সেখানে যাচ্ছি না) ।
মৃত্যুদন্ড প্রাপ্ত এমবিআর আপনার সিস্টেমের কার্নেলটি প্রায় স্পষ্টভাবে নয় - 512 বাইট (দেওয়া বা নেওয়া) that বিভাগে বেশ বেহুদা হবে। এটা সম্ভবত একটি হল বুট-লোডার বিশেষভাবে ডিজাইন করা পরাস্ত একটি প্রোগ্রাম - এক বায়োস এর অনেক অ্যাড্রেসিং সীমাবদ্ধতা - বিশেষভাবে এটি এ সব ফাইল সিস্টেম যে কোন ধরণের বুঝে না।
বুট-লোডার প্রকৃত কার্নেলের মধ্যে পড়ে এবং executes যখন এটা মেমরি (আমরা সব প্রার্থনা এটা প্রত্যেক সময় হবে) , তাই একটি মাধ্যমে বায়োস জিজ্ঞাসা করে সম্ভবত কি করতে হবে INT13H
বিঘ্ন কল। এবং যদি এটি না হয় - প্রচুর ফ্যানসিয়ার বুটলোডারগুলি প্রচলিত অর্থে ফাইল সিস্টেমগুলি মাউন্ট করবে এবং কোডটি অন্যভাবে চালিত করবে - তবে সম্ভবত খুব কমই বুটলোডার দু'একটি না করে অভিনব হয়ে উঠেছে INT13H
। প্রায়শই বুটলোডারগুলিকে নিজেদের - বা বিভিন্ন ধাপে নিজেদের চেইনলোড করতে হবে - কারণ 512 বাইটগুলি প্রথমে তাদের বরাদ্দ করা এমনকি তাদের প্রয়োজনের সাথেও খাপ খায় না।
চিকেন এবং ইজিজি
এগুলি সমস্তই ডিস্কটি নিয়ে আলোচনার একটি চক্রাকার উপায়, তবে আমি জানি, তবে এই মুহূর্তে এটি স্পষ্টভাবে পরিষ্কার হওয়া উচিত যে প্রাথমিক সমস্যাটি - যাকে বলা যেতে পারে একটি মুরগী এবং ডিমের ধরণ - ডিস্কটিতে প্রোগ্রামের নির্দেশাবলী অন্তর্ভুক্ত রয়েছে সম্পর্কে কিভাবে এক্সেস ডিস্কে । এই সমস্যার মূল চাবিকাঠি ফার্মওয়্যার - এবং এমনকি EFI সিস্টেমেও খুব আলাদাভাবে চলতে থাকে - এবং, দুর্বল বা না, ফার্মওয়্যারটি বুট চেইনের সবচেয়ে গুরুত্বপূর্ণ লিঙ্ক।
আপনি দেখুন, একবার কার্নেলটি কার্যকর হয়ে যায় এবং হার্ডওয়্যারটি অ্যাক্সেস এবং নিয়ন্ত্রণের জন্য এর সমস্ত অজস্র রুটিনগুলি শুরু করে, এই সমস্ত সমস্যাগুলি क्रमबद्धভাবে অদৃশ্য হয়ে যায় (বা, কিছুটা হলেও পরিবর্তন করুন) , কারণ আধুনিক ওএসগুলি কোনও সিস্টেমের সম্পূর্ণ নিয়ন্ত্রণ নেয়, তবে যতক্ষণ না তারা ফার্মওয়্যার অনুমতি দেবে ততক্ষণ সিস্টেমের সীমাবদ্ধতা প্রসারিত হয়। এটি অনেক কিছুই বলছে - বিআইওএস INT13H
8086 সাল থেকে খুব বেশি পরিবর্তন হয়নি The কলটি একটি 8086 আসল। হ্যাঁ, সেখানে (অগণিত) এক্সটেনশানগুলি হয়েছে এবং অবশ্যই হ্যাকস রয়েছে, তবে নতুনত্বগুলি ...?
ভালো এবং ভালো
BIOS- র বেশিরভাগ পরিবর্তনগুলি নিছক ব্যান্ডেজ হয়েছে। এটি একটি হার্ড-ডিস্ক হিসাবে শারীরিকভাবে ম্যাপ করা হত - এর জ্যামিতির বিভিন্ন এবং সুনির্দিষ্ট দিকগুলি উল্লেখ করা হত যখন ডেটা এতে সংরক্ষণ করা হয় বা এখান থেকে পুনরুদ্ধার করা হয়। শেষ পর্যন্ত প্রচলিত হার্ড ডিস্কটি এমন আকারে বেড়েছে যা এটি নিষিদ্ধ করেছিল। এমনকি কেবল বিমোজ হ্যান্ডেল করার জন্য বিমূর্ত ম্যাপটি খুব বেশি তথ্য ছিল । যেহেতু এটি কেবল রিয়েল মোডে কাজ করতে পারে, তাই বায়োস মেমরি রেজিস্টার প্রতি 1 এমবি সীমাবদ্ধ। সিলিন্ডারের মানচিত্রটি এর চেয়ে বড় আকারে স্ফীত করুন, বা এর কোনও বৈশিষ্ট্যকে আরও বিটগুলিতে সম্বোধনযোগ্য আকারে বড় করুন, এবং BIOS আক্ষরিক অর্থেই হারিয়ে গেছে - সীমা ছাড়িয়ে।
এই বাধা পূরণ করা হয়েছে এবং ভাঙ্গা অনেক বার। প্রতিবার মানচিত্র বিমূর্ত হয়ে কিছু নতুন, চতুর এবং কম সঠিক উপায়ে এনকোড করেছে। এবং তাই আজকাল BIOS এর পক্ষে ড্রাইভকে সঠিকভাবে ম্যাপ করা আক্ষরিক অর্থেই অসম্ভব। লজিকাল ব্লক অ্যাড্রেসিং এখন ডি-ফ্যাক্টো স্ট্যান্ডার্ড, যদিও কিছু সিলিন্ডার / প্রধান / সেক্টর (বা সিএইচএস) অনুবাদ এখনও প্রয়োজনীয়। নির্ভুলতা / দায়বদ্ধতায় মেইনবোর্ড ফার্মওয়্যারটি কী হারিয়েছে, এই জাতীয় এক্সটেনশানগুলি শূন্যস্থান পূরণের জন্য ডিস্ক ফার্মওয়্যারের দায়িত্বগুলিকে বিমূর্ত করেছে এবং যুক্ত করেছে।
এটি এই বিড়াল এবং মাউস গেমটি আপনার প্রশ্নে উল্লেখ করা হয়েছে। বিআইওএস যখন তার নিখুঁত আকারের কারণে কোনও নির্দিষ্ট পয়েন্টের বাইরে কোনও ডিস্ক বুঝতে ব্যর্থ হয়, তখন আপনি যে কোনও ডেটা বুট-এ যেমন আপনার জন্য পুনরুদ্ধার করতে চান - যেমন একটি বুটলোডার বা কার্নেল - সম্ভবত সেই বিন্দুটি অতিক্রম না করাই ভাল। এখান /boot
থেকেই এসেছে।
প্রকৃতপক্ষে আরও ভাল হতে পারে
আজকাল এই জাতীয় জিনিসগুলি BIOS এর মৃত্যুতে আপত্তিজনকভাবে তৈরি। এটি আগত 30 বছর ছিল, তবে এটি ইউইএফআই (বা ইএফআই 2.0) মানক দ্বারা বিগত কয়েক বছরে মূলত প্রতিস্থাপন করা হয়েছে । ইউইএফআই এক মিনিট থেকে একটি মাউন্ট সরবরাহ করে , এটি প্রোটেক্টেড মোডে সূচনা করে, এটি নিজস্ব বুটলোডার অন্তর্ভুক্ত করে, এটি রিবুট-ধ্রুবক ফ্ল্যাশ-মেমরি ভেরিয়েবল স্টোরেজ সরবরাহ করে, এটি কিছুটা আম্পটেন জেটাবাইট বা ডিস্ক প্রতি যা কিছু হ্যান্ডেল করার জন্য অনুমিত হয় ... এবং আরও অনেক কিছু অন্য। এটি নিখুঁত থেকে অনেক দূরে তবে এটি পূর্বসূরীর চেয়ে এটি একটি বিশাল উন্নতি।
এমনকি ডিস্ক-এনক্রিপশন বা স্তরযুক্ত ফাইল সিস্টেমগুলির সাথে জড়িত বিশেষায়িত বুটলোডারদের পক্ষে যুক্তিগুলি সমতল হয়ে যায় যখন আপনি বিবেচনা করেন যে এই সমস্ত কিছু অবশ্যই ওএস কার্নেল দ্বারা পরিচালিত করা উচিত, এবং আপনি যদি বুট এ একটি মাউন্ট সরবরাহ করেন তবে আপনি সর্বদা একটি স্পষ্ট- এটি কার্যকর করার জন্য শট (বিশেষত বিবেচনা করে যে লিনাক্স কার্নেল, এর ডিফল্ট কনফিগারেশনে এটি একটি নিজস্ব EFI- এক্সিকিউটেবল) ।
এবং সুতরাং একটি পৃথক /boot
পার্টিশন সম্ভবত অতিরিক্ত মাত্রায় আপনার উদ্বিগ্ন হওয়া উচিত নয় এবং আপনি যদি কোনও ইএফআই সিস্টেমে থাকেন তবে সম্ভবত ইতিমধ্যে EFI- সিস্টেম পার্টিশনে একটি এনালগ পেয়ে গেছেন, কারণ এটি EFI মোড বুট করার জন্য প্রয়োজনীয়।