টেকটক: What Is Kernel?

Mahade Hasan
3 min readNov 2, 2020

--

Diagram of a monolithic kernel

সফটওয়্যার টেকনোলজিতে আমরা Kernel নামটা আমরা অনেকেই শুনেছি।

Kernel হলো সফটওয়্যার ও হার্ডওয়্যারের মাঝে একটি সংযোগ স্থাপনকারি ইনটারফেস বা মাধ্যম।

অনেকেই মনে করেন Kernel একটি অপারেটিং সিস্টেম। কিন্তু না, Kernel কোনো অপারেটিং সিস্টেম নয়। এটি অপারেটিং সিস্টেমের মূল বা হার্ট। অপারেটিং সিস্টেমের হার্ট বা চালিকা শক্তি বলা হয় Kernel কে।

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

Kernel কম্পিউটারের হার্ডওয়্যারের সাথে software এর সংযোগ করে দেয়।

আমাদের ব্যবহৃত software গুলো আমাদের কাছ থেকে কমান্ড নিয়ে তা Kernel এর কাছে প্রদান করে Kernel তাকে সেই অনুযায়ী হার্ডওয়্যারের অংশ তাকে ব্যবহার করতে দেয় যার মাধ্যমে software কাজ করে আউটপুট প্রদান করে।

Kernel শুধুমাত্র একটি ইন্টারফেস হিসেবেই ব্যবহৃত হয় না। এটি কাজ শুরু করে যখন কম্পিউটার ওপেন করা হয়। আর কাজ শেষ করে যখন কম্পিউটার বন্ধ হয়। এটি কম্পিউটারের CPU, RAM, Hard Disk Space এ সব কিছুই ব্যবহার করে কম্পিউটারকে সচল রাখে। প্রতিটি প্রোগ্রাম নিদির্ষ্ট কিছু পরিমান RAM, Hard Disk Space ইত্যাদি ব্যবহার করে যাতে করে অন্য প্রোগ্রামগুলো কোনো সমস্যা ছাড়াই চলতে পারে।

প্রতিটি অপারেটিং সিস্টেম আলাদা আলাদা Kernel ব্যবহার করে। যেমন: Windows ব্যবহার করে NT Kernel, iOS ব্যবহার করে Darwin Kernel এবং Android ব্যবহার করে Linux Kernel.

বলা হয়ে থাকে যে Linux Kernel এ ১ কোটি ৫০ লক্ষ (১৫ মিলিয়ন) লাইন কোড আছে যার প্রায় ৭০% ডিভাইসের ড্রাইভার হিসেবে কাজ করে। বাকিগুলোর সবকিছু একসাথে ব্যবহার হয় না। যখন যতটুকু প্রয়োজন তখন ততটুকুই কাজ করে।

Kernel এর প্রকারভেদ:

Kernel দুই প্রকার:

১) মনোলিথিক Kernel (Monolithic Kernel)

২) মাইক্রো Kernel (Micro Kernel)

Types of Kernel

মনোলিথিক সিস্টেমে অপারেটিং সিস্টেম Kernel এর পুরোটা ব্যবহার করে। আর মাইক্রো সিস্টেমে অপারেটিং সিস্টেম ও ইউজার স্পেস আলাদা থাকে।

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

অপরদিকে মাইক্রো Kernel ধীরে কাজ করে। কিন্তু এটি স্পেস বা জায়গা কম দখল করে।

উদাহরন স্বরুপ: লিনাক্স মনোলিথিক Kernel ব্যবহার করে। আর উইন্ডোজ হাইব্রিড Kernel (Mono + Micro) ব্যবহার করে।

--

--