কেন লিনাক্সকে মনোলিথিক কার্নেল বলা হয়?


208

আমি পড়েছি যে লিনাক্স একটি একশব্দ কার্নেল। একবর্ণের কার্নেলটির অর্থ কি সম্পূর্ণ কার্নেল কোডকে একটি এক্সিকিউটেবলের মধ্যে সংকলন করা এবং সংযোগ স্থাপন করা উচিত?

যদি লিনাক্স মডিউলগুলিকে সমর্থন করতে সক্ষম হয় তবে সমস্ত সাবসিস্টেমগুলিকে মডিউলগুলিতে বিভক্ত করে কেন প্রয়োজন হয় না কেন? সেক্ষেত্রে, কার্নেলটিকে প্রাথমিকভাবে সমস্ত মডিউল লোড করতে হবে না এবং মডিউলটিতে ফাংশনগুলির একটি সূচক বজায় রাখতে হবে এবং প্রয়োজনে এগুলি লোড করতে পারে।

উত্তর:


290

মোনোলিথিক কার্নেল এমন একটি কার্নেল যেখানে সমস্ত পরিষেবা (ফাইল সিস্টেম, ভিএফএস, ডিভাইস ড্রাইভার ইত্যাদি) পাশাপাশি মূল কার্যকারিতা (সময় নির্ধারণ, মেমরি বরাদ্দকরণ, ইত্যাদি) একই স্থান ভাগ করে নেওয়া একটি আঁটযুক্ত গোষ্ঠী group এটি সরাসরি একটি মাইক্রোকার্নেলের বিরোধিতা করে ।

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

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

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

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

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

আমি উত্পাদনে লিনাক্স (একচেটিয়া) ব্যবহার করি। তবে, আমার বেশিরভাগ শিখন, হ্যাকিং বা কার্নেল বিকাশের সাথে টিঙ্কারিং একটি মাইক্রোকার্নে যায়, বিশেষত হেলেনোস

সম্পাদন করা

আপনি যদি আমার খুব দীর্ঘ-বায়ুর উত্তরটি পেয়ে থাকেন তবে সম্ভবত ' কর্নেলের নকশায় গ্রেট টরভাল্ডস-ট্যানেনবাউম বিতর্ক ' পড়ে কিছুটা মজা পাবেন । এটি 2013 এ পড়তে আরও মজাদার, এটি পরিবহনের 20 বছরেরও বেশি পরে। মজাদার অংশটি ছিল শেষ বার্তাগুলির একটিতে লিনাসের স্বাক্ষর:

Linus "my first, and hopefully last flamefest" Torvalds

স্পষ্টতই, তা তেনেনবাউমের ভবিষ্যদ্বাণী ছাড়া আর সত্য হয়নি যে x86 শীঘ্রই অচল হয়ে যাবে।

বিশেষ দ্রষ্টব্য:

যখন আমি "মিনিক্স" বলি, আমি মিনিক্স ৩ বোঝায় না Additionally অতিরিক্তভাবে, আমি যখন এইচআরডি উল্লেখ করি তখন আমি ম্যাক মাইক্রোকার্নেলকে উল্লেখ করি (বেশিরভাগ)। অন্যের সাম্প্রতিক কাজটিকে অস্বীকার করা আমার উদ্দেশ্য নয়।


5
মজার বিষয় লিনাস টরভাল্ডস লিনাক্স তৈরি করার সময় অ্যান্ডিউ টেনেনবাউমের এমআইএনএক্স দ্বারা প্রচুর প্রভাবিত হয়েছিল। যাইহোক, লিনাক্স একটি মোনোলিথিক কার্নেল ব্যবহার করার সময় একটি মাইক্রো কার্নেল ডিজাইনের উপর ভিত্তি করে এমআইএনআইএক্স।
মার্টিন লিভারেজ

2
@ মার্টিন লিভারেজ: প্রভাবিতের চেয়ে বেশি হতাশ :) আমি তার উত্তরটি সম্পাদনের জন্য আমার উত্তরটি সম্পাদনা করেছি।
টিম পোস্ট

25
@ ডিজিটালরোস: এটির উত্তর দেওয়ার পরে আপনার আমার ইনবক্সটি দেখতে হবে, মিনিক্স এবং ম্যাক উত্সাহীদের তুলনায় লিনাস বেশ ভাল।
টিম পোস্ট


3
@ পি_এল আমার কাছে মনে হয় এটি সেই সময়ের খুব কাছাকাছি যেখানে মাইক্রো, একপল এবং হাইব্রিডের পার্থক্য সম্পর্কে কথা বলা দরকার। এটি বেশ ভাল প্রশ্ন হতে পারে :)
টিম পোস্ট

15

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

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

উভয় ক্ষেত্রেই, ওএস অত্যন্ত মডুলার হতে পারে।


9
উইন্ডোজ সর্বাধিক স্পষ্টভাবে এক একক কার্নেল।
অ্যাডাম রোজেনফিল্ড

