কম্পিউটার বা স্মার্টফোন যখন আমরা ব্যবহার করি, তখন খুব সহজেই বিভিন্ন কাজ করে ফেলি – গান শোনা, ছবি দেখা, ইন্টারনেট ব্রাউজ করা, বা কোনো ডকুমেন্ট লেখা। কিন্তু কখনো কি ভেবে দেখেছেন, এই যন্ত্রগুলো ঠিক কীভাবে আমাদের নির্দেশ বোঝে আর এতসব কাজ সম্পন্ন করে? এর পেছনের মূল চালিকাশক্তিই হলো অপারেটিং সিস্টেম (Operating System বা OS)। আজকের লেখায় আমরা জানবো এই অপারেটিং সিস্টেমের বিভিন্ন অংশ নিয়ে, যেমন – কার্নেল, শেল, ফাইল সিস্টেম ইত্যাদি এবং বোঝার চেষ্টা করবো এরা কীভাবে একসাথে কাজ করে আমাদের ডিজিটাল জীবনকে সচল রাখে।
অপারেটিং সিস্টেম কি? সংক্ষেপে
সহজ কথায়, অপারেটিং সিস্টেম হলো একটি বিশেষ সফটওয়্যার যা কম্পিউটারের হার্ডওয়্যার (যেমন প্রসেসর, মেমরি, হার্ড ড্রাইভ) এবং অন্যান্য সফটওয়্যার বা অ্যাপ্লিকেশনের মধ্যে একটি সেতু হিসেবে কাজ করে। এটি নিশ্চিত করে যেন হার্ডওয়্যার এবং সফটওয়্যার একে অপরের সাথে সঠিকভাবে যোগাযোগ করতে পারে এবং ব্যবহারকারী হিসেবে আমরা যেন সহজেই কম্পিউটারকে ব্যবহার করার নির্দেশ দিতে পারি। উইন্ডোজ (Windows), ম্যাকওএস (macOS), লিনাক্স (Linux), অ্যান্ড্রয়েড (Android), আইওএস (iOS) – এগুলো সবই জনপ্রিয় অপারেটিং সিস্টেমের উদাহরণ।
অপারেটিং সিস্টেমের মূল অংশগুলো
একটি অপারেটিং সিস্টেম একা কোনো অংশ নয়, বরং এটি অনেকগুলো ছোট ছোট প্রোগ্রামের সমষ্টি যা একসাথে মিলে একটি পূর্ণাঙ্গ সিস্টেম তৈরি করে। চলুন এর কয়েকটি প্রধান অংশ সম্পর্কে জেনে নিই:
১. কার্নেল (Kernel): অপারেটিং সিস্টেমের হৃৎপিণ্ড
কার্নেল হলো অপারেটিং সিস্টেমের একেবারে মূল অংশ, এর মস্তিষ্ক বা হৃৎপিণ্ড। কম্পিউটার চালু হওয়ার পর এটিই সর্বপ্রথম মেমরিতে লোড হয় এবং সিস্টেম বন্ধ হওয়ার আগ পর্যন্ত চলতে থাকে। এর প্রধান কাজগুলো হলো:
- হার্ডওয়্যার নিয়ন্ত্রণ: প্রসেসর (CPU), মেমরি (RAM), ডিস্ক ড্রাইভ, কিবোর্ড, মাউস – এই সব হার্ডওয়্যারকে পরিচালনা করা।
- সম্পদের বণ্টন: কোন প্রোগ্রাম কখন প্রসেসর ব্যবহার করবে, কতটা মেমরি পাবে – এই বিষয়গুলো ঠিক করা।
- কোর সার্ভিস প্রদান: অন্যান্য সফটওয়্যার যাতে হার্ডওয়্যারের সাথে যোগাযোগ করতে পারে, সেই প্রয়োজনীয় সেবাগুলো দেওয়া।
আপনি যখন কোনো অ্যাপ্লিকেশন খোলেন, তখন আসলে কার্নেলই সেই অ্যাপ্লিকেশনটিকে चलने জন্য প্রয়োজনীয় রিসোর্স (মেমরি, সিপিইউ টাইম) বরাদ্দ করে দেয়।
২. প্রসেস ম্যানেজমেন্ট (Process Management)
আপনি যখন কম্পিউটারে একসাথে গান শুনছেন, ইন্টারনেট ব্রাউজ করছেন এবং ওয়ার্ড ফাইলে কিছু লিখছেন, তখন প্রতিটি কাজই এক একটি প্রসেস (Process) হিসেবে চলে। অপারেটিং সিস্টেমের এই অংশটি নিশ্চিত করে যেন এই সবগুলো প্রসেস ঠিকমতো চলতে পারে, একটি আরেকটির কাজে বাধা না দেয় এবং সিপিইউ-এর সময় যেন সঠিকভাবে ভাগ করে দেওয়া হয়। একে বলা হয় মাল্টিটাস্কিং (Multitasking)। প্রসেস ম্যানেজমেন্ট বিভাগ প্রতিটি চলমান প্রোগ্রামের অবস্থা ট্র্যাক করে এবং তাদের নির্বাহ নিয়ন্ত্রণ করে।
৩. মেমরি ম্যানেজমেন্ট (Memory Management)
কম্পিউটারের র্যাম (RAM – Random Access Memory) হলো অস্থায়ী মেমরি যেখানে চলমান প্রোগ্রাম ও ডেটা জমা থাকে। অপারেটিং সিস্টেমের মেমরি ম্যানেজমেন্ট অংশটি র্যামকে দক্ষতার সাথে ব্যবহার করার দায়িত্বে থাকে।
- কোনো প্রোগ্রাম চালু হলে তার জন্য র্যামে জায়গা বরাদ্দ করা।
- প্রোগ্রাম বন্ধ হয়ে গেলে সেই জায়গা খালি করা।
- একাধিক প্রোগ্রাম চললে তাদের মধ্যে মেমরি ভাগ করে দেওয়া, যাতে একটি প্রোগ্রাম অন্যটির জন্য সংরক্ষিত জায়গায় চলে না যায়।
- প্রয়োজনে হার্ড ডিস্কের কিছু অংশকে ভার্চুয়াল মেমরি (Virtual Memory) হিসেবে ব্যবহার করা, যখন র্যামের ঘাটতি দেখা দেয়।
৪. ফাইল সিস্টেম (File System)
কম্পিউটারে আমরা যে ফাইল (যেমন ডকুমেন্ট, ছবি, গান) বা ফোল্ডার তৈরি করি, সেগুলোকে হার্ড ডিস্ক বা অন্যান্য স্টোরেজ ডিভাইসে গুছিয়ে রাখার কাজটি করে ফাইল সিস্টেম। এটি ডেটাকে একটি নির্দিষ্ট কাঠামোতে সাজায়, যাতে আমরা সহজেই ফাইল খুঁজে বের করতে, তৈরি করতে, ডিলিট করতে বা পরিবর্তন করতে পারি। ফাইল সিস্টেম ফাইলের নাম, অবস্থান, আকার এবং অন্যান্য তথ্য ট্র্যাক করে। NTFS (Windows), HFS+ (macOS), ext4 (Linux) – এগুলো বিভিন্ন ফাইল সিস্টেমের উদাহরণ।
৫. ইউজার ইন্টারফেস (User Interface – UI) / শেল (Shell)
এই অংশটির মাধ্যমেই আমরা, অর্থাৎ ব্যবহারকারীরা, অপারেটিং সিস্টেম তথা কম্পিউটারের সাথে যোগাযোগ করি। এটি আমাদের নির্দেশ গ্রহণ করে এবং সিস্টেমের ফলাফল আমাদের দেখায়। ইউজার ইন্টারফেস মূলত দুই ধরনের হয়:
- কমান্ড-লাইন ইন্টারফেস (Command-Line Interface – CLI): এখানে ব্যবহারকারীকে টেক্সট কমান্ড টাইপ করে নির্দেশ দিতে হয়। এটি দেখতে হয়তো ততটা আকর্ষণীয় নয়, কিন্তু অনেক পাওয়ারফুল এবং দ্রুত কাজ করতে পারে। লিনাক্স বা ম্যাকওএস-এর টার্মিনাল (Terminal) অথবা উইন্ডোজের কমান্ড প্রম্পট (Command Prompt) হলো CLI-এর উদাহরণ। প্রোগ্রামার এবং সিস্টেম অ্যাডমিনিস্ট্রেটররা প্রায়ই এটি ব্যবহার করেন।
- গ্রাফিক্যাল ইউজার ইন্টারফেস (Graphical User Interface – GUI): এটি আমরা সবচেয়ে বেশি ব্যবহার করি। এখানে আইকন, বাটন, মেনু, উইন্ডো ইত্যাদি ব্যবহার করে মাউস বা টাচস্ক্রিনের সাহায্যে কম্পিউটারকে নির্দেশ দেওয়া যায়। উইন্ডোজ, ম্যাকওএস, অ্যান্ড্রয়েড – এদের সবারই GUI রয়েছে যা ব্যবহার করা অনেক সহজ।
শেল (Shell) মূলত একটি প্রোগ্রাম যা ব্যবহারকারীর দেওয়া কমান্ড (টেক্সট বা গ্রাফিক্যাল ক্লিকের মাধ্যমে) গ্রহণ করে এবং সেটিকে কার্নেলের বোঝার উপযোগী করে অনুবাদ করে দেয়। CLI-এর ক্ষেত্রে bash, zsh ইত্যাদি শেল হিসেবে কাজ করে, আর GUI-এর ক্ষেত্রে উইন্ডোজ এক্সপ্লোরার বা ম্যাকওএস ফাইন্ডারকে শেলের অংশ বলা যেতে পারে।
বাস্তব জীবনের উদাহরণ দিয়ে বোঝা যাক
অপারেটিং সিস্টেমের এই অংশগুলোর কাজ বোঝার জন্য একটি রেস্টুরেন্টের সাথে তুলনা করা যেতে পারে:
- আপনি (গ্রাহক) = ব্যবহারকারী (User)
- রেস্টুরেন্ট ম্যানেজার = কার্নেল (Kernel)। ম্যানেজার পুরো রেস্টুরেন্টের কার্যক্রম দেখাশোনা করেন, কোন টেবিলে কী খাবার যাবে, কোন ওয়েটার কী কাজ করবে, রান্নাঘরের কী অবস্থা – সবকিছুর উপর নজর রাখেন এবং সিদ্ধান্ত নেন।
- ওয়েটার = ইউজার ইন্টারফেস (UI) / শেল (Shell)। ওয়েটার আপনার কাছ থেকে খাবারের অর্ডার (নির্দেশ) নেয়, সেটি রান্নাঘরে (সিস্টেম) পৌঁছে দেয় এবং তৈরি হয়ে গেলে খাবার আপনার টেবিলে (ডিসপ্লে) নিয়ে আসে। GUI হলো মেনু কার্ড দেখে ছবি বা নাম পছন্দ করে অর্ডার দেওয়া, আর CLI হলো সরাসরি ওয়েটারকে মুখে বলে অর্ডার দেওয়া।
- রান্নাঘর ও শেফ (Chef) = প্রসেসর (CPU) ও প্রসেস ম্যানেজমেন্ট (Process Management)। রান্নাঘরে আসল কাজ হয় (প্রসেসিং)। ম্যানেজার (কার্নেল) ঠিক করেন কোন অর্ডার আগে যাবে, কোন শেফ কোন রান্না করবে।
- রান্নার জায়গা ও উপকরণ রাখার তাক = মেমরি (RAM) ও মেমরি ম্যানেজমেন্ট (Memory Management)। শেফ কাজ করার সময় প্রয়োজনীয় উপকরণ হাতের কাছে গুছিয়ে রাখেন (র্যামে ডেটা লোড হওয়া)। জায়গা সীমিত, তাই ম্যানেজারকে দেখতে হয় যেন সবাই ঠিকমতো জায়গা পায়।
- স্টোররুম / প্যান্ট্রি = হার্ড ডিস্ক ও ফাইল সিস্টেম (File System)। এখানে সব উপকরণ (ডেটা/ফাইল) দীর্ঘ সময়ের জন্য গুছিয়ে রাখা হয়। যখন দরকার হয়, তখন এখান থেকে বের করে রান্নাঘরে (র্যামে) আনা হয়।
এই উদাহরণ থেকে বোঝা যায়, একটি রেস্টুরেন্ট যেমন বিভিন্ন অংশ (ম্যানেজার, ওয়েটার, শেফ, স্টোররুম) একসাথে সমন্বিতভাবে কাজ করে গ্রাহককে সেবা দেয়, তেমনি অপারেটিং সিস্টেমও তার বিভিন্ন অংশ (কার্নেল, শেল, ফাইল সিস্টেম ইত্যাদি) ব্যবহার করে কম্পিউটারকে সচল রাখে এবং ব্যবহারকারীর নির্দেশ পালন করে।
কিছু টেকনিক্যাল বিষয়: সিস্টেম কল (System Call)
যখন কোনো অ্যাপ্লিকেশন (যেমন একটি ওয়ার্ড প্রসেসর) আপনার লেখা ফাইলটি সেভ করতে চায়, তখন সে সরাসরি হার্ড ডিস্কে লিখতে পারে না। এর জন্য তাকে অপারেটিং সিস্টেমের কার্নেলের সাহায্য নিতে হয়। অ্যাপ্লিকেশনটি কার্নেলকে একটি সিস্টেম কল (System Call) এর মাধ্যমে অনুরোধ পাঠায় (Request) যে “এই ফাইলটি ডিস্কে সেভ করে দাও”। কার্নেল তখন সেই অনুরোধ (Request) গ্রহণ করে, প্রয়োজনীয় নিরাপত্তা পরীক্ষা করে এবং ফাইল সিস্টেমের মাধ্যমে ডেটাটি হার্ড ডিস্কে লিখে দেয়, তারপর অ্যাপ্লিকেশনকে একটি উত্তর (Response) পাঠায় যে কাজটি সফল হয়েছে কি না। এই সিস্টেম কলগুলোই হলো অ্যাপ্লিকেশন এবং কার্নেলের মধ্যে যোগাযোগের প্রধান মাধ্যম।
কেন এই অংশগুলো জানা জরুরি?
যদিও সাধারণ ব্যবহারকারী হিসেবে আমাদের হয়তো সবসময় অপারেটিং সিস্টেমের ভেতরের এই খুঁটিনাটি জানার প্রয়োজন হয় না, কিন্তু এর মূল অংশগুলো সম্পর্কে ধারণা থাকলে কিছু সুবিধা হয়:
- কম্পিউটার কেন ধীর গতিতে চলছে বা কোনো সমস্যা হলে তার সম্ভাব্য কারণ বুঝতে সুবিধা হয়।
- বিভিন্ন অপারেটিং সিস্টেমের মধ্যে পার্থক্য বুঝতে সাহায্য করে।
- কম্পিউটার বিজ্ঞান বা আইটি নিয়ে যারা পড়তে বা কাজ করতে আগ্রহী, তাদের জন্য এটি একটি মৌলিক ধারণা।
উপসংহার
অপারেটিং সিস্টেম একটি জটিল কিন্তু অসাধারণ সফটওয়্যার যা আমাদের ডিজিটাল ডিভাইসগুলোকে ব্যবহারযোগ্য করে তোলে। এর বিভিন্ন অংশ যেমন কার্নেল, শেল (UI), ফাইল সিস্টেম, মেমরি ম্যানেজমেন্ট এবং প্রসেস ম্যানেজমেন্ট – প্রত্যেকে নিজ নিজ দায়িত্ব পালন করে একটি সমন্বিত সিস্টেম হিসেবে কাজ করে। আশা করি, এই আলোচনার মাধ্যমে অপারেটিং সিস্টেমের বিভিন্ন অংশ সম্পর্কে আপনার একটি স্পষ্ট ধারণা তৈরি হয়েছে এবং কম্পিউটার কীভাবে কাজ করে, সে বিষয়ে আপনার আগ্রহ আরও বেড়েছে।
Primary Bengali Keyword(s):
- অপারেটিং সিস্টেমের বিভিন্ন অংশ
Secondary Bengali Keyword(s):
- অপারেটিং সিস্টেম
- কার্নেল কি
- শেল কি
- ফাইল সিস্টেম
- মেমরি ম্যানেজমেন্ট
- প্রসেস ম্যানেজমেন্ট
- ইউজার ইন্টারফেস
- GUI
- CLI