(Prerequisites)
এই আর্টিকেলটি পড়ার আগে: Part 1: কম্পিউটার আর্কিটেকচার এবং Part 2: কম্পিউটার আর্কিটেকচারের বিবর্তন পড়ুন।এই দুটি আর্টিকেল পড়ার পর আপনি অপারেটিং সিস্টেমের কাজ বুঝতে পারবেন।
Operating System কিভাবে এসেছে?
আজ আমরা যখন আমাদের কম্পিউটারে কোনো প্রোগ্রাম চালাই, সেটা অনেক সহজ মনে হয়। শুধু ক্লিক করলেই কাজ চলে। কিন্তু আগের দিনে এমনটা ছিল না। তখনকার কম্পিউটার ছিল বিশাল বড় যন্ত্র, আর প্রোগ্রাম চালানোর জন্য মানুষকে মেশিন কোড লিখতে হতো – হ্যাঁ, ঠিক শূন্য এবং একের খেলা, ০ এবং ১!

কল্পনা করুন, আপনাকে প্রতিটি কাজের জন্য হাত দিয়ে এই ০ এবং ১ গুলি লিখতে হবে। ভুল হলে পুরো প্রোগ্রাম কাজ করবে না। তাই আগের দিনে কম্পিউটারের ব্যবহারটা খুব কঠিন এবং ঝুঁকিপূর্ণ ছিল।
আগের দিনের কম্পিউটারে প্রোগ্রাম চালানোর সমস্যা
- 
প্রোগ্রাম লেখা খুব ঝামেলার:
এখন আমরা কোড লিখলে কম্পাইলার সব ঠিক করে দেয়, কিন্তু তখন মানুষকে একেবারে মেশিন লেভেলে কোড লিখতে হতো। কোনো ছোট ভুল হলে প্রোগ্রাম পুরোপুরি ফেইল। বুঝতে পারছেন? একটাই ভুল, আর পুরো কম্পিউটার ‘হ্যাং’। - 
মেমোরি ম্যানেজ করা কঠিন:
RAM বা মেমোরি তখন স্বয়ংক্রিয়ভাবে ম্যানেজ হতো না। মানে, যদি আপনি একসাথে একাধিক প্রোগ্রাম চালাতে চাইতেন, তাহলে এক প্রোগ্রাম সহজেই অন্য প্রোগ্রামের ডেটা নষ্ট করে দিতে পারত। একে বলে মেমোরি কনফ্লিক্ট। - 
CPU বসে থাকে খালি:
CPU হলো কম্পিউটারের মস্তিষ্ক। কিন্তু আগের দিনে যেহেতু I/O ডিভাইস যেমন কীবোর্ড বা প্রিন্টার থেকে ডেটা আসার জন্য অপেক্ষা করতে হতো, CPU প্রায়ই ফাঁকা বসে থাকতো। ভাবুন, আপনার মস্তিষ্ক ফাঁকা বসে আছে, কেউ আপনাকে তথ্য না দিলে কিছুই করতে পারছেন না। - 
মানবিক ভুলের সম্ভাবনা অনেক বেশি:
হাতে হাতে কোড লিখে, মেশিন কোডের হাজার হাজার লাইনের মধ্যে কোনো একটা ভুল হলে পুরো প্রোগ্রাম কাজ করবে না। আবার ভুল ঠিক করা আরেকটা চ্যালেঞ্জ। 
এই সব ঝামেলা মোকাবেলার জন্যই আসে Operating System বা OS।
OS কি করে?
- এটা হলো সফটওয়্যারের এক ধরণের মধ্যস্থতাকারী।
 - হার্ডওয়্যার এবং প্রোগ্রামের মধ্যে OS কাজ করে।
 - ব্যবহারকারীকে সহজ ইন্টারফেস দেয়, যাতে প্রোগ্রাম চালানো আর ঝামেলার না হয়।
 - CPU, RAM, Storage, এবং I/O ডিভাইসগুলোকে সঠিকভাবে ম্যানেজ করে।
 
