সফটওয়্যার পরিচিতি: অপারেটিং সিস্টেম

অপারেটিং সিস্টেম কী? এর কার্যাবলী, উইন্ডোজ, লিনাক্স, অ্যান্ড্রয়েড, আইওএস এবং ইউজার ইন্টারফেস (GUI, CLI) সম্পর্কে বিস্তারিত জানুন।

শেখা শুরু করুন

সফটওয়্যার পরিচিতি: অপারেটিং সিস্টেম

  1. সফটওয়্যার পরিচিতি: অপারেটিং সিস্টেম
  2. পর্দার আড়ালের সেই জাদুকর!
  3. অপারেটিং সিস্টেম (OS) কী?
  4. কম্পিউটার সিস্টেমে OS এর অবস্থান
  5. OS-এর কাজ: প্রসেস ম্যানেজমেন্ট
  6. OS-এর কাজ: মেমরি ম্যানেজমেন্ট
  7. OS-এর কাজ: ফাইল এবং ডিভাইস ম্যানেজমেন্ট
  8. ইউজার ইন্টারফেস: GUI
  9. ইউজার ইন্টারফেস: CLI
  10. পার্থক্য: GUI বনাম CLI
  11. ডেস্কটপ অপারেটিং সিস্টেম
  12. মোবাইল অপারেটিং সিস্টেম
  13. সার্ভার অপারেটিং সিস্টেম (Server OS)
  14. এমবেডেড অপারেটিং সিস্টেম (Embedded OS)
  15. আধুনিক ইউজার ইন্টারফেস
  16. সারসংক্ষেপ

সফটওয়্যার পরিচিতি: অপারেটিং সিস্টেম

এই লেকচার শেষে আমরা-

১। অপারেটিং সিস্টেম (OS) এর সংজ্ঞা এবং এর প্রধান কার্যাবলী ব্যাখ্যা করতে পারব।
২। বিভিন্ন প্রকার ইউজার ইন্টারফেস (GUI বনাম CLI) এর পার্থক্য নিরূপণ করতে পারব।
৩। ডেস্কটপ এবং মোবাইল অপারেটিং সিস্টেমগুলোর তুলনামূলক আলোচনা করতে পারব।
৪। সার্ভার এবং এমবেডেড অপারেটিং সিস্টেমের গুরুত্ব মূল্যায়ন করতে পারব।

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

পর্দার আড়ালের সেই জাদুকর!

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

তোমরা একটু ভাবো তো, যখন তোমরা ফোনে একসাথে গান শুনছ, ব্রাউজারে ইন্টারনেট ঘাঁটছ আবার ম্যাসেঞ্জারে চ্যাট করছ—ফোনটি কি কখনো কনফিউজড হয়ে যায় যে কোন কাজটি আগে করবে? না! কিন্তু কেন? কারণ পর্দার আড়ালে একজন সুদক্ষ ম্যানেজার বসে আছে। সে ঠিক করে দিচ্ছে কোন অ্যাপ কতটুকু মেমরি বা সিপিইউ পাবে। এই ম্যানেজারের নামই হলো অপারেটিং সিস্টেম বা OS! আজকের ভিডিওতে আমরা এই ম্যানেজারকেই চিনব।

অপারেটিং সিস্টেম (OS) কী?

  • OS হলো এক ধরনের সিস্টেম সফটওয়্যার
  • এটি হার্ডওয়্যার এবং ইউজারের মধ্যে সেতুবন্ধন তৈরি করে
  • অ্যাপ্লিকেশন সফটওয়্যার চলার জন্য উপযুক্ত পরিবেশ তৈরি করে
  • উদাহরণ: Windows, Android, macOS

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

কম্পিউটার সিস্টেমে OS এর অবস্থান

সিস্টেমের বিভিন্ন স্তর:
১। User (ব্যবহারকারী): আমরা যারা কম্পিউটার চালাই
২। Application: গেম, ব্রাউজার, মিডিয়া প্লেয়ার
৩। Operating System: সিস্টেম ম্যানেজার
৪। Hardware: সিপিইউ, র‍্যাম, হার্ডডিস্ক

স্ক্রিনের ডায়াগ্রামটার দিকে একটু খেয়াল করো। একদম নিচে আছে হার্ডওয়্যার, আর একদম উপরে আছো তুমি বা ইউজার। তুমি যখন ব্রাউজারে ক্লিক করো, ব্রাউজার গিয়ে অপারেটিং সিস্টেমকে বলে। অপারেটিং সিস্টেম তখন হার্ডওয়্যারকে নির্দেশ দেয়। অর্থাৎ, OS হলো সেই ব্রিজ বা সাঁকো, যা সফটওয়্যার আর হার্ডওয়্যারকে যুক্ত করেছে। ভিডিওটি একটু পজ করে ডায়াগ্রামটি খাতায় এঁকে নিতে পারো, কনসেপ্টটা একদম ক্লিয়ার হয়ে যাবে।

OS-এর কাজ: প্রসেস ম্যানেজমেন্ট

  • কোন প্রোগ্রাম কখন সিপিইউ (CPU) ব্যবহার করবে তা নির্ধারণ করা
  • একাধিক কাজের মধ্যে সমন্বয় সাধন করা (Multitasking)
  • সিস্টেম ক্র্যাশ রোধ করা

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

OS-এর কাজ: মেমরি ম্যানেজমেন্ট

  • প্রোগ্রাম চলার সময় র‍্যাম (RAM)-এর স্পেস বণ্টন করা
  • কাজ শেষ হলে মেমরি ফাঁকা করা
  • মেমরি ফুল হয়ে গেলে সিস্টেমের পারফরম্যান্স নিয়ন্ত্রণ করা

