একজন প্রযুক্তি ব্যবহারকারী হিসেবে, হতে পারে তা কম্পিউটার কিংবা মোবাইল, আপনার মনে কখনো না কখনো এই প্রশ্নটিই নিশ্চয়ই এসেছে যে, এই মোবাইল বা কম্পিউটার গুলো কিভাবে কাজ করে আর কিভাবেই বা এগুলো আমাদের অনেক কঠিন কঠিন কাজ খুব সহজেই করে ফেলতে পারে? ঠিক ধরেছেন। আজকে আমাদের আলোচনার বিষয় হলো সফটওয়্যার নিয়ে। আজকের পোস্টে আমরা যে বিষয়গুলো আলোকপাত করতে চলছি তা হলো
সফটওয়্যার কি?
প্রথমেই বলে রাখি সফটওয়্যার হলো একগুচ্ছ নির্দেশনামা। আমরা জানি যে, কাউকে দ্বারা কোন কাজ করাতে হলে প্রথমে তাকে সঠিকভাবে নির্দেশ দিতে হয়। সে কিভাবে কাজটি পরিচালনা করবে এবং এ বিষয়ে যাবতীয় তথ্যাবলি আগে থেকেই তাকে বলে দিতে হয়। সফটওয়্যার হল তেমনি কিছু নির্দেশ নামা যা কম্পিউটার বুঝতে পারে এবং সেই নির্দেশনা অনুযায়ী আমাদের অভিষ্ঠ কার্য পরিচালনা করতে পারে।
টেকনিক্যালি যদি বলতে হয়, তাহলে সফটওয়্যার হলো এমন কিছু প্রোগ্রামের সমষ্টি যা কোন সমস্যা সমাধানের জন্য ধারাবাহিকভাবে সাজানো একগুচ্ছ নির্দেশনামা।
এখন প্রোগ্রাম কি? প্রোগ্রাম হল কম্পিউটার বুঝতে পারে এমন ভাবে লিখিত কিছু আদেশ। আর এই আদেশগুলোর লেখা হয় কোডিং এর মাধ্যমে। অর্থাৎ কোডিং এর মাধ্যমে লিখিত কতিপয় কিছু প্রোগ্রাম এর সমষ্টিই হল সফটওয়্যার। সফটওয়্যার ঠিক করে দেয় কম্পিউটারের হার্ডওয়ার এর অংশগুলো কিভাবে পরিচালিত হবে কিংবা কিভাবে একটি আরেকটির সাথে ইন্টারঅ্যাক্ট করবে। তাহলে বলা যায় সফটওয়্যার হলো কম্পিউটার জগতের এক ধরনের ব্রেইন এর মত। যেখান থেকে সকল নির্দেশ আদেশ দেওয়া হয় এবং সেই আদেশ অনুযায়ী বাকি হার্ডওয়ার বা যন্ত্রাংশগুলো কাজ করে। আশা করি বিষয়টি আপনাদের কাছে পরিষ্কার হয়েছে।
সফটওয়্যার কীভাবে কাজ করে?
আচ্ছা বুঝলাম, সফটওয়্যার হল কম্পিউটারের জন্য কিছু নির্দেশনামা। এখন প্রশ্ন হল এই সফটওয়্যার গুলো কিভাবে কাজ করে?
খুব বেসিক থেকে বলব, তাই বোধ করি বুঝতে কোনো সমস্যা হবে না। একজন প্রোগ্রামার আইটি এক্সপার্ট যখন কম্পিউটারের জন্য ইনস্ট্রাকশন লেখেন তখন লেখা হয় প্রোগ্রামিং ল্যাঙ্গুয়েজ এর মাধ্যমে। আশা করি আপনি প্রোগ্রামিং ল্যাঙ্গুয়েজ কি তা জানেন। তারপর সেই প্রোগ্রামিং ল্যাঙ্গুয়েজ কম্পিউটারের বোধগম্য মেশিন ল্যাঙ্গুয়েজে (বাইনারী কোডঃ ০ এবং ১) ইন্টারপ্রেট বা রূপান্তরিত হয়।কম্পিউটারের Built-in কিছু ডিভাইস এই মেশিন ল্যাঙ্গুয়েজ গুলো পড়তে সক্ষম। এরপর সেই মেশিন ল্যাঙ্গুয়েজ গুলোর উপর ভিত্তি করে কম্পিউটার তার কার্য পরিচালনা করে। আর এটিই হল সফটওয়্যার কিভাবে কাজ করে তার একটি বেসিক ধারণা। বিস্তারিত জানতে হলে আপনাকে এটা নিয়ে আরো হায়ার স্টাডি করতে হবে।
সফটওয়্যারের বিভিন্ন প্রকারভেদ?
এবার আসি সফটওয়্যার এর বিভিন্ন প্রকারভেদ নিয়ে। কম্পিউটার সফটওয়্যারগুলো কে মূলত তিন ভাগে ভাগ করা যায়। এগুলো হলোঃ
- অপারেটিং সিস্টেম বা সিস্টেম সফটওয়্যার।
- এপ্লিকেশন সফটওয়্যার।
- প্রোগ্রামিং সফটওয়্যার।
তবে আমরা সাধারণভাবে সফটওয়্যার কে দুই ভাগে ভাগ করে এসেছি অপারেটিং সিস্টেম সফটওয়্যার এবং অ্যাপ্লিকেশন সফটওয়্যার। এখানে আরেকটি সফটওয়্যার যুক্ত করা যা হলো প্রোগ্রামিং সফটওয়্যার। এ নিয়েও আমরা আলোচনা করব।
সিস্টেম সফটওয়্যার
সহজ কথায় সিস্টেম সফটওয়্যার হলো অন্যান্য বাকি সব সফটওয়্যার এর জন্য তৈরি একটি প্লাটফর্ম। আপনি কম্পিউটার কিংবা মোবাইল অন করার সাথে সাথে এটি তার কাজ শুরু করে দেয়। একটি ইন্টারফেস তৈরি করার মাধ্যমে সিস্টেম সফটওয়্যার আপনাকে অন্যান্য বাকি সব সফটওয়্যার গুলোর সাথে ইন্টারেক্ট করতে সহায়তা করে। শুধু অন্যান্য সফটওয়্যার এর জন্য প্লাটফর্ম তৈরি করাই সিস্টেম সফটওয়্যার এর একমাত্র কাজ নয়। আপনার কম্পিউটারের হার্ডওয়ার গুলোর মাঝে সমন্বয়ও এই সিস্টেম সফটওয়্যার দিয়ে থাকে। তাই বলা যায়, সিস্টেম সবচেয়ে প্রাথমিক এবং গুরুত্বপূর্ণ সফটওয়্যার।
আপনি জানেন যে, একটি কম্পিউটার কিংবা ল্যাপটপ কেনার পর সেটাতে একটি অপারেটিং সফটওয়্যার যেমনঃ উইন্ডোজ, লিনাক্স,ম্যাক ইত্যাদি ইন্সটল করতে হয়। তা না হলে, আপনি সেই ল্যাপটপ কিংবা কম্পিউটারকে কাজ করার জন্য ব্যবহার করতে পারেন না। এগুলো সবই সিস্টেম সফটওয়্যার এর উদাহরণ।
সিস্টেম সফটওয়্যার কে আবার তিনটি প্রধান ভাগে ভাগ করা যায়
- সিস্টেম ম্যানেজমেন্ট প্রোগ্রাম
- সিস্টেম ডেভেলপমেন্ট প্রোগ্রাম
- সিস্টেম সাপোর্ট প্রোগ্রাম
- সিস্টেম ম্যানেজমেন্ট প্রোগ্রাম: সিস্টেম ম্যানেজমেন্ট বা কন্ট্রোল প্রোগ্রামের কাজ হল বিভিন্ন হার্ডওয়্যার, সফটওয়্যার, ডেটা প্রোগ্রাম, বিভিন্ন ডিভাইস এবং নেটওয়ার্ক কে নিয়ন্ত্রণ করা। এ ধরনের সফটওয়্যার গুলো নিম্নলিখিত প্রোগ্রামের সাহায্যে সমন্বিত হয়
- অপারেটিং সিস্টেম প্রোগ্রাম
- ডেটাবেজ ম্যানেজমেন্ট সিস্টেম
- নেটওয়ার্ক ম্যানেজমেন্ট প্রোগ্রাম ইত্যাদি।
- সিস্টেম সাপোর্ট প্রোগ্রাম: সিস্টেম সাপোর্ট প্রোগ্রাম এর কাজের মধ্যে সার্ভিস প্রোগ্রাম, নিরাপত্তা প্রদানের প্রোগ্রাম এবং কাজের হিসাব নিকাশ প্রোগ্রামগুলোকে ম্যানেজ করা উল্লেখযোগ্য। নিম্নলিখিত প্রোগ্রামের সাহায্যে সিস্টেম সাপোর্ট বা সহায়ক প্রোগ্রাম সমন্বিত হয়ঃ
- সিস্টেম ইউটিলিটি প্রোগ্রাম
- সিস্টেম পারফরমেন্স প্রোগ্রাম
- সিস্টেম সিকিউরিটি প্রোগ্রাম ইত্যাদি।
- সিস্টেম ডেভেলপমেন্ট প্রোগ্রাম: নাম শুনেই বুঝতে পারছেন, এই ধরনের প্রোগ্রামের সাহায্যে সিস্টেমকে উন্নয়ন কিংবা বিভিন্ন সমস্যার সমাধান করা হয়। সিস্টেম ডেভেলপমেন্ট প্রোগ্রাম যা দিয়ে গঠিত তা হলঃ
- প্রোগ্রামিং ল্যাংগুয়েজ ট্রন্সলেটর
- কম্পিউটার এইডেড সফটওয়্যার ইঞ্জিনিয়ারিং প্যাকেজসমূহ, ইত্যাদি
এপ্লিকেশন সফটওয়্যার
আমরা মোবাইলে গান শোনার জন্য, ছবি দেখার জন্য কিংবা ইন্টারনেট ব্যবহার করার জন্য বিভিন্ন ধরনের যে অ্যাপ গুলো ব্যবহার করে থাকি সেগুলোই হল এপ্লিকেশন সফটওয়্যার এর উদাহরণ। সহজ এপ্লিকেশন সফটওয়্যার হল এমন এক ধরনের সফটওয়্যার যেগুলো মানুষের প্রয়োজনে বিশেষ ধরনের কাজ করার অভিলক্ষে তৈরি করা হয়। কম্পিউটারে মাইক্রোসফট ওয়ার্ড, এক্সেল, বিভিন্ন গ্রাফিক্স সফটওয়্যার, বিভিন্ন মিডিয়া প্লেয়ার( অডিও , ভিডিও) এক একটি এপ্লিকেশন সফটওয়্যার।
আবার মাঝে মাঝে কতগুলো এপ্লিকেশন সফটওয়্যার সমন্বয় করে একটি প্যাকেজ বা বান্ডিল আকারে বিতরণ করা হয়। যেগুলোকে সাধারণত অ্যাপ্লিকেশন সুইট নামে পরিচিতি দেয়া হয়। মাইক্রোসফট অফিস, লিব্রে অফিস হল অ্যাপ্লিকেশন সুইট এর উদাহরণ।
সহজ কথায় মানুষের প্রয়োজনে বিশেষ বিশেষ কিছু কাজ করার উদ্দেশ্যে তৈরি করা সফটওয়্যার গুলোকে এপ্লিকেশন সফটওয়্যার বলা হয়।
প্রোগ্রামিং সফটওয়্যার
এবার আপনাদের উদ্দেশ্যে একটি প্রশ্ন করি। আচ্ছা, বলুন তো এইসব অ্যাপ্লিকেশন কিংবা সিস্টেম সফটওয়্যার গুলোকে তৈরি করা হয় কোথায়??
যে প্লাটফর্মে একজন প্রোগ্রামার বিভিন্ন সফটওয়্যার তৈরি করে থাকে তাকেই প্রোগ্রামিং সফটওয়্যার বলা হয়। আশা করি উত্তরটি পেয়েছেন। অনেকে আবার প্রোগ্রামিং সফটওয়্যার গুলোকে প্রোগ্রামিং টুল বা সফটওয়্যার ডেভেলপমেন্ট টুলও বলে থাকেন।প্রোগ্রামিং সফটওয়্যার এর সংজ্ঞা দিতে হলে বলতে হয় প্রোগ্রামিং সফটওয়্যার এমন একটি প্রোগ্রাম বা প্রোগ্রামের সেট যা সফটওয়্যার বিকাশকারীদের অন্যান্য প্রোগ্রাম এবং অ্যাপ্লিকেশন তৈরি, ডিবাগিং এবং রক্ষণাবেক্ষণে সহায়তা করে ।
বুঝার সুবিধার্থে নিচে কিছু প্রোগ্রামিং সফটওয়্যার এর নাম দেয়া হলো:
- Eclipse
- Notepad++
- Sublime text
হার্ডওয়্যার ও সফটওয়্যার এর মধ্যে পার্থক্য কি?
হার্ডওয়্যার হলো ইলেকট্রনিক্স ডিভাইস গুলোর যন্ত্রাংশ আর সফটওয়্যার হলো এইসব যন্ত্রাংশগুলোকে পরিচালিত করার জন্য নির্দিষ্ট কিছু নির্দেশনামা। সহজে বুঝতে পারছেন হার্ডওয়্যার কম্পিউটারের এমন সব অংশ যা আমরা বাইরে থেকে দেখতে পাই ,ধরতে পারি বা এদের বাহ্যিক অস্তিত্ব রয়েছে। অন্যদিকে সফটওয়্যার হলো কম্পিউটারের এমন কিছু অংশ যা আমরা হাত দিয়ে ধরতে পারিনা কিন্তু এদের অস্তিত্ব হার্ডওয়্যারগুলোর মাধ্যমে উপলব্ধি করতে পারি।
বিষয়টিকে আপনি অনেকটা মানব দেহের মত কল্পনা করতে পারেন, যেখানে আমাদের অঙ্গ-প্রত্যঙ্গ গুলি হল হার্ডওয়ার। আর ব্রেইন থেকে যে নির্দেশ গুলি মেনে আমরা আমাদের অঙ্গ-প্রত্যঙ্গ গুলোকে নিজেদের মতো করে ব্যবহার করতে পারি সেগুলি হল সফটওয়্যার।
বুঝার আরো একটু সুবিধার্থে নিচে একটি পার্থক্যের তালিকা দেয়া হলোঃ
১। হার্ডওয়্যার হল এক ধরনের ফিজিক্যাল পার্টস কম্পিউটার যা ডেটা প্রক্রিয়াকরণের কারণ হয়। অন্যদিকে সফটওয়্যার হল নির্দেশাবলীর একটি সেট যা একটি কম্পিউটারকে ঠিক কী করণীয় তা জানায়।
২। হার্ডওয়্যার সফটওয়্যার ছাড়া কোনও কাজ সম্পাদন করতে পারে না। হার্ডওয়্যার ছাড়া সফটওয়্যার কার্যকর করা যায় না।
৩। হার্ডওয়্যার যেমন শারীরিক বৈদ্যুতিন ডিভাইস, আমরা হার্ডওয়্যার টি দেখতে এবং স্পর্শ করতে পারি। কিন্তু আমরা সফটওয়্যারটি দেখতে এবং ব্যবহার করতে পারি তবে তাদের স্পর্শ করতে পারি না।
৪। হার্ডওয়্যার এর চারটি প্রধান বিভাগ রয়েছে: ইনপুট ডিভাইস, আউটপুট ডিভাইস, মেমোরি এবং প্রসেসিং উপাদান। আর সফটওয়্যার মূলত সিস্টেম সফ্টওয়্যার, প্রোগ্রামিং সফ্টওয়্যার এবং অ্যাপ্লিকেশন সফ্টওয়্যারগুলিতে বিভক্ত।
৫। হার্ডওয়্যার কম্পিউটার ভাইরাস দ্বারা প্রভাবিত হয় না। সফটওয়্যার কম্পিউটার ভাইরাস দ্বারা প্রভাবিত হয়।
৬। এটি নেটওয়ার্কের মাধ্যমে বৈদ্যুতিকভাবে এক জায়গা থেকে অন্য জায়গায় স্থানান্তরিত হতে পারে না। তবে, এটি স্থানান্তরিত হতে পারে।
৭। হার্ডওয়্যার ক্ষতিগ্রস্ত হলে এটি নতুন দিয়ে প্রতিস্থাপন করা হয়। যদি সফটওয়্যার ক্ষতিগ্রস্ত হয় তবে এর ব্যাকআপ কপিটি পুনরায় ইনস্টল করা যেতে পারে।
৮। হার্ডওয়ার এর উদাহরণ হল কীবোর্ড, মাউস, মনিটর, প্রিন্টার, সিপিইউ, হার্ডডিস্ক, র্যাম, রম ইত্যাদি। অন্যদিকে সফটওয়্যার এর উদাহরণ হল এমএস ওয়ার্ড, এক্সেল, পাওয়ার পয়েন্ট, ফটোশপ, মাইএসকিউএল ইত্যাদি।
সফটওয়্যার কীভাবে তৈরি করা হয়?
সফটওয়্যার তৈরি করার জন্য আপনাকে অবশ্যই প্রোগ্রামিং ল্যাংগুয়েজ জানতে হবে।
প্রোগ্রামিং ল্যাঙ্গুয়েজ হলো কম্পিউটারকে পরিচালিত করার জন্য যে ভাষা ব্যবহার করা হয় তা। তবে কম্পিউটার কিন্তু এই প্রোগ্রামিং ল্যাঙ্গুয়েজকেই সরাসরি বুঝতে পারে না। এটি কে আবার কম্পিউটারের অপারেটিং সিস্টেম বা built-in কিছু ফাংশন কম্পিউটারের বোধগম্য মেশিন ল্যাঙ্গুয়েজ বা বাইনারি কোডে রূপান্তরিত করে।
সফটওয়্যার কিভাবে তৈরি করা হয় কিংবা আপনি কিভাবে একটি সফটওয়্যার তৈরি করে নিতে পারেন তা ধাপে ধাপে নিচে উল্লেখ করা হলঃ
১। প্রথমেই আপনাকে যা করতে হবে তা হল একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ সিলেক্ট করা। তবে সফটওয়্যার ডেভেলপমেন্ট এর ক্ষেত্রে পাইথন, সি++, জাভা প্রোগ্রামিং ল্যাঙ্গুয়েজ সর্বব্যবহৃত।
২। এরপর আপনার কাজ হবে নির্ধারণকৃত প্রোগ্রামিং ল্যাংগুয়েজের উপর যতটা পারেন দক্ষতা অর্জন করা।
৩। তারপর আপনার তৈরিকৃত প্রোগ্রামগুলোকে কার্যকর করার জন্য যেকোনো একটি প্ল্যাটফরম টুলের সাহায্য নিতে পারেন। ইন্টারনেটে ফ্রিতে এমন অনেক সফটওয়্যার ডেভেলপমেন্ট টুলস পাওয়া যায়।
আসলে সফটওয়্যার কিন্তু 0 এবং 1 ছাড়া আর কিছুই নয়। যা বাইনারি ডিজিট বা মেশিন ল্যাঙ্গুয়েজ নামে পরিচিত। কম্পিউটার বাইনারি কোড ছাড়া আর কিছুই বুঝতে পারেনা। প্রশ্ন হল আপনি যখন কোন প্রোগ্রামিং ল্যাঙ্গুয়েজ এর সাহায্য নিয়ে বিভিন্ন কোড বা প্রোগ্রাম তৈরি করেন সেগুলো কম্পিউটার পড়তে পারেনা, তবে সে কিভাবে কাজ করে? এখন আপনি যদি সরাসরি বাইনারি কোড ব্যবহার করে কম্পিউটারকে বোঝাতে চান তা অনেক কষ্টসাধ্য হবে এমনকি অসম্ভবও বটে। তাই বিভিন্ন প্রোগ্রামিং ল্যাঙ্গুয়েজ গুলো (যেমনঃ সি, জাভা, পাইথন, সি++) আপনার তৈরিকৃত প্রোগ্রামগুলোকে একটি স্ক্রিপ্ট বা বিভিন্ন সোর্স কোডে পরিণত করে। তারপর এইসব সোর্স কোড গুলোকে সফটওয়্যারে (০ এবং ১) রূপান্তর করা হয়। আশা করি, বিষয়টি আপনি বুঝতে পেরেছেন।
আমাদের আজকের এই পোস্টে আমরা সফটওয়্যার কি, কিভাবে কাজ করে, এর বিভিন্ন প্রকারভেদ এবং সফটওয়্যার কিভাবে তৈরি করা হয় তা নিয়ে আলোচনা করলাম। আশা করি, সফটওয়্যার এর উপর আপনার এখন একটা ভাল ধারণা সৃষ্টি হয়ে গেছে। ভবিষ্যতে আপনি যদি একজন সফটওয়্যার ডেভেলপার হতে চান, তাহলে আশা করি আমাদের কথাগুলো আপনার অনেক কাজে দিবে। তাছাড়া একজন প্রযুক্তি ব্যবহারকারী হিসেবে এর খুঁটিনাটি বিষয়গুলো আপনার জেনে রাখা উচিত বলে আমরা মনে করি।