সহজ কথায় বললে, OS হলো সেই বন্ধু, যিনি আমাদের কথা বোঝে, হার্ডওয়্যারের কাছে নির্দেশ দেয়, আর আমরা শুধু চাইলে কাজটা শেষ করি। আমরা শুধু কম্পিউটারের সাথে কথা বলি, OS সেটা বুঝে করে দেয়।
OS এর Evolution এবং History
আমরা আজ যে অপারেটিং সিস্টেম (Windows, macOS, Linux, Android ইত্যাদি) ব্যবহার করি, এটা একদিনে তৈরি হয়নি। অনেক বছরের পরিবর্তন, পরীক্ষানিরীক্ষা, আর উন্নয়নের মধ্য দিয়ে আজকের অবস্থায় এসেছে।
চলুন দেখি ধাপে ধাপে কীভাবে অপারেটিং সিস্টেম তৈরি হলো।
১. একদম শুরুতে, কোনো OS ছিল না
প্রথম দিকের কম্পিউটারগুলো ছিল বড়, ভারী, দামি যন্ত্র, যেখানে কোনো অপারেটিং সিস্টেম ছিল না।
তখন মানুষকে প্রোগ্রাম চালাতে হতো মেশিন কোড (0 আর 1) লিখে, মানে সরাসরি CPU কে নির্দেশ দিতে হতো।
- প্রতিটি কাজ হাতে লিখে দিতে হতো।
 - একটা প্রোগ্রাম শেষ না হওয়া পর্যন্ত অন্য কিছু চালানো যেত না।
 - ভুল হলে পুরো সিস্টেম ক্র্যাশ করত।
 
এই প্রক্রিয়াটা এত ধীর ছিল যে একেকটা প্রোগ্রাম চালাতে ঘন্টার পর ঘন্টা লেগে যেত।
২. Batch Processing System এর আগমন
সময় বাঁচানোর জন্য একটা বুদ্ধি বের হলো , একসাথে অনেক প্রোগ্রাম “batch” আকারে জমা দেওয়া।
কম্পিউটার সেগুলো একটার পর একটা চালাবে, মানুষকে বসে থাকতে হবে না।
সুবিধা:
- মানুষের সময় বাঁচলো
 - একের পর এক কাজ স্বয়ংক্রিয়ভাবে চললো
 
অসুবিধা:
- কোনো ইন্টারঅ্যাকশন ছিল না (রান টাইমে কিছু পরিবর্তন করা যেত না)
 - যদি মাঝখানে কোনো প্রোগ্রাম ক্র্যাশ করত, পুরো ব্যাচ থেমে যেত
 
তবুও, এটা ছিল প্রথমবারের মতো কম্পিউটারে অপারেটিং সিস্টেমের ধারণা আসার শুরু।
৩. Multiprogramming ও Time-Sharing , বড় পরিবর্তন
কম্পিউটার প্রযুক্তি উন্নত হতে লাগলো , তখন CPU অনেক দ্রুত কাজ করতে পারত।
তখন বিজ্ঞানীরা ভাবলেন, “যদি একাধিক প্রোগ্রাম একই সময়ে মেমরিতে রাখা যায়?”
তখনই জন্ম নিল Multiprogramming System , যেখানে CPU এক প্রোগ্রামকে অপেক্ষা করিয়ে আরেকটা চালাতে পারে।
ফলে CPU একটুও অলস বসে থাকত না।
এরপর এল Time-Sharing System , CPU-র সময়কে ছোট ছোট ভাগে ভাগ করে একাধিক ইউজারকে চালাতে দেওয়া হলো।
এখন অনেক ইউজার একসাথে একই কম্পিউটার ব্যবহার করতে পারছে!
এখানেই আধুনিক OS-এর বীজ রোপণ হয়।
৪. UNIX , অপারেটিং সিস্টেমে বিপ্লব
১৯৬০-৭০ এর দিকে Bell Labs-এর দুই প্রতিভাবান ইঞ্জিনিয়ার Ken Thompson আর Dennis Ritchie তৈরি করেন UNIX।
UNIX শুধু একটা OS ছিল না , এটা একটা দর্শন (philosophy) ছিল।
তারা বলেছিলেন:
“Do one thing, and do it well.”
মানে প্রতিটি প্রোগ্রাম ছোট হবে, কিন্তু একটা নির্দিষ্ট কাজ খুব ভালোভাবে করবে।
UNIX-এর বৈশিষ্ট্য:
- Multiuser (একাধিক ইউজার একসাথে কাজ করতে পারে)
 - Multitasking (একাধিক প্রোগ্রাম একই সময়ে চালানো যায়)
 - Hierarchical File System (ফোল্ডার ও ফাইলের সংগঠিত স্ট্রাকচার)
 - Portability (বিভিন্ন মেশিনে চালানো যায়)
 - Command-line tools ও Shell
 