উপমা (Analogy): র‍্যাম হলো তোমার পড়ার টেবিলের মতো, আর OS হলো সেই টেবিল গুছিয়ে রাখার দায়িত্বে থাকা ব্যক্তি!

দ্বিতীয় গুরুত্বপূর্ণ কাজ হলো মেমরি বা র‍্যাম ম্যানেজমেন্ট। ধরো, তোমার পড়ার টেবিল হলো র‍্যাম। তুমি যখন অংক করো, টেবিলে অংকের বই রাখো। কাজ শেষ হলে সেটা সরিয়ে বিজ্ঞানের বই রাখো। OS-ও ঠিক এই কাজটাই করে। কোন অ্যাপের কতটুকু র‍্যাম লাগবে সেটা সে বণ্টন করে দেয়, আর অ্যাপ ক্লোজ করলে সেই জায়গাটা ফাঁকা করে দেয়। খুব interesting, তাই না?

OS-এর কাজ: ফাইল এবং ডিভাইস ম্যানেজমেন্ট

ফাইল ম্যানেজমেন্ট (File Management):
- হার্ডডিস্কে ডেটা সেভ করা, ফোল্ডার তৈরি ও অর্গানাইজ করা
- লাইব্রেরিয়ানের মতো ফাইলের হিসাব রাখা

ডিভাইস ম্যানেজমেন্ট (Device Management):
- প্রিন্টার, মাউস, কীবোর্ড ইত্যাদি হার্ডওয়্যার নিয়ন্ত্রণ করা
- ডিভাইস ড্রাইভার (Device Driver) এর মাধ্যমে হার্ডওয়্যারের সাথে যোগাযোগ (ট্রান্সলেটর হিসেবে কাজ করে)

আরও দুটো বড় কাজ হলো ফাইল আর ডিভাইস ম্যানেজমেন্ট। তোমার কম্পিউটারের ড্রাইভগুলোতে ফোল্ডার তৈরি করা, ফাইল সেভ করা—এসবের হিসাব রাখে OS, অনেকটা লাইব্রেরিয়ানের মতো। আর ডিভাইস ম্যানেজমেন্ট হলো, তুমি যখন পেনড্রাইভ বা নতুন প্রিন্টার লাগাও, তখন OS ডিভাইস ড্রাইভার নামক ছোট সফটওয়্যারের মাধ্যমে সেই যন্ত্রগুলোর সাথে কথা বলে। এই ড্রাইভার হলো মূলত ট্রান্সলেটর!

ইউজার ইন্টারফেস: GUI

GUI (Graphical User Interface):
- ছবি, আইকন এবং মাউস নির্ভর ইন্টারফেস
- সহজবোধ্য এবং সাধারণ ব্যবহারকারীদের জন্য উপযুক্ত
- উপাদান: Window, Icon, Menu, Pointer (WIMP)
- উদাহরণ: Windows, Android, macOS

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

ইউজার ইন্টারফেস: CLI

CLI (Command Line Interface):
- টেক্সট বা কমান্ড লিখে নির্দেশ দিতে হয়
- মাউসের ব্যবহার নেই, শুধুমাত্র কীবোর্ড নির্ভর
- প্রফেশনাল প্রোগ্রামার এবং সার্ভার ম্যানেজমেন্টে ব্যবহৃত হয়
- উদাহরণ: Linux Terminal, Windows CMD

GUI এর ঠিক উল্টো হলো CLI বা কমান্ড লাইন ইন্টারফেস। এখানে কোনো ছবি বা মাউস নেই, সব কাজ করতে হয় কমান্ড লিখে লিখে। মুভিতে হ্যাকারদের কালো স্ক্রিনে টাইপ করতে দেখেছ নিশ্চয়ই? ওটাই CLI! সাধারণ মানুষের জন্য এটা কঠিন হলেও, প্রফেশনাল এবং সার্ভার অ্যাডমিনদের কাছে এটা খুবই শক্তিশালী একটা টুল। কারণ কমান্ড দিয়ে খুব দ্রুত বড় বড় কাজ করা যায়।

পার্থক্য: GUI বনাম CLI

GUI (Graphical User Interface)
- ব্যবহার করা খুব সহজ
- মাউস এবং কীবোর্ড দুটোই ব্যবহৃত হয়
- আইকন ও গ্রাফিক্স থাকায় মেমরি বেশি প্রয়োজন হয়
- সাধারণ ব্যবহারকারীদের জন্য উপযুক্ত

চলো এবার এই দুইটার একটা তুলনা করি। আগের স্লাইডগুলো থেকেই কিন্তু আমরা পার্থক্য বের করতে পারি। ভিডিওটা পজ করে তুমি নিজে আগে কয়েকটা পার্থক্য ভাবার চেষ্টা করো। (Pause for a second). হ্যাঁ, GUI সহজ, CLI কঠিন। GUI তে মাউস লাগে, CLI তে শুধু কীবোর্ড। কনসেপ্টগুলো এভাবে মিলিয়ে পড়লে তোমাদের অনেক দিন মনে থাকবে।

ডেস্কটপ অপারেটিং সিস্টেম

  • Microsoft Windows: বিশ্বের সবচেয়ে জনপ্রিয় এবং বহুল ব্যবহৃত
  • macOS: অ্যাপলের নিজস্ব ওএস, ক্রিয়েটিভ কাজের জন্য অত্যন্ত জনপ্রিয়
  • Linux: ওপেন সোর্স (ফ্রি) এবং কাস্টমাইজযোগ্য। এটি সার্ভারে সবচেয়ে বেশি ব্যবহৃত হয়
  • ChromeOS: ওয়েব ও ক্লাউড নির্ভর, হালকা ওজনের ল্যাপটপের জন্য

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

