পুরো কার্নেল বুট-এ মেমরিতে লোড করা আছে?


14

আমি এই জনপ্রিয় আইবিএম ডকটির মাধ্যমে পড়লাম (আমি এটি ওয়েবে প্রায়শই উল্লেখ করা দেখি) প্রাথমিক র‌্যাম ডিস্কের কার্যকারিতা ব্যাখ্যা করে।

আমি কীভাবে এটি কাজ করে তা ধারণার মধ্যে একটি প্রাচীরকে আঘাত করেছি।

ডকটিতে এটি বলা হয়েছে

বুট লোডার, যেমন GRUB, লোড করা হবে এমন কার্নেল সনাক্ত করে এবং এই কার্নেল চিত্রটি এবং সম্পর্কিত কোনও আরআরডি মেমোরিতে অনুলিপি করে

আমি ইতিমধ্যে বিভ্রান্ত: এটি কি পুরো কার্নেলটিকে মেমরির অনুলিপি দেয় বা এর কিছু অংশে? যদি পুরো কার্নেলটি মেমরিতে থাকে তবে কেন আমাদের এমনকি প্রাথমিক র‌্যাম ডিস্কের প্রয়োজন হয়?

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

এটি আমাকে আরও বিভ্রান্ত করে এমন একটি জিনিস এনেছে - কার্নেলের মধ্যে লোড হওয়া মডিউলগুলি কোথায় আছে? সমস্ত কার্নেল মডিউলগুলি আরআরআরডিডের ভিতরে সঞ্চিত আছে?


হ্যাঁ. পুরো কর্নেল এবং এটির প্রথম মূলগুলি। তবে লিনাক্স কার্নেলগুলি বহু বছর ধরে আরআরআরডিড ব্যবহার করে নি।
মাইক্রজারভ

ঠিক আমি যে পড়া ছিল। এটির মূলত ইনি্রামফ দ্বারা প্রতিস্থাপন করা হয়েছে? এবং এটি এখনও initramfs সঠিক সঙ্গে একই প্রক্রিয়া?
ব্যবহারকারী 1028270

1
এটি 2.6 সিরিজ থেকে সমস্ত কার্নেলের জন্য সম্পূর্ণরূপে প্রতিস্থাপন করা হয়েছে। কিন্তু প্রক্রিয়া কিছুটা অনুরূপ তার সবসময় সেখানে এবং তার সবসময় রুট খুব - ছাড়া initramfs -র আনমাউন্ট করা হয় না। আসলে আপনাকে এটির উপরে আপনার রুট ডেভ মাউন্ট করতে হবে। একটি পৃথক ব্লক দেব এবং অনুরূপ অনুকরণ করার প্রয়োজন নেই এরও সুবিধাগুলি রয়েছে।
মাইক্রজারভ

দুর্দান্ত আমি আপনার নিবন্ধটি নিবন্ধটি পড়তে যাচ্ছি। কার্নেল মডিউলগুলি কি initramfs রুটফেসে স্টোর রয়েছে?
ব্যবহারকারী 1028270

1
@ অ্যাডওয়ার্ডরওয়াল্ডস - udevসাধারণত সবগুলিই হ্যান্ডেল করে এবং হ্যাঁ, স্বয়ংক্রিয়ভাবে।
মাইকজার্ভ

উত্তর:


17

পুরো কার্নেলটি বুট করার সময় মেমরির মধ্যে লোড করা হয়, সাধারণত initramfsআজকাল সহ । ( initramfsডেস্কটপ এবং সার্ভারগুলিতে অস্বাভাবিক তবে বুট করার জন্য একটি সিস্টেম সেটআপ করা সম্ভব ))

initramfsএর ভূমিকা "বাস্তব" ফাইল সিস্টেম মাউন্ট এবং সিস্টেম বুট অবিরত করার জন্য কার্যকারিতা প্রদান করা হয়। এর মধ্যে কার্নেল মডিউল এবং বিভিন্ন বাইনারি রয়েছে: আপনার কমপক্ষে udev, সম্ভবত কিছু নেটওয়ার্কিং প্রয়োজন, এবং kmodমডিউলগুলি লোড করে।

মডিউলগুলি কেবল বুট করার পরে কার্নেলের মধ্যে লোড করা যায়, সুতরাং কার্নেলের দ্বারা কোনও বিশেষ প্রস্তুতি নেই initramfs। তারা যে কোন জায়গায় সংরক্ষণ করা যেতে পারে: initramfs, /lib/modulesবাস্তব ফাইলসিস্টেম, একটি উন্নয়ন গাছে আপনি একটি মডিউল উন্নয়নশীল করছি ... initramfsশুধুমাত্র মডিউল যা রুট ফাইল সিস্টেম (যা বাকি রয়েছে) মাউন্ট করতে প্রয়োজনীয় ধারণ করতে হবে।


ঠিক আছে যে আমার বোধগম্য। আমি মনে করি যে আমি কার্নেল চিত্র এবং এটি ব্যবহার করে এমন ফাইল সিস্টেমকে বিভ্রান্ত করছি যা স্পষ্টতই পৃথক।
ব্যবহারকারী 1028270

5

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


3

আধুনিক লিনাক্স সেটআপগুলিতে কার্নেলটি ভারী মডিউল ভিত্তিক, অর্থাত্, কার্নেল যথাযথ (র‌্যামে বুটে লোড করা) কেবলমাত্র ন্যূনতম কার্যকারিতা অন্তর্ভুক্ত থাকে, বাকি সমস্তগুলি মডিউল (রানটাইমের সময় লোডযোগ্য) হিসাবে সংকলিত হয়। উদাহরণস্বরূপ, বুটের জন্য প্রয়োজনীয় ডিভাইসগুলি বা ফাইল সিস্টেমগুলি মডিউলগুলি থাকা অবস্থায়ও এই কাজটি করার জন্য, initramfsকার্নেল দিয়ে একটি লোড করা হয় (নামটি বোঝা যায়, এটি একটি সাধারণ ফাইল সিস্টেমের একটি র‌্যাম অঞ্চল যা বুটে মাউন্ট করা আছে)। এই অস্থায়ী ফাইল সিস্টেমটি মাউন্ট করা /থাকে এবং এতে স্টার্টআপ প্রোগ্রাম এবং প্রয়োজনীয় মডিউল থাকে। একবার স্টার্টআপ চালু হয়ে initramfsগেলে, লিনাক্স একটি কার্যকর করে pivot_root(8), বাস্তবকে শোকে /এবং initramfsবিষয়বস্তু টস করে ।

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


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