আধুনিক বিজ্ঞান ও প্রযুক্তির এক বিস্ময়কর আবিষ্কার কম্পিউটার । কিন্তু সফটওয়্যার ছাড়া এ বিস্ময়কর আবিষ্কার অর্থহীন । কম্পিউটার সিস্টেমের দুটি পদ্ধতির মধ্যে একটি দৃশ্যমান ও স্পর্শনীয় ; আরেকটি অদৃশ্য ও স্পর্শহীন । দৃশ্যমান ও স্পর্শনীয় ভৌত যন্ত্রাংশগুলিই মূলত কম্পিউটার হার্ডওয়্যার । আর অদৃশ্য ও স্পর্শহীন নির্দেশনাসামগ্রীই হল কম্পিউটার সফটওয়্যার । কম্পিউটার সফটওয়্যার ব্যবহার করে বিভিন্ন ধরনের কাজ সহজেই করা যায় শুধু এমনটি নয় । কম্পিউটারে সফটওয়্যার ছাড়া কোন কাজ করাই সম্ভব নয় এমনকি কম্পিউটার সচল করতে গেলে ও সফটওয়্যার প্রয়োজন । হার্ডওয়্যারের উন্নতির সাথে সাথে সফটওয়্যারের ও অনেক উন্নতি সাধিত হয়েছে এবং প্রতিনিয়ত এর উন্নতি ক্রমবর্ধমান । সর্বশেষ আবিষ্কৃত কৃত্রিম বুদ্ধিমত্তা বা এআই টেকনোলজি কম্পিউটারের সফটওয়্যারের ক্রমবর্ধমান উন্নতিরই ফসল । ভবিষ্যতে হয়তো সফটওয়্যারের এসব উন্নতি মানুষের কাজের ক্ষেত্রকে আরো দখল করে নিবে ।
কম্পিউটার সফটওয়্যার কি
সমস্যা সমাধান বা কার্য সম্পাদনের উদ্দেশ্যে কম্পিউটারের ভাষায় ধারাবাহিকভাবে লিখিত সুশৃঙ্খল কতকগুলো নির্দেশের সমষ্টিকে প্রোগ্রাম বলে। প্রোগ্রাম বা প্রোগ্রাম সমষ্টি যা কম্পিউটারের হার্ডওয়্যার এবং ব্যবহারকারীর মধ্যে সম্পর্ক সৃষ্টির মাধ্যমে হার্ডওয়্যারকে কার্যক্ষম রাখে, তাকে সফটওয়্যার বলে। সফটওয়্যার এক অদৃশ্য শক্তি। সফটওয়্যার ছাড়া হার্ডওয়্যার অর্থহীন। আরো বিস্তারিতভাবে বললে , গণকযন্ত্র কম্পিউটারের বিভিন্ন যত্রাংশকে কর্মক্ষম করা, পরিচালনা করা এবং কোনো বিশেষ ব্যবহারিক কাজ সম্পন্ন করার নিমিত্তে যে লিখিত সুশৃঙ্খল নির্দেশনাক্রম তথা প্রোগ্রাম এবং পুনর্ব্যবহারযোগ্য নির্দেশনাক্রম তথা রুটিন বা ফাংশন ব্যবহার করা হয় (যাদের মধ্যে কম্পিউটারের পরিচালনা করার অদৃশ্য সিস্টেম বা অপারেটিং সিস্টেম অন্তর্ভুক্ত), সেইসব অদৃশ্য শক্তিগুলোকে একত্রে সাধারণভাবে কম্পিউটার সফটওয়্যার বা কম্পিউটার নির্দেশনাসামগ্রী বলা হয়।
কম্পিউটার সফটওয়্যারের প্রকারভেদ
কম্পিউটার সফটওয়্যার বা নির্দেশনাসামগ্রীকে প্রধানত দুইটি শ্রেণীতে ভাগ করা যায়। একটি হল কম্পিউটারের পরিচালনা ব্যবস্থা (অপারেটিং সিস্টেম) নির্দেশনাসামগ্রী বা সিস্টেম সফটওয়্যার, যা কম্পিউটারের হাডৃওয়্যারের বিভিন্ন যন্ত্রাংশগুলির মধ্যে কার্যকলাপের সমন্বয় সাধন করে এগুলিকে কর্মক্ষম করে তুলে । যেমন- উইন্ডোজ অপারেটিং সিস্টেম , লিনাক্স অপারেটিং সিস্টেম ইত্যাদি।
দ্বিতীয়টি হল ব্যবহারিক নির্দেশনাসামগ্রী বা আ্যপ্লিকেশন সফটওয়্যার, যেগুলিকে বিশেষ ব্যবহারিক কাজের উদ্দেশ্যে রচনা করা হয় , এগুলোতে কম্পিউটারকে এমন সব নির্দেশনা দেওয়া হয় যা শুধু ঐ বিশেষ কাজ করতেই কম্পিউটার বাধ্য থাকে । যেমন - ওয়ার্ড প্রসেসিং সফটওয়্যার যাতে লেখালেখির সকল কাজই সম্পাদনা করা যায় , হিসাবনিকাশের জন্য স্প্রেডশিট, ছবি সম্পাদনা করার জন্য ছবি সম্পাদনা সফটওয়্যার , ভিডিও সম্পাদনা করার জন্য ভিডিও সম্পাদনা সফটওয়্যার ইত্যাদি।
এছাড়াও তৃতীয় এক শ্রেণীর সফটওয়্যার আছে, যার নাম নেটওয়ার্ক সফটওয়্যার, যেগুলি একটি জালসদৃশ ব্যবস্থা বা নেটওয়ার্ক গঠনকারী কম্পিউটারগুলির মধ্যকার যোগাযোগে সমন্বয় সাধন করে থাকে ।
আরও এক ধরনের সফটওয়্যার আছে যেগুলির কাজ হল মানুষকে বিভিন্ন ধরনের প্রোগ্রাম রচনা করতে সাহায্য করা। এগুলিকে সংক্ষেপে প্রোগ্রামিং টুল বলা হয়। অনেক সময় এগুলিকে একত্রে প্রোগ্রামিং সফটওয়্যার নামেও ডাকা হয়।
বহনযোগ্য প্রোগ্রাম (Portable program): যে সফটওয়্যার install বা setup দিতে হয় না, তাকে Portable software বলে।
সিস্টেম সফটওয়্যার
সিস্টেম সফটওয়্যার হলো কম্পিউটারের নিয়ন্ত্রক। এটি কম্পিউটারের হার্ডওয়্যার ও ব্যবহারিক প্রোগ্রামের মধ্যে যোগসূত্র রচনা ও রক্ষা করে। সিস্টেম সফটওয়্যার ছাড়া কম্পিউটার অচল। তাই কম্পিউটারকে সঠিকভাবে পরিচালনা ও নিয়ন্ত্রণের জন্য যে সকল প্রোগ্রাম বা প্রোগ্রাম সমষ্টি দরকার তাদেরকে সিস্টেম সফটওয়্যার বলে। সিস্টেম সফটওয়্যার কম্পিউটারের বিভিন্ন ইনপুট-আউটপুট ডিভাইসের মধ্যে কাজের সমন্বয় রক্ষা করে ব্যবহারিক প্রোগ্রাম চালনার জন্য কম্পিউটারকে তৈরি রাখে। আবার কম্পিউটারের বিভিন্ন ইউনিটের মধ্যে কাজের সমন্বয় রক্ষা করে। DOS, Windows (XP, NT, Vista, 95, 98, 2000, 7, 8, 10 etc), Linux, Unix, Mac OS, Solaries ইত্যাদি হলো সিস্টেম সফটওয়্যারের উদাহরণ। আবার Compiler, Interpretor, Assembler প্রোগ্রামসমূহও সিস্টেম সফটওয়্যারের অন্তর্গত।
- অপারেটিং সিস্টেম (Operating System সংক্ষেপে OS) হলো এমন কতকগুলো প্রোগ্রামের সমষ্টি যেগুলোর সাহায্যে কম্পিউটারের সকল হার্ডওয়্যার ও সফটওয়্যার নিয়ন্ত্রণ (Controls), তত্ত্বাবধান (Supervise) এবং সফটওয়্যারগুলোর পরিচালনা, নিয়ন্ত্রণ ও কার্যকরী (Execute) করতে সমর্থন ও সাহায্য করে। অপারেটিং সিস্টেম ব্যবহারকারীর সাথে হার্ডওয়্যার ও সফটওয়্যারের যোগাযোগ স্থাপন করে। প্রাথমিক অবস্থায় অপারেটিং সিস্টেম তৈরি করা হয়েছিল মেইনফ্রেম কম্পিউটারের জন্য ১৯৫১ সালে। অপারেটিং সিস্টেমটি যুক্তরাষ্ট্রের জেনারেল মটর রিসার্চ ল্যাবরেটরী কর্তৃক আইবিএম কর্পোরেশনের জন্য তৈরি করা হয়েছিল। পিসিতে অপারেটিং সিস্টেম ব্যবহৃত হতে থাকে ১৯৭১ সাল থেকে। এ অপারেটিং সিস্টেমের নাম ছিল CP/M ।
- ডিভাইস ড্রাইভার বা সফটওয়্যার ড্রাইভার (Device Driver or Software Driver) হলো এক ধরনের হাইলেভেল কম্পিউটার প্রোগ্রাম যা কোন হার্ডওয়্যার ডিভাইসের সাথে উভমুখী যোগাযোগের মাধ্যমে তাকে পরিচালনা করে এবং তার সামর্থ্যকে কাজে লাগায়। উদাহরণস্বরূপ- বাজার থেকে নতুন কেনা কোন প্রিন্টার কম্পিউটারে লাগিয়ে প্রিন্ট করতে হলে ঐ প্রিন্টারের ডিভাইস ড্রাইভার বা সফটওয়্যার ড্রাইভার ইন্সটল করতে হবে।
- ইউটিলিটি প্রোগ্রাম (Utility Program): System Tools-এর সাথে কিছু ইউটিলিটি প্রোগ্রাম সংযোজন করা থাকে। সিস্টেম সংক্রান্ত বিভিন্ন ত্রুটি শনাক্তকরণ এবং তা সংশোধন, ভাইরাস চেক করা, ডিস্ক পার্টিশন ইত্যাদি করার জন্য এসব ইউটিলিটি প্রোগ্রাম ব্যবহৃত হয়। Disk Defragmenter, Scan Disk, Drive Converter, Compression, System Monitor, Antivirus ইত্যাদি ইউটিলিটি প্রোগ্রামের অন্তর্ভুক্ত। এ সমস্ত সফটওয়্যারকে মেইনটেন্যান্স টুলসও বলা হয়। ডিস্ক ডিফ্রেগমেন্টার হার্ডডিস্কের ডেটাসমূহ বা তথ্যসমূহ সাজিয়ে রাখে। ফলে প্রক্রিয়াকরণের সময় কম্পিউটার তাড়াতাড়ি প্রয়োজনীয় ডেটাসমূহ খুঁজে পায়। এতে প্রোগ্রাম লোড হতে কম সময় লাগে এবং প্রোগ্রাম দ্রুত রান হয় বিধায় কম্পিউটারের স্পিড ঠিক থাকে।
ব্যবহারিক বা অ্যাপ্লিকেশন সফটওয়্যার
ব্যবহারিক সমস্যা সমাধানের জন্য ব্যবহৃত প্রোগ্রামকে ব্যবহারিক বা অ্যাপ্লিকেশন প্রোগ্রাম বলা হয়।
ক) অ্যাপ্লিকেশন সুনির্দিষ্ট প্রোগ্রাম বা কাস্টমাইজড প্রোগ্রাম (Customized Software): ব্যবহারকারী নিজে সাধারণত তার এক বা একাধিক সমস্যা সমাধানের উদ্দেশ্য নিয়ে যে অ্যাপ্লিকেশন প্রোগ্রাম তৈরি করে থাকেন, তাকে কাস্টমাইজড বা ব্যবহারকারী লিখিত প্রোগ্রাম বলে। যেমন: কোন একটি পাবলিকেশন্স তার সকল হিসাব নিকাশ করার জন্য একজন দক্ষ প্রোগ্রামার দিয়ে একটি একাউন্টিং সফটওয়্যার তৈরি করলো। এ একাউন্টিং সফটওয়্যারটি ঐ প্রতিষ্ঠানের জন্য একটি কাস্টমাইজড একাউন্টিং সফটওয়্যার। ব্যাংকিং কাজে ব্যবহৃত বিভিন্ন ধরনের ব্যাংকিং সফটওয়্যার, ইলেকট্রনিস কমার্স, পেরোল সিস্টেম ইত্যাদি হলো কাস্টমাইজড প্রোগ্রাম। কাস্টমাইজড প্রোগ্রাম মূলত ব্যাংক, বীমা, হাসপাতাল ও বিভিন্ন বাণিজ্যিক প্রতিষ্ঠানে ব্যবহৃত হয়ে থাকে।
খ) সাধারণ ব্যবহারিক প্রোগ্রাম বা প্যাকেজ প্রোগ্রাম (Package Software): বিভিন্ন ধরনের ব্যবহারিক কাজের জন্য তৈরি করা যেসব প্রোগ্রাম বাজারে কিনতে পাওয়া যায়, তাকে প্যাকেজ প্রোগ্রাম বলা হয়। বাণিজ্যিকভাবে সফলতা লাভের জন্য বড় বড় সফটওয়্যার নির্মাতা প্রতিষ্ঠান ক্রেতাদের চাহিদার দিকে লক্ষ্য রেখে প্যাকেজ প্রোগ্রাম তৈরি করে থাকে। ব্যবহারকারী এ সকল প্রেগ্রামের কোনরূপ পরিবর্তন, সংযোজন বা সংকোচন করতে পারেন না। যেমন-
- ওয়ার্ড প্রসেসিং সফটওয়্যার: MS Word, Note Pad ইত্যাদি।
- স্প্রেডসিট অ্যানালাইসিস সফটওয়্যার: MS Excel, LOTUS ইত্যাদি।
- মাল্টিমিডিয়া সফটওয়্যার: MS Power Point, Windows media player, VLC player ইত্যাদি।
- ওয়েব ব্রাউজার: ইন্টারনেট এক্সপ্লোরার, গুগল ক্রোম, সাফারি, মজিলা ফায়ারফক্স ইত্যাদি।
- গ্রাফিক্স সফটওয়্যার: Adobe Photoshop, Adobe Illustrator, MS Paint ইত্যাদি।
- ডেটাবেজ সফটওয়্যার: ওরাকল, মাইক্রোসফট অ্যাকসেস ইত্যাদি।
- ফাইল কমপ্রেশন সফটওয়্যার: WinZip, WinRAR ইত্যাদি।
মালিকানা ভিত্তিক সফটওয়্যার
- ওপেন সোর্স সফটওয়্যার (Open Source Software) এর সোর্স কোড সকলের জন্য উন্মুক্ত। এই সকল সফটওয়্যার বিনা মূল্যে সংগ্রহ করা যায় এবং যে কেউ এই সকল কোড তার খুশীমত পরিবর্তন, পরিবর্ধন, পরিমার্জন ইত্যাদি করে নিজে ব্যবহার ও অন্যকে ব্যবহারের জন্য বিতরণ করতে পারে। যেমন- Firefox, Google Chrome, Opera, Drupal, Java, MySQL, Linux, Ubuntu, wordpress, python, php, VLC Media player ইত্যাদি।
- ক্লোজড সোর্স বা প্রোপাইটরি সফটওয়্যার (Closed Source Software) এর সোর্স কোড সকলের জন্য উন্মুক্ত থাকে না, যে কেউ চাইলেই তা পরিবর্তন, পরিবর্ধন বা পরিমার্জন করতে পারে না। এ সকল সফটওয়্যারর স্বত্ত্ব বা মালিকানা আইনগতভাবে নির্দিষ্ট করা থাকে। যেমন- Microsoft Windows, MS Office, Photoshop, Matlab, Oracle, Microsoft Access, Microsoft SQL Server, Visual Foxpro, COBOL, FORTAN, C, C++ ইত্যাদি।