মোবাইল অপারেটিং সিস্টেম

  • Android:
  • গুগলের তৈরি ওপেন সোর্স (লিনাক্স ভিত্তিক) ওএস
  • বিশ্বের এবং বাংলাদেশের অধিকাংশ স্মার্টফোনে ব্যবহৃত
  • iOS:
  • অ্যাপলের আইফোন এবং আইপ্যাডের নিজস্ব ওএস
  • এটি ক্লোজড সোর্স এবং অত্যন্ত সুরক্ষিত

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

সার্ভার অপারেটিং সিস্টেম (Server OS)

  • নেটওয়ার্ক এবং সার্ভার পরিচালনার জন্য বিশেষায়িত
  • একই সাথে হাজার হাজার ব্যবহারকারীকে সেবা দিতে সক্ষম
  • উচ্চ নিরাপত্তা এবং স্থায়িত্ব (২৪/৭ চলতে পারে)
  • উদাহরণ: Windows Server, Ubuntu Server, Red Hat Linux

এবার একটা বড় স্কেলের কথা ভাবো। তুমি যখন ফেসবুক চালাও, কোটি কোটি মানুষ একসাথে ফেসবুকে লগইন করছে। সাধারণ উইন্ডোজ কি এত চাপ নিতে পারবে? না! এর জন্য দরকার শক্তিশালী সার্ভার অপারেটিং সিস্টেম। এগুলো এমনভাবে তৈরি যেন বছরের পর বছর বন্ধ না করে ২৪ ঘণ্টা চলতে পারে এবং একসাথে হাজার হাজার ইউজারকে সার্ভিস দিতে পারে।

এমবেডেড অপারেটিং সিস্টেম (Embedded OS)

  • নির্দিষ্ট কোনো একটি কাজ করার জন্য তৈরি
  • অন্যান্য হার্ডওয়্যার বা মেশিনের ভেতরে যুক্ত (Embedded) থাকে
  • আকার এবং মেমরিতে খুব ছোট হয়
  • উদাহরণ: স্মার্ট টিভি, রাউটার, ডিজিটাল ওয়াশিং মেশিন, মেডিক্যাল যন্ত্রপাতি

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

আধুনিক ইউজার ইন্টারফেস

GUI এবং CLI ছাড়াও আধুনিক প্রযুক্তিতে আরও কিছু ইন্টারফেস জনপ্রিয় হচ্ছে:

  • টাচ ইন্টারফেস (Touch Interface): স্মার্টফোন এবং ট্যাবলেটে ব্যবহৃত। আঙুলের স্পর্শে নির্দেশ দেওয়া হয়।
  • ভয়েস ইন্টারফেস (Voice Interface): মানুষের কথার মাধ্যমে নির্দেশ প্রদান।
  • উদাহরণ: Google Assistant, Apple Siri, Amazon Alexa

GUI এবং CLI ছাড়াও বর্তমানে আমরা টাচ ইন্টারফেস প্রচুর ব্যবহার করি, যেমন আমাদের ফোন। আর তার চেয়েও আধুনিক হলো ভয়েস ইন্টারফেস। যেমন তুমি গুগল অ্যাসিস্ট্যান্ট বা সিরি-কে মুখে কমান্ড দাও, আর সে কাজ করে দেয়। প্রযুক্তি কত দ্রুত এগোচ্ছে, তাই না?

সারসংক্ষেপ

আজকের লেকচার থেকে আমরা যা শিখলাম:

  • অপারেটিং সিস্টেম হলো হার্ডওয়্যার এবং ইউজারের মাঝখানের ম্যানেজার।
  • এর মূল কাজ হলো প্রসেস, মেমরি, ফাইল এবং ডিভাইস পরিচালনা করা।
  • ইউজার ইন্টারফেস প্রধানত আইন প্রকার: ছবি নির্ভর (GUI) এবং টেক্সট নির্ভর (CLI)।
  • কাজের ধরন অনুযায়ী ডেস্কটপ, মোবাইল, সার্ভার এবং এমবেডেড OS ব্যবহার করা হয়।

আজকে আমরা অনেক গুরুত্বপূর্ণ বিষয় শিখেছি! আমরা জেনেছি OS কী, কীভাবে সে সিস্টেমের সব কিছু ম্যানেজ করে। আমরা GUI এবং CLI এর পার্থক্য বুঝেছি এবং মোবাইল থেকে শুরু করে সার্ভার পর্যন্ত বিভিন্ন OS এর সাথে পরিচিত হয়েছি। এই concept গুলো তোমাদের আইসিটি জার্নিতে অনেক কাজে আসবে। তোমার যদি বুঝতে কষ্ট হয়, ভিডিওটা আবার দেখতে পারো। আগামী লেকচারে আবার দেখা হবে, ভালো থেকো সবাই!

সফটওয়্যার পরিচিতি: অপারেটিং সিস্টেম

পড়তে প্রায় 8 মিনিট

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

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

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

অপারেটিং সিস্টেম (OS) কী এবং সিস্টেম স্ট্যাক

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

সংজ্ঞা (Definition): অপারেটিং সিস্টেম (Operating System) হলো এমন একগুচ্ছ সিস্টেম সফটওয়্যার, যা কম্পিউটারের হার্ডওয়্যার ও অ্যাপ্লিকেশন সফটওয়্যারের মধ্যে সেতুবন্ধন তৈরি করে এবং কম্পিউটারের সকল কার্যক্রম ও রিসোর্স (Resource) নিয়ন্ত্রণ ও পরিচালনা করে।

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

সিস্টেম স্ট্যাকের স্তরসমূহ

