প্রযুক্তিগতভাবে, ফার্মওয়্যার হল সফ্টওয়্যারের একটি উপসেট, যেহেতু পরবর্তী শব্দটি প্রতিটি দরকারী কোডের অংশকে অন্তর্ভুক্ত করে। বাস্তবে, যদিও, সফ্টওয়্যার শব্দটি একটি ভিন্ন শ্রেণীর প্রোগ্রামকে বোঝায়।
সাধারণভাবে বলতে গেলে, ফার্মওয়্যার হল নিম্ন-স্তরের কোডের নাম যা সরাসরি হার্ডওয়্যারের সাথে ইন্টারফেস করে। এই স্তরের উপরে কাজ করে এমন যেকোনো প্রোগ্রামে সফটওয়্যার থাকে। বিভ্রান্ত? এখানে একটি গভীর চেহারা আছে৷
৷অনেক প্রকার সফটওয়্যার
সফ্টওয়্যার শব্দটির সমস্যা হল এটি খুব বিস্তৃত। নির্দেশের যেকোন সেট যা একটি কম্পিউটারকে নিয়ন্ত্রণ করতে পারে – বা অন্য কোন ইলেকট্রনিক ডিভাইস, সেই বিষয়ে – সফ্টওয়্যার হিসাবে বিবেচিত হতে পারে।
কম্পিউটিংয়ের প্রথম দিনগুলিতে এটি কোনও সমস্যা ছিল না যখন সমস্ত প্রোগ্রাম সমাবেশে লেখা হয়েছিল এবং কোনও কাজ করার জন্য সরাসরি হার্ডওয়্যারের সাথে ইন্টারফেস করা হয়েছিল। কিন্তু আজকাল একটি কম্পিউটিং ডিভাইস স্তরের স্তরে কোডের স্তরে চলে, যেখানে ব্যবহারকারী শুধুমাত্র উপরের প্রোগ্রামগুলির সংস্পর্শে আসে৷
অ্যাপ্লিকেশন সফ্টওয়্যার বলা হয়, ব্যবহারকারী-বান্ধব প্রোগ্রামগুলির এই বিভাগে আপনার পিসিতে ব্যবহার করা সমস্ত অ্যাপ্লিকেশন এবং ইউটিলিটিগুলি অন্তর্ভুক্ত থাকে, যেমন ওয়েব ব্রাউজার বা শব্দ সম্পাদক৷ এর নীচে রয়েছে অপারেটিং সিস্টেম, স্ক্রীনে ভিজ্যুয়াল রেন্ডার করা এবং ইনপুট পরিচালনা করার মতো নিম্ন-স্তরের বিবরণ নিয়ে কাজ করে৷
বেশিরভাগ লোক মনে করে যে এটি এখানে শেষ হয়, কিন্তু অপারেটিং সিস্টেম খুব কমই হার্ডওয়্যারের সাথে সরাসরি যোগাযোগ করে। OS এর নীচে আরেকটি স্তর রয়েছে যা সিস্টেম সফ্টওয়্যারকে হার্ডওয়্যার ফাংশন অ্যাক্সেস করার একটি সহজ উপায় দেয়। এবং সেটা হল ফার্মওয়্যার।
ফার্মওয়্যার:সফটওয়্যারের ভিত্তি স্তর
বেশিরভাগ উচ্চ-স্তরের প্রোগ্রামিং ভাষায়, স্ক্রিনে একটি চিত্র প্রদর্শন করার মতো জিনিসগুলি করা একটি সাধারণ আদেশ। তবুও কম্পিউটারের কোথাও, সেই কমান্ডটিকে প্রকৃত প্রসেসর নির্দেশাবলীতে অনুবাদ করার জন্য দায়ী কোডের একটি অংশ৷
ফার্মওয়্যার হল হার্ডওয়্যার এবং সফ্টওয়্যারের মধ্যে লিঙ্ক, যা ডেভেলপারদের CPU-নির্দিষ্ট নির্দেশের পরিবর্তে একটি সরলীকৃত প্রোগ্রামিং ইন্টারফেসের মাধ্যমে ডিভাইসের ক্ষমতা ব্যবহার করতে দেয়। একটি কম্পিউটারের জন্য, এই ফার্মওয়্যার হল সুপরিচিত বেসিক ইনপুট আউটপুট সিস্টেম (BIOS), এমনকি OS ছাড়াই অ্যাক্সেসযোগ্য৷
টিভি রিমোট বা রাউটারের মতো সহজ ইলেকট্রনিক ডিভাইসে, ফার্মওয়্যার অপারেটিং সিস্টেমের মতো দ্বিগুণ হয়ে যায়। এই ধরনের মেশিনগুলি পিসির মতো তৃতীয় পক্ষের অ্যাপ্লিকেশন সফ্টওয়্যার ইনস্টল করার জন্য নয় এবং সমস্ত প্রয়োজনীয় কাজ সম্পাদন করার জন্য ফার্মওয়্যারের উপর নির্ভর করে৷
কিভাবে একটি ডিভাইসে ফার্মওয়্যার ইনস্টল করা হয়?
ফার্মওয়্যার ছাড়া কোনো ইলেকট্রনিক ডিভাইস ব্যবহারযোগ্য নয়। এই কারণেই সমস্ত ইলেকট্রনিক উপাদান প্রস্তুতকারকের দ্বারা পূর্বে ইনস্টল করা ফার্মওয়্যারের সাথে আসে৷
৷এমনকি কম্পিউটারেও, এই প্রোগ্রামটি মাদারবোর্ডের একটি বিশেষ ফ্ল্যাশ চিপে সংরক্ষণ করা হয়, হার্ড ড্রাইভে নয়। এটি একটি কম্পিউটার বুট আপ করা এবং অপারেটিং সিস্টেম ইনস্টল না করে হার্ডওয়্যার সেটিংস কনফিগার করা সম্ভব করে তোলে৷
ফার্মওয়্যার আপডেট করা বেশিরভাগ ডিভাইসে সহজ বা প্রয়োজনীয় নয়। মেশিনের জন্য মৌলিক নিয়ন্ত্রণ কোড হিসাবে, এটিকে এলোমেলো করা হার্ডওয়্যারটিকে অব্যবহারযোগ্য করে তুলতে পারে। কম্পিউটারগুলি একটি ব্যতিক্রম, যা ব্যবহারকারীকে চিপ ফ্ল্যাশ করে BIOS আপগ্রেড ইনস্টল করার অনুমতি দেয়৷
ফার্মওয়্যার বনাম সফ্টওয়্যার:এক নজরে
ফার্মওয়্যার সফ্টওয়্যার অত্যাবশ্যকীয় কোড যা সরাসরি হার্ডওয়্যার উপাদানগুলিকে নিয়ন্ত্রণ করে৷ ঐচ্ছিক প্রোগ্রামগুলি যেগুলি জটিল কাজগুলি সম্পাদন করতে ফার্মওয়্যার ব্যবহার করে৷ ডিভাইসে একটি নিবেদিত চিপে সংরক্ষিত৷ হার্ড ডিস্ক মেমরিতে ইনস্টল করা৷ প্রস্তুতকারকের দ্বারা পূর্বে ইনস্টল করা আসে৷ ব্যবহারকারী দ্বারা ইনস্টল এবং কনফিগার করা যেতে পারে৷ সফ্টওয়্যারের সর্বনিম্ন স্তরের কোডগুলিকে সমর্থন করে৷ হার্ডওয়্যার বিমূর্তকরণের জন্য এটির নীচের ফার্মওয়্যারের উপর নির্ভর করে৷ প্রায়শই সাধারণ ইলেকট্রনিক ডিভাইসে একমাত্র নিয়ন্ত্রণকারী প্রোগ্রাম৷ ফার্মওয়্যার ছাড়া কাজ করতে পারে না৷ হার্ডওয়্যার নির্দিষ্ট৷ বিভিন্ন প্রসেসর আর্কিটেকচারের জন্য ফার্মওয়্যার আলাদা হয় এবং একে একে পরিবর্তন করা যায় না। হার্ডওয়্যার স্বাধীন। OS বিভিন্ন প্রসেসর পরিবারে একই কাজ করে, যদিও অ্যাপ্লিকেশন সফ্টওয়্যার সাধারণত OS নির্দিষ্ট হয়। খুব কমই আপডেট করা হয়, যদি না হয়। আনইনস্টল করা যাবে না। আপগ্রেড এবং সরানো সহজ।সফ্টওয়্যার থেকে ফার্মওয়্যার কীভাবে আলাদা?
হার্ডওয়্যার এবং সফ্টওয়্যারকে সাধারণত একটি ইলেকট্রনিক ডিভাইসের দুটি উপাদান বলা হয়, তবে এটি সম্পূর্ণ চিত্র নয়। অপারেটিং সিস্টেম এবং অ্যাপ্লিকেশনগুলি সরাসরি হার্ডওয়্যারের সাথে যোগাযোগ করতে পারে না, ব্যবধান পূরণ করতে বিশেষ কোডের একটি স্তর প্রয়োজন৷
এবং যে লিঙ্ক উপাদান ফার্মওয়্যার. এটি আর্কিটেকচার-নির্দিষ্ট নির্দেশাবলী নিয়ে গঠিত যা সরাসরি হার্ডওয়্যার নিয়ন্ত্রণ করে এবং সাধারণ ইলেকট্রনিক্সে একটি মৌলিক ওএস হিসাবেও কাজ করে। অন্যান্য ডিভাইসে ফার্মওয়্যার পরিবর্তে সফ্টওয়্যারকে একটি বিমূর্ত ইন্টারফেস প্রদান করে, OS কে অন্তর্নিহিত আর্কিটেকচারের কথা চিন্তা না করে হার্ডওয়্যার ব্যবহার করার অনুমতি দেয়।
এর অপরিহার্য প্রকৃতির কারণে, ফার্মওয়্যারটি মাদারবোর্ডের একটি ফ্ল্যাশ চিপে আগে থেকে লোড করা হয়, ডিস্কে লেখা যেকোনো সফ্টওয়্যার থেকে স্বাধীন। এটি শুধুমাত্র সফ্টওয়্যার প্যাকেজগুলির সাধারণ ইনস্টলেশনের বিপরীতে বিশেষায়িত প্রক্রিয়াগুলির সাথে আপডেট করা যেতে পারে (যেমন "ফ্ল্যাশড")৷
সমস্ত ইলেকট্রনিক ডিভাইস এবং পেরিফেরাল উপাদান তাদের নিজস্ব ফার্মওয়্যারের সাথে আসে। ডিজিটাল ক্যামেরা, স্মার্টফোন, SSD, এমনকি USB ড্রাইভ - যদি এটির হার্ডওয়্যার থাকে যা নিয়ন্ত্রণ করা প্রয়োজন, তাহলে এটি পরিচালনা করার জন্য অনবোর্ডে ফার্মওয়্যার রয়েছে।