লিনাক্স কার্নেলটি কীভাবে মাইক্রোকারেল আর্কিটেকচারের সাথে তুলনা করে?


38

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


5

1
আপনি মাইক্রো কার্নেল বনাম মনোলিথিক কার্নেল নিয়ে বিতর্ক পড়তে পারেন। oreilly.com / ওপেনবুক / ওপেনসোর্সস / বই / অ্যাপ্পা এইচটিএমএল এই গবেষণাপত্রে অ্যান্ড্রু টেনেনবাউম মাইক্রোকার্নেল এবং লিনাস টোরভাল্ডস মনোলিথিক কার্নেল সমর্থন করে supports
ভুয়ান

উত্তর:


35

মাইক্রোকার্নেলগুলির একচেটিয়া কার্নেলগুলির চেয়ে অন্তঃতম , সবচেয়ে নির্ভরযোগ্য মোডে চালানোর জন্য কম কোড প্রয়োজন । এর অনেক দিক রয়েছে যেমন:

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

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

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

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



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

15

একটি মাইক্রোকার্নল ব্যবহারকারী ব্যবস্থার বিপরীতে, কার্নেল মোডে থাকা সিস্টেমটিকে নিখুঁত ন্যূনতম সম্ভব পর্যন্ত সীমাবদ্ধ করে।

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

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


5

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

1

কেবল x86 আর্কিটেকচারটি একবার দেখুন - একাকীর্ণ কার্নেল কেবল 0 এবং 3 রিং ব্যবহার করে A তবে কম কনটেক্সট স্যুইচিংয়ের কারণে এটি দ্রুততর হতে পারে।

x86 রিং


X86 রিং স্ট্রাকচারটি সবেমাত্র ওভাররিঞ্জাইনারিং। কোনও ব্যবহারিক ব্যবহার নেই (ভার্চুয়াল মেশিনগুলি ব্যতীত, তবে এটি ক্রমবর্ধমান ব্যবহৃত হয় ...)
ভনব্র্যান্ড

1
  1. মোনোলিথিক কার্নেলটি মাইক্রোকার্নেলের চেয়ে অনেক বেশি পুরানো1980 এর দশকের শেষে মাইক্রোকারেল ধারণাটি উপস্থিত হওয়ার সময় এটি ইউনিক্সে ব্যবহৃত হয়েছিল ।

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

  3. মোনোলিথিক কার্নেলগুলি মাইক্রোকার্নেলের চেয়ে দ্রুত । প্রথম ম্যাক মাইক্রোকার্নেল একশব্দে কার্নেলের চেয়ে 50% ধীর। L4 এর মতো পরবর্তী সংস্করণগুলি একরঙা কার্নেলের তুলনায় মাত্র 2% বা 4% ধীর

  4. মনোলিথিক কার্নেলগুলি সাধারণত বিশাল হয় যখন খাঁটি মাইক্রোকার্নেল আকারে ছোট হতে হবে , এমনকি প্রসেসরের প্রথম স্তরের ক্যাশে (প্রথম প্রজন্মের মাইক্রোকার্নেল) এর সাথেও ফিট করে।

  5. মনোলিথিক কার্নেলগুলিতে, ডিভাইস ড্রাইভারগুলি কার্নেল স্পেসে থাকে এবং মাইক্রোকারেল ডিভাইস ড্রাইভারের মধ্যে ব্যবহারকারী স্পেস থাকে

  6. যেহেতু ডিভাইস ড্রাইভারগুলি কার্নেল স্থানে বাস করে, তাই এটি মোনোলিথিক কার্নেলকে মাইক্রোকার্নেলের চেয়ে কম সুরক্ষিত করে তোলে (ড্রাইভারের ব্যর্থতা ক্র্যাশ হতে পারে)। মাইক্রোকার্নেলগুলি একচেটিয়া কার্নেলের চেয়ে বেশি সুরক্ষিত , তাই এগুলি বহু সামরিক ডিভাইসে ব্যবহৃত হয়।

  7. মোনোলিথিক কার্নেলগুলি আইপিসি নিশ্চিত করতে সংকেত এবং সকেট ব্যবহার করে যখন মাইক্রোকের্নেল পদ্ধতির বার্তার সারি ব্যবহার করা হয় । মাইক্রোকারেনেলের 1 জেনার IPC দুর্বলভাবে প্রয়োগ করেছে তাই তারা প্রসঙ্গের স্যুইচগুলিতে ধীর ছিল।

  8. মনোলিথিক সিস্টেমে নতুন বৈশিষ্ট্য যুক্ত করার অর্থ পুরো কার্নেলটি পুনরায় কম্পম্পল করার সময় আপনি পুনরায় সংশোধন না করেই নতুন বৈশিষ্ট্য বা প্যাচগুলি যুক্ত করতে পারবেন


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