গুরুত্বপূর্ণ (Important):
সিস্টেম স্ট্যাকের মূল স্তরগুলো হলো:
- ব্যবহারকারী (User): যিনি কম্পিউটার বা ডিভাইস ব্যবহার করেন এবং বিভিন্ন কমান্ড প্রদান করেন। ব্যবহারকারী সরাসরি অ্যাপ্লিকেশন সফটওয়্যারের সাথে কাজ করেন।
- অ্যাপ্লিকেশন সফটওয়্যার (Application Software): ব্যবহারকারীর নির্দিষ্ট কাজের জন্য তৈরি প্রোগ্রাম (যেমন: MS Word, Chrome), যা সরাসরি ব্যবহারকারীর সাথে ইন্টারঅ্যাক্ট করে।
- অপারেটিং সিস্টেম (OS): এটি মূল নিয়ন্ত্রক সফটওয়্যার, যা অ্যাপ্লিকেশন থেকে কমান্ড গ্রহণ করে এবং তা হার্ডওয়্যারকে বুঝিয়ে দেয়।
- হার্ডওয়্যার (Hardware): কম্পিউটারের ভৌত যন্ত্রাংশ (CPU, RAM, Hard Disk), যা চূড়ান্তভাবে কাজটি সম্পন্ন করে।

ধরা যাক, আপনি এমএস ওয়ার্ডে একটি ডকুমেন্ট টাইপ করে প্রিন্ট কমান্ড দিলেন। আপনি (User) সরাসরি প্রিন্টারকে (Hardware) নির্দেশ দিতে পারেন না। আপনি এমএস ওয়ার্ডকে (Application) নির্দেশ দেন। এমএস ওয়ার্ড সেই নির্দেশ অপারেটিং সিস্টেমের (OS) কাছে পাঠায়। এরপর অপারেটিং সিস্টেম যাচাই করে দেখে প্রিন্টারটি সংযুক্ত আছে কি না এবং সবশেষে সে প্রিন্টারকে কাজটি করার নির্দেশ প্রদান করে।

অপারেটিং সিস্টেমের প্রধান কার্যাবলী

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

১. প্রসেস ম্যানেজমেন্ট (Process Management)

আমরা যখন কম্পিউটারে একসাথে একাধিক কাজ করি (যেমন: গান শোনা এবং টাইপ করা), তখন প্রতিটি কাজকে একটি "প্রসেস" বলা হয়। কম্পিউটারের প্রসেসর বা সিপিইউ (CPU) মূলত একবারে একটি কাজই করতে পারে। অপারেটিং সিস্টেম অত্যন্ত দ্রুতগতিতে সিপিইউ-এর সময়কে বিভিন্ন প্রসেসের মধ্যে ভাগ করে দেয়। এই কাজটিকে মাল্টিটাস্কিং (Multitasking) বলা হয়। এর ফলে আমাদের মনে হয় যে কম্পিউটার একসাথে সবগুলো কাজ করছে।

২. মেমরি ম্যানেজমেন্ট (Memory Management)

কম্পিউটারে যেকোনো প্রোগ্রাম চলতে হলে তাকে অবশ্যই প্রধান মেমরি বা র‍্যামে (RAM) জায়গা করে নিতে হয়। অপারেটিং সিস্টেম ঠিক করে দেয় কোন প্রোগ্রামের জন্য র‍্যামের কতটুকু জায়গা বরাদ্দ করা হবে। যখন কোনো প্রোগ্রামের কাজ শেষ হয়ে যায়, তখন অপারেটিং সিস্টেম সেখান থেকে মেমরি খালি করে নেয়, যাতে অন্য নতুন প্রোগ্রাম সেখানে জায়গা পেতে পারে। মেমরি ম্যানেজমেন্ট ঠিকমতো না হলে কম্পিউটার হ্যাং বা ধীরগতির হয়ে যায়।

৩. ফাইল ম্যানেজমেন্ট (File Management)

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

৪. ডিভাইস ম্যানেজমেন্ট (Device Management)

কম্পিউটারের সাথে সংযুক্ত বিভিন্ন যন্ত্রাংশ যেমন—কিবোর্ড, মাউস, প্রিন্টার, স্ক্যানার বা পেনড্রাইভকে নিয়ন্ত্রণ করার কাজটি অপারেটিং সিস্টেম করে। প্রতিটি ডিভাইসের নিজস্ব কিছু নিয়ম থাকে, যা অপারেটিং সিস্টেমকে বুঝিয়ে দেওয়ার জন্য এক ধরনের ছোট প্রোগ্রামের প্রয়োজন হয়, যাকে ডিভাইস ড্রাইভার বলা হয়।

সংজ্ঞা (Definition): ডিভাইস ড্রাইভার (Device Driver) হলো এক ধরণের বিশেষ সফটওয়্যার যা অপারেটিং সিস্টেমকে কোনো নির্দিষ্ট হার্ডওয়্যার (যেমন- প্রিন্টার বা স্ক্যানার) এর সাথে যোগাযোগ করতে এবং সেটিকে নিয়ন্ত্রণ করতে সাহায্য করে। এটি মূলত হার্ডওয়্যার এবং ওএস এর মাঝখানে অনুবাদক (Translator) হিসেবে কাজ করে।

পরীক্ষার টিপস (Exam Tip): পরীক্ষায় "অপারেটিং সিস্টেমের কাজ বর্ণনা করো" প্রশ্নটি এলে এই চারটি পয়েন্ট (প্রসেস, মেমরি, ফাইল ও ডিভাইস ম্যানেজমেন্ট) নীল কালির কলম দিয়ে স্পষ্ট করে লিখবে। প্রতিটি পয়েন্টের নিচে ৩-৪ লাইনে ব্যাখ্যা দেবে এবং মাল্টিটাস্কিং বা ডিভাইস ড্রাইভারের মতো কি-ওয়ার্ডগুলো আন্ডারলাইন করে দেবে। এতে খুব সহজে পূর্ণ নম্বর পাওয়া সম্ভব।

ইউজার ইন্টারফেস: GUI বনাম CLI

