এই অংশে এখন পর্যন্ত যা আলোচনা হয়েছে তার সবকিছুই ছিল হার্ডওয়্যার — কম্পিউটারের শারীরিক অংশ। কিন্তু হার্ডওয়্যার একা কিছুই করে না; একে সত্যিকারের কাজে লাগানোর জন্য প্রয়োজন সফটওয়্যার, সেই নির্দেশাবলী যা তাকে বলে দেয় কী করতে হবে। এই পাঠে আমরা দেখব সফটওয়্যার যে দুটি বড় বিভাগে পড়ে।
সফটওয়্যার হলো নির্দেশাবলীর একটি সেট, যাকে বলা হয় প্রোগ্রাম, যা হার্ডওয়্যারকে ঠিক কোন কোন ধাপ পালন করতে হবে তা বলে দেয়। সফটওয়্যারের নিজস্ব কোনো শারীরিক রূপ নেই — আপনি এটি হাতে ধরতে পারবেন না — কিন্তু এটি একটি স্টোরেজ ডিভাইসে তথ্য হিসেবে জমা থাকে, প্রয়োজনে মেমরিতে লোড হয়, আর CPU দিয়ে কার্যকর হয়, যা এই অংশে আগে আলোচিত প্রায় সবকিছুকে একসাথে যুক্ত করে।
সিস্টেম সফটওয়্যার সরাসরি ব্যবহারকারীর জন্য কোনো কাজ সমাধান করার বদলে কম্পিউটার নিজেকে পরিচালনা করে আর অন্য সফটওয়্যারকে চালানোর জন্য একটি স্থিতিশীল প্ল্যাটফর্ম দেয়। সবচেয়ে গুরুত্বপূর্ণ উদাহরণ হলো অপারেটিং সিস্টেম (যা পরের পাঠে বিস্তারিত আলোচনা করা হবে) — Windows, macOS, Linux, Android, আর iOS সবগুলোই অপারেটিং সিস্টেম। সিস্টেম সফটওয়্যারের অন্য উদাহরণের মধ্যে আছে ইউটিলিটি সফটওয়্যার, যা ডিস্ক ক্লিনআপ বা অ্যান্টিভাইরাস স্ক্যানিং-এর মতো রক্ষণাবেক্ষণের কাজ করে, আর ডিভাইস ড্রাইভার, ছোট প্রোগ্রাম যা অপারেটিং সিস্টেমকে একটি নির্দিষ্ট হার্ডওয়্যার, যেমন প্রিন্টার বা গ্রাফিক্স কার্ড, এর সাথে যোগাযোগ করতে দেয়।
অ্যাপ্লিকেশন সফটওয়্যার (প্রায়ই শুধু "অ্যাপ" বলা হয়) একজন মানুষকে একটি নির্দিষ্ট, বাস্তব-জগতের কাজ করতে সাহায্য করার জন্য তৈরি। একটি ওয়ার্ড প্রসেসর আপনাকে ডকুমেন্ট লিখতে সাহায্য করে, একটি স্প্রেডশিট প্রোগ্রাম সংখ্যা নিয়ে কাজ করতে সাহায্য করে, একটি ওয়েব ব্রাউজার ওয়েবসাইট দেখতে সাহায্য করে, আর একটি মিডিয়া প্লেয়ার ফাইল দেখতে বা শুনতে সাহায্য করে। সিস্টেম সফটওয়্যারের বিপরীতে, কম্পিউটার চালাতে অ্যাপ্লিকেশন সফটওয়্যার আবশ্যক নয় — আপনি ঠিক সেই অ্যাপ্লিকেশনগুলোই ইনস্টল করেন যা আপনার ব্যক্তিগতভাবে প্রয়োজন, আর ভিন্ন ভিন্ন মানুষের কাছে সাধারণত সম্পূর্ণ ভিন্ন সেট ইনস্টল করা থাকে।
অ্যাপ্লিকেশন সফটওয়্যার কখনো সরাসরি হার্ডওয়্যারের সাথে কথা বলে না — এটি সেই সংযোগ সামলানোর জন্য সিস্টেম সফটওয়্যার, বিশেষ করে অপারেটিং সিস্টেমের উপর নির্ভর করে। একটি ওয়ার্ড প্রসেসর যখন একটি ফাইল প্রিন্টারে পাঠায়, তখন এটি কাজটি অপারেটিং সিস্টেমের হাতে তুলে দেয়, যা সঠিক ডিভাইস ড্রাইভার ব্যবহার করে আসলে প্রিন্টারের সাথে যোগাযোগ করে। এই স্তরায়নের কারণেই একই ওয়ার্ড প্রসেসর প্রতিটি সম্ভাব্য হার্ডওয়্যারের জন্য আবার লেখা ছাড়াই খুব ভিন্ন ভিন্ন কম্পিউটারে চলতে পারে।
| বিভাগ | কাজ | উদাহরণ |
|---|---|---|
| সিস্টেম সফটওয়্যার | কম্পিউটার পরিচালনা করে আর অন্য সফটওয়্যারকে সহায়তা করে | অপারেটিং সিস্টেম, ডিভাইস ড্রাইভার, ইউটিলিটি সফটওয়্যার |
| অ্যাপ্লিকেশন সফটওয়্যার | একজন মানুষকে একটি নির্দিষ্ট কাজ করতে সাহায্য করে | ওয়ার্ড প্রসেসর, ওয়েব ব্রাউজার, মিডিয়া প্লেয়ার, স্প্রেডশিট |
সীমারেখা ঝাপসা হতে পারে, কিন্তু প্রশ্নটি তবুও কাজ করে
একটি একক সফটওয়্যার মাঝে মাঝে এই সীমারেখা ঝাপসা করে দিতে পারে — যেমন একটি ফাইল ম্যানেজার একটি দৈনন্দিন অ্যাপের মতো মনে হয়, কিন্তু প্রায়ই এটি অপারেটিং সিস্টেমেরই অংশ হিসেবে বান্ডিল করা থাকে। সন্দেহ হলে জিজ্ঞাসা করুন সফটওয়্যারটি আসলে কীসের জন্য: কম্পিউটার চালু রাখার জন্য, নাকি একজন মানুষের জন্য একটি নির্দিষ্ট কাজ সম্পন্ন করার জন্য। এই প্রশ্নটি প্রায় সবকিছুই সঠিকভাবে আলাদা করে দেয়।
পরের পাঠে আমরা সিস্টেম সফটওয়্যারের সবচেয়ে গুরুত্বপূর্ণ অংশটি নিয়ে গভীরে যাব — অপারেটিং সিস্টেম — আর কম্পিউটার চালু করার প্রতিবার এটি আসলে কী করে।