এখান থেকেই UNIX-এর সন্তানরা তৈরি হলো, Linux, BSD, এবং পরবর্তীতে macOS (Darwin ভিত্তিক)।
এখনকার প্রায় সব সার্ভার OS-এর শেকড় UNIX-এ।
৫. Personal Computer যুগ, OS সাধারণ মানুষের ঘরে
১৯৮০ সালের দিকে Personal Computer (PC) জনপ্রিয় হতে শুরু করলো।
এখন আর শুধু গবেষণাগার বা কোম্পানি নয়, সাধারণ মানুষও কম্পিউটার ব্যবহার করতে পারছে।
এ সময় Microsoft নিয়ে আসে MS-DOS, পরে আসে Windows।
একই সময় Apple নিয়ে আসে Mac OS , যেখানে GUI (Graphical User Interface) ছিল, অর্থাৎ মাউস ও আইকন দিয়ে কাজ করা যেত।
GUI এর কারণে কম্পিউটার ব্যবহার করা অনেক সহজ হয়ে গেল, মানুষ কোড না লিখে ক্লিক করেই কাজ করতে পারছে।
৬. আধুনিক যুগ, Networking, Security, এবং Cloud
আজকের দিনে অপারেটিং সিস্টেম শুধু মেমরি বা CPU ম্যানেজ করে না বরং এটা পুরো ইকোসিস্টেম ম্যানেজ করে।
- নেটওয়ার্ক ও ইন্টারনেট সংযোগ
 - সিকিউরিটি ও ইউজার পারমিশন ম্যানেজমেন্ট
 - ভার্চুয়ালাইজেশন ও ক্লাউড কম্পিউটিং
 - মোবাইল ডিভাইস ও এমবেডেড সিস্টেমে অপারেটিং সিস্টেম
 
আজকের Windows, macOS, Linux, Android, iOS, সবগুলোই এই দীর্ঘ বিবর্তনের ফল।
টাইমলাইনে সংক্ষেপে
| সময়কাল | সিস্টেম | বৈশিষ্ট্য | 
|---|---|---|
| 1940s-50s | No OS | ম্যানুয়াল মেশিন কোড, ব্যাচহীন সিস্টেম | 
| 1950s | Batch System | একসাথে কাজ জমা, কম ইন্টারঅ্যাকশন | 
| 1960s | Multiprogramming & Time-Sharing | একাধিক প্রোগ্রাম একসাথে | 
| 1970s | UNIX | Multiuser, Multitasking, Portability | 
| 1980s | PC OS (DOS, Windows, Mac OS) | GUI ও সাধারণ ইউজার | 
| 2000s+ | Modern OS (Linux, Android, Cloud) | নেটওয়ার্ক, সিকিউরিটি, ভার্চুয়ালাইজেশন | 
OS কিভাবে লোড হয় এবং প্রোগ্রাম কিভাবে চলে
আমরা প্রতিদিন কম্পিউটার বা ফোন চালাই, কিন্তু ভেবে দেখেছেন কি, পাওয়ার বাটনে চাপ দেওয়ার পর ভেতরে কী ঘটে?
চলুন দেখি ধাপে ধাপে কম্পিউটার কিভাবে চালু হয়, OS কিভাবে লোড হয়, আর একটা প্রোগ্রাম আসলে কিভাবে চলে।
Step 1: Power On — সবকিছুর শুরু
কম্পিউটারে পাওয়ার দিলেই প্রথমে চালু হয় একটুখানি সফটওয়্যার, যেটা থাকে ROM-এ (Read Only Memory)।
এটার নাম হলো BIOS (Basic Input/Output System) বা আধুনিক সিস্টেমে UEFI।
BIOS-এর কাজ হলো:
- কম্পিউটারের হার্ডওয়্যার ঠিকঠাক আছে কিনা দেখা (RAM, ডিস্ক, কীবোর্ড ইত্যাদি)।
 - তারপর খুঁজে বের করা “কোথায় OS আছে?” (যেমন হার্ডডিস্ক, SSD, বা USB)।
 
এই ধাপটাকে বলা হয় POST (Power-On Self Test)।
Step 2: Bootloader — OS কে ডাকার কাজ
যখন BIOS বুঝে যায় OS কোথায় আছে, তখন সে OS-এর একটা ছোট অংশ চালায়, যেটাকে বলে Bootloader।
Bootloader-এর কাজ হলো:
- OS-এর মূল ফাইলগুলো মেমরিতে লোড করা
 - CPU-কে নিয়ন্ত্রণ হস্তান্তর করা
 
উদাহরণ:
- Linux-এ GRUB (GNU GRand Unified Bootloader)
 - macOS ও Windows-এ নিজস্ব Bootloader থাকে
 