আমরা কম্পিউটারের সাথে কীভাবে যোগাযোগ করব বা তাকে কীভাবে নির্দেশ দেব, সেই মাধ্যমটিকেই ইউজার ইন্টারফেস (User Interface) বলা হয়। মূলত অপারেটিং সিস্টেম ব্যবহারকারীদের জন্য এই ইন্টারফেস তৈরি করে দেয়। ইউজার ইন্টারফেস প্রধানত দুই ধরনের হয়ে থাকে: গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) এবং কমান্ড লাইন ইন্টারফেস (CLI)।

গ্রাফিক্যাল ইউজার ইন্টারফেস বা GUI (Graphical User Interface) হলো আধুনিক অপারেটিং সিস্টেমের সবচেয়ে জনপ্রিয় রূপ। এখানে বিভিন্ন ছবি, আইকন, বাটন এবং মেনু ব্যবহার করে কম্পিউটারকে নির্দেশ দেওয়া হয়। এটি ব্যবহার করা অত্যন্ত সহজ, কারণ এখানে কোনো কোড বা কমান্ড মুখস্থ রাখতে হয় না। শুধুমাত্র মাউসের সাহায্যে ক্লিক করেই সব কাজ করা যায়। উইন্ডোজ (Windows) বা ম্যাক (macOS) হলো GUI-এর চমৎকার উদাহরণ।

GUI-এর মূল ধারণাটিকে সংক্ষেপে WIMP (Window, Icon, Menu, Pointer) বলা হয়। অর্থাৎ এখানে স্ক্রিনে উইন্ডো থাকে, ক্লিক করার জন্য আইকন থাকে, অপশন বেছে নেওয়ার জন্য মেনু থাকে এবং নির্দেশ করার জন্য একটি মাউস পয়েন্টার থাকে।

অন্যদিকে, কমান্ড লাইন ইন্টারফেস বা CLI (Command Line Interface) হলো পুরনো এবং টেক্সট-ভিত্তিক পদ্ধতি। এখানে কোনো ছবি বা মাউসের ব্যবহার নেই। কাজ করার জন্য ব্যবহারকারীকে কীবোর্ড দিয়ে নির্দিষ্ট কমান্ড বা কোড লিখে এন্টার চাপতে হয়। এটি ব্যবহার করা সাধারণ মানুষের জন্য বেশ কঠিন, কারণ সব কমান্ড মুখস্থ রাখতে হয়। তবে প্রফেশনাল প্রোগ্রামার বা নেটওয়ার্ক ইঞ্জিনিয়াররা দ্রুত এবং জটিল কাজ করার জন্য লিনাক্স (Linux) টার্মিনাল বা এমএস-ডস (MS-DOS) এর মতো CLI ব্যবহার করেন।

গুরুত্বপূর্ণ (Important):
GUI এবং CLI এর তুলনামূলক পার্থক্য:

বৈশিষ্ট গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) কমান্ড লাইন ইন্টারফেস (CLI)
ব্যবহার সাধারণ ব্যবহারকারীদের জন্য অত্যন্ত সহজবোধ্য এবং আকর্ষণীয়। প্রফেশনালদের জন্য উপযুক্ত এবং সাধারণ ব্যবহারকারীদের জন্য বেশ কঠিন।
ইনপুট পদ্ধতি মাউস এবং কীবোর্ড উভয়ই ব্যাপকভাবে ব্যবহৃত হয়। শুধুমাত্র কীবোর্ড দিয়ে কমান্ড লিখতে হয় (মাউসের ব্যবহার নেই)।
গতি ও মেমরি গ্রাফিক্স থাকায় মেমরি বেশি লাগে এবং কাজ কিছুটা ধীরগতির হতে পারে। শুধু টেক্সট হওয়ায় মেমরি খুব কম লাগে এবং কাজ অত্যন্ত দ্রুত হয়।
উদাহরণ Microsoft Windows, macOS, Android MS-DOS, Linux Terminal, Command Prompt

পরীক্ষার টিপস (Exam Tip): GUI এবং CLI এর পার্থক্য পরীক্ষায় আসার সম্ভাবনা অনেক বেশি। পার্থক্য লেখার সময় অবশ্যই ছক (Table) ব্যবহার করবে। অন্তত ৪টি পয়েন্ট সুন্দর করে উপস্থাপন করবে। এছাড়া WIMP (Window, Icon, Menu, Pointer) এর পূর্ণরূপটি এমসিকিউ বা অতি সংক্ষিপ্ত প্রশ্নের জন্য ভালোভাবে মুখস্থ রাখবে।

অপারেটিং সিস্টেমের প্রকারভেদ (কাজের ধরন অনুযায়ী)

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

অপারেটিং সিস্টেমের প্রকারভেদ

১. ডেস্কটপ অপারেটিং সিস্টেম

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

২. মোবাইল অপারেটিং সিস্টেম

স্মার্টফোন এবং ট্যাবলেটের জন্য বিশেষায়িত অপারেটিং সিস্টেমকে মোবাইল ওএস বলা হয়। এগুলোর প্রধান বৈশিষ্ট্য হলো এরা টাচস্ক্রিন ইন্টারফেস সাপোর্ট করে এবং তুলনামূলক কম মেমরি ও ব্যাটারিতে চলতে পারে। গুগলের অ্যান্ড্রয়েড (Android) এবং অ্যাপলের আইওএস (iOS) হলো বর্তমান বিশ্বের সবচেয়ে জনপ্রিয় মোবাইল অপারেটিং সিস্টেম।

৩. সার্ভার অপারেটিং সিস্টেম