7
@ অ্যাডাম: আমি একমত নই পুরানো স্টাইলের 16-বিট উইন্ডোজটি ছিল একরঙা কার্নেল, যেমন উইন্ডোজ 95 এবং এর মতো ছিল। তবে উইন্ডোটির এনটি-ভিত্তিক সংস্করণগুলি, যা সমস্ত সার্ভার সংস্করণ প্লাস ভিস্তা এবং including সহ, পরিষ্কারভাবে মাইক্রোকার্নেল বা সম্ভবত হাইব্রিড, আপনি "মাইক্রোকারেল" এর কোন সংজ্ঞা ব্যবহার করেন তার উপর নির্ভর করে।
সিজারগন

8
শুধু কারণ প্রিন্টার ড্রাইভারের ring0 মধ্যে চালাতে না এটি একটি microkernel :) দেখা যায় না
CAF

7
@caf: আমি আপনাকে কটাক্ষপাত করা সুপারিশ en.wikipedia.org/wiki/Windows_NT_kernel এবং en.wikipedia.org/wiki/Comparison_of_operating_system_kernels । আপনি দেখতে পাবেন যে উইন্ডোজ এনটি এবং তাদের উত্তরসূরিরা, ভিস্তা, 7 এবং সার্ভারগুলি সহ "হাইব্রিড কার্নেল" হিসাবে বর্ণনা করা হয়েছে। ওএসের দুটি বড় সাবসিস্টেম কেবল প্রিন্টার ড্রাইভার নয়, পুরোপুরি ব্যবহারকারী মোডে চলে। :-)
সিজারগন

7
আমার মন্তব্যটি কিছুটা জিহ্বা-ইন-গাল ছিল - "সংকর" পদবিটি অকেজো হিসাবে এতটা তথ্য-মুক্ত বলে মনে হয়।
ক্যাফে

10

; tl-dr - না, লিনাক্স সর্বদা একতরফা থাকে।

লিনাক্স মডিউলগুলি কোনও অর্থে মডিউলার অর্থ হতে পারে । অন্যরা যেমন লক্ষ করেছেন যে একঘেয়েটি সাধারণত একটি মাইক্রোকার্নল বনাম একতরফা কার্নেলের প্রতিনিধিত্ব করে । একটি traditional তিহ্যবাহী মাইক্রোকার্নেলের কেবল এই বৈশিষ্ট্যগুলি রয়েছে,

  1. পূর্বপরিকল্পনা
  2. স্মৃতি ব্যবস্থাপনা
  3. আন্ত: প্রক্রিয়া যোগাযোগ

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


তেনেনবাউমের ভবিষ্যদ্বাণী

  1. মাইক্রোকারেলগুলি ভবিষ্যত
  2. x86 মারা যাবে এবং আরআইএসসি আর্কিটেকচার বাজারে আধিপত্য করবে
  3. (তার পর থেকে ৫ বছর) প্রত্যেকে একটি নিখরচায় জিএনইউ ওএস চালাবেন

পিসি এবং সার্ভার প্রোগ্রামাররা হাসতে পারে তবে বেশিরভাগ সেলফোনের অস্তিত্বের জন্য দুটি এবং তিনটি অবশ্যই সত্য। ব্ল্যাকবেরি কিউএনএক্স সাফল্য পেলে তেনেনবাউম সমস্ত অ্যাকাউন্টে সঠিক ছিল।

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

দৃশ্যত তিনটি লিনাক্সের সাফল্যের পূর্বাভাস দিয়েছে। ;-)


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

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


1
হ্যাঁ, আমি জানি তেনেনবাউম মানে হারড। তবে জিএনইউ লিনাক্সে স্যুইচ করেছে যাতে শব্দটি মজাদার।
নির্বিঘ্ন শব্দ 21

মোবাইল ডিভাইসগুলির জন্য কেন x86 ব্যবহারের অভাব রয়েছে? অন্যান্য স্থাপত্যগুলি কী সুবিধাজনক করে তুলেছে?
আবদুল


হ্যাঁ, সেগুলি গুরুত্বপূর্ণ। একটি এক্স 86 এসওসি (সিস্টেম-অন-চিপ) তৈরি করা কঠিন। কোনও এসওসি বিক্রেতার (ব্রডকম, ফ্রিজস্কেল ইত্যাদি) কিনতে পারে এমন x86 করার জন্য কোনও স্ট্যান্ডার্ড এইচডিএল কোড নেই।
নির্মম আওয়াজ

9

উইকিপিডিয়া থেকে :

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

অন্যদিকে উইন্ডোজের সাম্প্রতিক সংস্করণগুলিতে একটি হাইব্রিড কার্নেল ব্যবহার করা হয় ।

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


7
আমি যদি কখনও কার্নেল স্পেসে কিছু করি তবে আমাকে কোথাও "হাইব্রিক কার্কেল" ব্যবহার করতে হবে মনে রাখতে হবে। এসসিএনআর ;-)
এ। এরহার্ড

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

5

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

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


আপনার উত্স পরীক্ষা করুন। উইকিপেজটি উত্তেজিত। www2.cs.uh.edu/~rzheng/course/COSC6397sp2008/…
monksy

2

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

আমি মনে করি এই পোস্টটি আপনাকে ধারণাটি বুঝতে আরও সহায়তা করবে।

http://learnlinuxconcepts.blogspot.in/2014/03/what-are-monolithic-and-micro-kernels.html


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