এটাকে ভাবুন, Bootloader হলো OS-কে ঘুম থেকে ডেকে তোলা “alarm clock”
Step 3: Kernel Load — OS এর heart জেগে ওঠে
Bootloader OS-এর মূল অংশ Kernel-কে RAM-এ লোড করে।
Kernel আসলে পুরো OS-এর “heart” —
এটাই CPU, Memory, Disk, ও অন্যান্য ডিভাইসের সাথে যোগাযোগ করে।
Kernel এখন থেকে পুরো সিস্টেমের নিয়ন্ত্রণ নেয়।
এরপর OS-এর বাকি অংশ (যেমন ড্রাইভার, সার্ভিস, ইউজার ইন্টারফেস) চালু হয়।
Step 4: User Interface — আপনি কম্পিউটার দেখতে পান
এখন OS পুরোপুরি লোড হয়েছে, তাই আপনি দেখতে পান
- Login Screen (GUI বা Command Line)
 - ডেস্কটপ বা টার্মিনাল
 - এবং আপনি কম্পিউটার “ব্যবহার” করতে পারেন
 
এই পর্যায়ে OS প্রস্তুত, আপনিও প্রস্তুত, প্রোগ্রাম চালানোর জন্য।
Step 5: প্রোগ্রাম কিভাবে চলে
আপনি যখন কোনো প্রোগ্রাম চালান (যেমন Browser বা VS Code), তখন এর পেছনে অনেক কিছু ঘটে:
- 
Program Load:
OS সেই প্রোগ্রামের কোড Storage (SSD/HDD) থেকে RAM-এ কপি করে। - 
Process তৈরি:
OS একটা নতুন Process তৈরি করে (মানে প্রোগ্রামের চলমান অবস্থা)।
CPU এখন ওই Process-এর ইনস্ট্রাকশনগুলো একে একে চালাতে থাকে। - 
Memory Management:
OS দেখে কোন প্রোগ্রাম কত RAM ব্যবহার করছে।
যাতে এক প্রোগ্রাম অন্য প্রোগ্রামের মেমরি না ছুঁয়ে ফেলে।
(আগের দিনে যেমন এক প্রোগ্রাম অন্যটার ডেটা নষ্ট করতে পারত, এখন OS সেটা হতে দেয় না)। - 
Scheduling:
যদি একাধিক প্রোগ্রাম একসাথে চলে, OS CPU এর সময় ভাগ করে দেয় (time slice অনুযায়ী)।
ফলে সব প্রোগ্রাম একসাথে চলার মতো মনে হয়। - 
I/O Handling:
যখন কোনো প্রোগ্রাম ফাইল খুলতে চায় বা কীবোর্ড ইনপুট নিতে চায়, OS সেই রিকোয়েস্ট ম্যানেজ করে।
প্রোগ্রামকে সরাসরি হার্ডওয়্যারের সাথে কথা বলতে দেয় না, বরং নিজে মাঝখানে থেকে নিরাপদভাবে করে দেয়। 
সব মিলিয়ে একটা প্রোগ্রাম চালানো মানে হলো — CPU, RAM, ROM আর OS-এর টিমওয়ার্ক!
| কম্পোনেন্ট | কাজ কী | 
|---|---|
| ROM | BIOS/UEFI এখানে থাকে — কম্পিউটার চালু করার সূচনা করে | 
| RAM | প্রোগ্রাম চলাকালীন সব ডেটা অস্থায়ীভাবে রাখে — দ্রুত কিন্তু ক্ষণস্থায়ী | 
| CPU | প্রোগ্রামের ইনস্ট্রাকশন একে একে চালায় — পুরো সিস্টেমের “মাথা” | 
প্রোগ্রাম চালানোর ধাপ
| ধাপ | কোথা থেকে কোথায় | কী হয় | 
|---|---|---|
| 1 | হার্ডডিস্ক থেকে RAM | প্রোগ্রাম ফাইল মেমরিতে লোড হয় | 
| 2 | RAM থেকে CPU | CPU একে একে ইনস্ট্রাকশন চালায় | 
| 3 | প্রোগ্রাম শেষ | সব ডেটা মেমরি থেকে মুছে যায় | 
সবকিছুর সারমর্ম
- Power দিলে BIOS/UEFI চালু হয়
 - BIOS খুঁজে পায় OS কোথায় আছে
 - Bootloader Kernel-কে RAM-এ তোলে
 - Kernel (OS এর heart) সিস্টেমের নিয়ন্ত্রণ নেয়
 - ইউজার ইন্টারফেস আসে, আপনি প্রোগ্রাম চালান
 - OS নিরাপদভাবে CPU, RAM, Disk ম্যানেজ করে
 
Operating System হলো সেই নীরব পরিচালক, যে পর্দার আড়াল থেকে পুরো কম্পিউটারের নাটকটা সুন্দরভাবে চালায়。
Next Part: CPU এবং Process Management - CPU কীভাবে প্রসেস ম্যানেজ করে, Scheduling Algorithm, এবং Memory Management নিয়ে বিস্তারিত আলোচনা আসছে।