বড় বড় নেটওয়ার্ক, ডেটাবেস এবং ওয়েবসাইট পরিচালনা করার জন্য শক্তিশালী কম্পিউটারের প্রয়োজন হয়, যাকে সার্ভার বলে। এই সার্ভারগুলোকে নিরবচ্ছিন্নভাবে এবং অত্যন্ত নিরাপদে পরিচালনা করার জন্য তৈরি ওএস-কে সার্ভার ওএস বলা হয়। এগুলো এমনভাবে ডিজাইন করা হয় যেন হাজার হাজার মানুষ একসাথে ডেটা আদান-প্রদান করলেও সিস্টেম ক্র্যাশ না করে। উইন্ডোজ সার্ভার (Windows Server) এবং লিনাক্স (Red Hat Linux) সার্ভারের জন্য সবচেয়ে বেশি ব্যবহৃত হয়।

৪. এমবেডেড অপারেটিং সিস্টেম

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

সংজ্ঞা (Definition): এমবেডেড অপারেটিং সিস্টেম (Embedded OS) হলো এমন এক ধরনের বিশেষায়িত অপারেটিং সিস্টেম, যা কোনো নির্দিষ্ট যন্ত্র বা মেশিনের ভেতরে স্থায়ীভাবে যুক্ত থাকে এবং কেবল ওই যন্ত্রটির নির্দিষ্ট কিছু কাজই নিয়ন্ত্রণ করে।

উদাহরণ (Example):
- ডেস্কটপ ও সার্ভার: বাংলাদেশে কলেজ বা ভার্সিটির ল্যাব এবং বাসা-বাড়িতে মাইক্রোসফট উইন্ডোজ (Windows) সবচেয়ে জনপ্রিয়। অন্যদিকে, ন্যাশনাল ইউনিভার্সিটির ওয়েবসাইট বা ব্যাংকের ডেটাবেস দিন-রাত ২৪ ঘণ্টা চালু রাখার জন্য শক্তিশালী সার্ভার হিসেবে লিনাক্স (Linux) ব্যবহৃত হয়, কারণ এটি সহজে ভাইরাসে আক্রান্ত হয় না এবং হ্যাং করে না।
- এমবেডেড সিস্টেম: আধুনিক স্মার্ট টিভি, অটোমেটিক ওয়াশিং মেশিন বা মাইক্রোওয়েভ ওভেন যে নির্দিষ্ট নিয়মে ও সময়ে কাজ করে, তার পেছনে থাকা ছোট সফটওয়্যারটিই হলো এমবেডেড অপারেটিং সিস্টেমের উদাহরণ।

ওপেন সোর্স বনাম প্রোপ্রাইটারি অপারেটিং সিস্টেম

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

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

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

গুরুত্বপূর্ণ (Important):
ওপেন সোর্স বনাম প্রোপ্রাইটারি অপারেটিং সিস্টেম:
- সোর্স কোড: ওপেন সোর্সের কোড উন্মুক্ত (যে কেউ দেখতে ও কাস্টমাইজ করতে পারে)। অন্যদিকে, প্রোপ্রাইটারির কোড সম্পূর্ণ গোপনীয় এবং অপরিবর্তনযোগ্য।
- ব্যবহারের খরচ: ওপেন সোর্স সফটওয়্যার সাধারণত বিনামূল্যে (Free) পাওয়া যায়। কিন্তু প্রোপ্রাইটারি ওএস কিনে ব্যবহার করতে হয় এবং এর লাইসেন্স ফি থাকে।
- মালিকানা ও নিয়ন্ত্রণ: ওপেন সোর্স কোনো নির্দিষ্ট কোম্পানির মালিকানায় থাকে না, এটি কমিউনিটি দ্বারা পরিচালিত। প্রোপ্রাইটারি ওএস নির্দিষ্ট কোম্পানির (যেমন- Microsoft, Apple) একচ্ছত্র নিয়ন্ত্রণে থাকে।
- উদাহরণ: ওপেন সোর্স ওএস হলো Linux (Ubuntu, Mint) এবং Android। প্রোপ্রাইটারি ওএস হলো Windows, macOS, এবং iOS।

সংক্ষিপ্ত সারাংশ (Quick Revision):
- অপারেটিং সিস্টেম (OS): এটি হলো ব্যবহারকারী ও হার্ডওয়্যারের মধ্যবর্তী সেতুবন্ধন এবং পুরো সিস্টেমের প্রধান ম্যানেজার।
- প্রধান কার্যাবলী: এটি প্রসেস ম্যানেজমেন্ট (মাল্টিটাস্কিং), মেমরি ম্যানেজমেন্ট, ফাইল ম্যানেজমেন্ট এবং ডিভাইস ম্যানেজমেন্টের কাজগুলো দক্ষতার সাথে সম্পন্ন করে।
- ইউজার ইন্টারফেস: মূলত দু’ধরনের ইন্টারফেস থাকে—GUI (মাউস ও গ্রাফিক্স নির্ভর) এবং CLI (কীবোর্ড ও কমান্ড নির্ভর)।
- প্রকারভেদ: কাজের ধরন ও ডিভাইস অনুযায়ী OS কে ডেস্কটপ (উইন্ডোজ), মোবাইল (অ্যান্ড্রয়েড), সার্ভার (লিনাক্স) এবং এমবেডেড (স্মার্ট টিভি) ভাগে ভাগ করা যায়।
- লাইসেন্সিং: লিনাক্স এবং অ্যান্ড্রয়েড হলো ওপেন সোর্স (উন্মুক্ত ও ফ্রি), অন্যদিকে উইন্ডোজ এবং আইওএস হলো প্রোপ্রাইটারি বা ক্লোজড সোর্স (লাইসেন্সযুক্ত)।

পরিভাষা (Glossary)