0

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


-1

কেসটি হ'ল লিনাক্স কার্নেলটি মনোলিথিক এবং মাইক্রোকার্নেলের সংকর। খাঁটি একতরফা প্রয়োগে রানটাইমের সময় কোনও মডিউল লোড হচ্ছে না।


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

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

-1

শর্তাদি monolithic kernelএবং microkernelগুরুতরভাবে তুলনা করা যায় না কারণ তারা কার্নেল ডিজাইনের বিভিন্ন দিক (কাঠামো বনাম আকার) বর্ণনা করে।

বেসিক কার্নেলের বিষয়বস্তু ম্যানুয়ালি কনফিগার করার সাথে একটি সাধারণ মনোলিথিক কার্নেল ছিল সুনোস -৪.এক্স কার্নেল এবং লিনাক্স এখনও সমান।

সোলারিস কার্নেলটি (1992-এ ২.১ দিয়ে শুরু করা) একচেটিয়া আর বলা যায় না কারণ সমস্ত ড্রাইভার চাহিদা অনুযায়ী স্বয়ংক্রিয়ভাবে লোড হয় এবং প্রাথমিক বুটের সময় কেবল একটি ছোট্ট অংশ লোড হয়।

সুনোস -৪.x এবং সোলারিস (সুনোস -১.x) এবং লিনাক্স সমস্ত একক প্রসঙ্গ বাস্তবায়ন। তাদের পুরো কোডটি একটি একক এমএমইউ প্রসঙ্গে চলে।

ম্যাক ওএস এক্স মাচের উপর ভিত্তি করে এমএমইউ প্রসঙ্গে পৃথক পৃথক প্রক্রিয়াগুলির সাথে একাধিক প্রসঙ্গ প্রয়োগকরণ হিসাবে চালিত হয়। এই ধারণায় ড্রাইভারটি পৃথক প্রক্রিয়া এবং পৃথক পৃথক এমএমইউ প্রসঙ্গে রয়েছে।

অনেকে ম্যাক ওএস এক্সকে একটি "মাইক্রোকারেল সিস্টেম" বলে থাকেন, তবে এটি হতে পারে যে সোলারিসের বেসিক কার্নেলের চেয়ে বেসিক কার্নেলটি ছোট নয়।

সুতরাং মনে হচ্ছে single context kernelsবনাম সম্পর্কে কথা বলাই ভাল হবে multi context kernels


1
ম্যাকোস একটি মাইক্রোকারেল উপর একটি (মূলত একঘেয়ে) BSD শিম চালায়। মোটেই পৃথক প্রক্রিয়াগুলিতে কোনও বিচ্ছেদ নয়, আসল মাইক্রোকারেল ডিজাইন নয়।
ভনব্র্যান্ড

1
সুতরাং আপনি এমন একটি নকশাকে স্বীকার করেছেন যা কমপক্ষে দুটি তথাকথিত কর্নেল প্রক্রিয়া ব্যবহার করে। শব্দটি microkernelযাইহোক ভুল কারণ এটি সাধারণত ডাকা উচিত এমন কোনও কিছুর জন্য ব্যবহৃত হয় multi context kernel
ধীরে ধীরে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.