পরিভাষা (Term) সংজ্ঞা / অর্থ (Definition)
Operating System (OS) সিস্টেম সফটওয়্যার যা হার্ডওয়্যার নিয়ন্ত্রণ করে এবং ইউজারকে কাজ করার উপযুক্ত পরিবেশ দেয়।
System Stack কম্পিউটারের হার্ডওয়্যার থেকে ইউজার পর্যন্ত সফটওয়্যার ও কাজের বিভিন্ন স্তর (Hardware > OS > App > User)।
GUI (Graphical User Interface) ছবি, আইকন, মেনু ও মাউস নির্ভর সহজ ইউজার ইন্টারফেস।
CLI (Command Line Interface) কীবোর্ড থেকে টেক্সট বা কমান্ড লিখে নির্দেশ দেওয়ার কঠিন কিন্তু দ্রুতগতির ইন্টারফেস।
WIMP Window, Icon, Menu, এবং Pointer-এর সংক্ষিপ্ত রূপ, যা GUI-এর মূল উপাদান।
Device Driver ছোট প্রোগ্রাম বা সফটওয়্যার যা ওএস-কে নির্দিষ্ট হার্ডওয়্যারের (যেমন প্রিন্টার) সাথে যোগাযোগ করতে সাহায্য করে।
Multitasking কম্পিউটারে একই সময়ে একাধিক কাজ বা প্রোগ্রাম (যেমন গান শোনা ও টাইপ করা) একসাথে চালানোর সক্ষমতা।
Open Source যে সফটওয়্যারের সোর্স কোড উন্মুক্ত এবং বিনামূল্যে কাস্টমাইজ করা যায় (যেমন- লিনাক্স, অ্যান্ড্রয়েড)।
Proprietary Software ব্যক্তি বা প্রতিষ্ঠানের মালিকানাধীন সফটওয়্যার, যা ব্যবহারের জন্য সাধারণত লাইসেন্স কিনতে হয় (যেমন- উইন্ডোজ)।

অনুশীলনের প্রশ্ন

লিখিত প্রশ্ন

জাতীয় বিশ্ববিদ্যালয়
তথ্য ও যোগাযোগ প্রযুক্তি
স্নাতক (সম্মান) ১ম বর্ষ
শিক্ষাবর্ষ : ২০২৪-২৫
বিষয় কোড: ২১৯৯০৩
পূর্ণমান: ৬০ সময়: ৩ ঘন্টা

যে কোন ০৬টি প্রশ্নের উত্তর দিতে হবে

১। ক) অপারেটিং সিস্টেম কী? অপারেটিং সিস্টেমের দুটি প্রধান উদ্দেশ্য লিখ। ১+২=৩
[What is an operating system? Write down two main objectives of an operating system.]
খ) কমান্ড লাইন ইন্টারফেস (CLI) এবং গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) এর মধ্যে পার্থক্য লিখ। ৩
[Differentiate between Command Line Interface (CLI) and Graphical User Interface (GUI).]
গ) একটি অপারেটিং সিস্টেম কীভাবে মেমোরি এবং প্রসেস ম্যানেজমেন্ট সম্পন্ন করে তা ব্যাখ্যা করো। ৪
[Explain how an operating system performs memory and process management.]

২। ক) ওপেন সোর্স অপারেটিং সিস্টেম বলতে কী বোঝায়? এর দুটি উদাহরণ দাও। ২+১=৩
[What is meant by an open-source operating system? Give two examples of it.]
খ) মাল্টিটাস্কিং এবং মাল্টিপ্রসেসিং অপারেটিং সিস্টেমের মধ্যে পার্থক্য করো। ৩
[Distinguish between multitasking and multiprocessing operating systems.]
গ) হার্ডওয়্যার ও অ্যাপ্লিকেশন সফটওয়্যারের মাঝে সেতুবন্ধন তৈরিতে অপারেটিং সিস্টেমের অপরিহার্যতা মূল্যায়ন করো। ৪
[Evaluate the necessity of an operating system in creating a bridge between hardware and application software.]


উত্তরমালা (Model Answers)

১ নং প্রশ্নের উত্তর:

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

অপারেটিং সিস্টেমের দুটি প্রধান উদ্দেশ্য হলো:
১. ব্যবহারকারীর সুবিধা (Convenience): কম্পিউটার সিস্টেমকে ব্যবহারকারীর জন্য সহজে ব্যবহারযোগ্য করে তোলা।
২. রিসোর্সের সুষ্ঠু ব্যবস্থাপনা (Efficiency): কম্পিউটারের হার্ডওয়্যার রিসোর্সগুলোকে (যেমন- মেমোরি, সিপিইউ, ডিস্ক স্পেস) অত্যন্ত কার্যকর ও দক্ষভাবে পরিচালনা করা।


খ) কমান্ড লাইন ইন্টারফেস (CLI) এবং গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) এর মধ্যে পার্থক্য লিখ।
উত্তর:
কমান্ড লাইন ইন্টারফেস (CLI) এবং গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) এর মূল পার্থক্যগুলো নিচে দেওয়া হলো:

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

গ) একটি অপারেটিং সিস্টেম কীভাবে মেমোরি এবং প্রসেস ম্যানেজমেন্ট সম্পন্ন করে তা ব্যাখ্যা করো।
উত্তর:
অপারেটিং সিস্টেম কম্পিউটারের সবচেয়ে গুরুত্বপূর্ণ নিয়ন্ত্রক হিসেবে মেমোরি এবং প্রসেস ম্যানেজমেন্টের মতো জটিল কাজগুলো অত্যন্ত নিখুঁতভাবে সম্পন্ন করে।

মেমোরি ম্যানেজমেন্ট (Memory Management):
মেমোরি ম্যানেজমেন্ট হলো কম্পিউটারের প্রধান মেমোরি (RAM) পরিচালনা করার প্রক্রিয়া। যখন কোনো প্রোগ্রাম বা অ্যাপ্লিকেশন চালু করা হয়, তখন অপারেটিং সিস্টেম সেই প্রোগ্রামের জন্য প্রয়োজনীয় মেমোরি বরাদ্দ (Allocate) করে। আবার প্রোগ্রামটির কাজ শেষ হয়ে গেলে সেই বরাদ্দকৃত মেমোরি খালি (Deallocate) করে দেয়, যাতে অন্য কোনো প্রোগ্রাম তা ব্যবহার করতে পারে। মাল্টিটাস্কিংয়ের সময় কোন প্রোগ্রাম কতটুকু মেমোরি ব্যবহার করবে এবং মেমোরির কোন অংশটি বর্তমানে খালি আছে, তার একটি পূর্ণাঙ্গ ট্র্যাক বা হিসাব অপারেটিং সিস্টেম নিজের কাছে রাখে।

প্রসেস ম্যানেজমেন্ট (Process Management):
কম্পিউটারে চলমান প্রতিটি প্রোগ্রাম বা কাজকে প্রসেস বলা হয়। একটি কম্পিউটারে একই সাথে অনেকগুলো প্রসেস চলতে পারে। অপারেটিং সিস্টেম নির্ধারণ করে কোন প্রসেসটি কখন সেন্ট্রাল প্রসেসিং ইউনিট (CPU) ব্যবহার করবে এবং কতক্ষণ ব্যবহার করবে। একে প্রসেস শিডিউলিং (Process Scheduling) বলা হয়। এটি নিশ্চিত করে যে প্রতিটি প্রসেস সিপিইউর নির্দিষ্ট সময় পায় এবং কোনো প্রসেস যেন সিস্টেমকে অচল করে না দেয়। প্রসেস তৈরি করা, প্রসেস থামানো বা বাতিল করা এবং প্রসেসগুলোর মধ্যে পারস্পরিক যোগাযোগ ও সিঙ্ক্রোনাইজেশন নিশ্চিত করা প্রসেস ম্যানেজমেন্টের আওতাভুক্ত।


২ নং প্রশ্নের উত্তর:

ক) ওপেন সোর্স অপারেটিং সিস্টেম বলতে কী বোঝায়? এর দুটি উদাহরণ দাও।
উত্তর:
ওপেন সোর্স অপারেটিং সিস্টেম (Open Source Operating System) হলো এমন এক ধরনের অপারেটিং সিস্টেম, যার সোর্স কোড (Source Code) সবার জন্য উন্মুক্ত থাকে। যে কেউ বিনামূল্যে এই কোড দেখতে, পরিবর্তন করতে এবং নিজের প্রয়োজন অনুযায়ী কাস্টমাইজ বা পরিমার্জন করে নতুন ভার্সন তৈরি করতে পারে।

ওপেন সোর্স অপারেটিং সিস্টেমের দুটি উল্লেখযোগ্য উদাহরণ হলো:
১. লিনাক্স (Linux) - যেমন: উবুন্টু (Ubuntu)
২. অ্যান্ড্রয়েড (Android)


খ) মাল্টিটাস্কিং এবং মাল্টিপ্রসেসিং অপারেটিং সিস্টেমের মধ্যে পার্থক্য করো।
উত্তর:
মাল্টিটাস্কিং এবং মাল্টিপ্রসেসিং অপারেটিং সিস্টেমের মধ্যে প্রধান পার্থক্যগুলো নিচে বর্ণনা করা হলো:

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

গ) হার্ডওয়্যার ও অ্যাপ্লিকেশন সফটওয়্যারের মাঝে সেতুবন্ধন তৈরিতে অপারেটিং সিস্টেমের অপরিহার্যতা মূল্যায়ন করো।
উত্তর:
একটি কম্পিউটার সিস্টেমে অপারেটিং সিস্টেম (OS) হার্ডওয়্যার এবং অ্যাপ্লিকেশন সফটওয়্যারের মধ্যে প্রধান সংযোগকারী বা সেতুবন্ধন হিসেবে কাজ করে। অপারেটিং সিস্টেম ছাড়া একটি কম্পিউটার সম্পূর্ণ অচল। নিচে এই সেতুবন্ধন তৈরিতে অপারেটিং সিস্টেমের অপরিহার্যতা মূল্যায়ন করা হলো:

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

২. হার্ডওয়্যারের জটিলতা লুকিয়ে রাখা:
কম্পিউটারের হার্ডওয়্যারগুলো অত্যন্ত জটিল ইলেকট্রনিক সার্কিট দিয়ে তৈরি। সাধারণ ব্যবহারকারী বা অ্যাপ্লিকেশন ডেভেলপারদের পক্ষে এই হার্ডওয়্যারের নিজস্ব ভাষায় (মেশিন ল্যাঙ্গুয়েজ) নির্দেশ দেওয়া প্রায় অসম্ভব। অপারেটিং সিস্টেম এই জটিলতা লুকিয়ে রাখে (Hardware Abstraction) এবং একটি সহজ ইন্টারফেস প্রদান করে, যার মাধ্যমে অ্যাপ্লিকেশনগুলো সহজেই হার্ডওয়্যার ব্যবহার করতে পারে।

৩. রিসোর্স বণ্টন ও নিয়ন্ত্রণ:
একাধিক অ্যাপ্লিকেশন যখন একসাথে চালু থাকে, তখন তারা প্রত্যেকেই হার্ডওয়্যার রিসোর্স (RAM, CPU, I/O Device) ব্যবহার করতে চায়। অপারেটিং সিস্টেম একজন দক্ষ ম্যানেজারের মতো এই রিসোর্সগুলো বিভিন্ন অ্যাপ্লিকেশনের মধ্যে সুষমভাবে বণ্টন করে। কোন সফটওয়্যার কখন মেমোরি ব্যবহার করবে, কখন প্রসেসরের কাছে যাবে, তা OS নির্ধারণ করে দেয়। ফলে সিস্টেম ক্র্যাশ হওয়া থেকে রক্ষা পায়।

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