বায়োস

কম্পিউটিং-এ, **বায়োস** (, ; **বেসিক ইনপুট/আউটপুট সিস্টেম**, যা **সিস্টেম বায়োস**, **রম বায়োস**, **বায়োস রম** বা **পিসি বায়োস** নামেও পরিচিত) হলো এক ধরনের ফার্মওয়্যার, যা অপারেটিং সিস্টেম ও প্রোগ্রামের জন্য রানটাইম পরিষেবা প্রদান করতে এবং বুট প্রক্রিয়ার (পাওয়ার-অন স্টার্টআপ) সময় হার্ডওয়্যার প্রারম্ভিকীকরণে ব্যবহৃত হয়। বায়োস ফার্মওয়্যার ব্যবহার করা কম্পিউটারে এই ফার্মওয়্যারটি কম্পিউটারের মাদারবোর্ডে আগে থেকেই ইনস্টল করা থাকে।

এই নামটি ১৯৭৫ সালে সিপি/এম অপারেটিং সিস্টেমে ব্যবহৃত **বেসিক ইনপুট/আউটপুট সিস্টেম** থেকে এসেছে। বায়োস ফার্মওয়্যারটি মূলত আইবিএম পিসির নিজস্ব ছিল; তবে সামঞ্জস্যপূর্ণ সিস্টেম তৈরির লক্ষ্যে কমপ্যাক, ফিনিক্স টেকনোলজিস, এএমআই এবং অন্যান্য কিছু কোম্পানি এর রিভার্স ইঞ্জিনিয়ারিং সম্পন্ন করে। সেই মূল সিস্টেমের ইন্টারফেসটি একটি ''দে ফ্যাক্টো'' মান হিসেবে কাজ করে।

পুরানো পিসিগুলোর বায়োস সিস্টেম হার্ডওয়্যার উপাদানগুলো প্রারম্ভিকীকরণ ও পরীক্ষা করে (পাওয়ার-অন সেলফ-টেস্ট বা সংক্ষেপে পোস্ট), এবং একটি মাস স্টোরেজ ডিভাইস থেকে বুট লোডার লোড করে যা পরবর্তীতে একটি কার্নেলকে সক্রিয় করে। ডসের যুগে, বায়োস কিবোর্ড, ডিসপ্লে, স্টোরেজ এবং অন্যান্য ইনপুট/আউটপুট (I/O) ডিভাইসের জন্য বায়োস ইন্টারাপ্ট কল প্রদান করত, যা অ্যাপ্লিকেশন প্রোগ্রাম এবং অপারেটিং সিস্টেমের ইন্টারফেসকে মানসম্মত করেছিল। আধুনিক অপারেটিং সিস্টেমগুলো স্টার্টআপের পর বায়োস ইন্টারাপ্ট কলগুলো আর ব্যবহার করে না।

অধিকাংশ বায়োস ইমপ্লিমেন্টেশন নির্দিষ্ট কোনো কম্পিউটার বা মাদারবোর্ড মডেলের সাথে কাজ করার জন্য বিশেষভাবে তৈরি করা হয়, যা বিভিন্ন ডিভাইসের সাথে, বিশেষ করে সিস্টেম চিপসেটের সাথে সংযোগ স্থাপন করে। মূলত বায়োস ফার্মওয়্যার পিসি মাদারবোর্ডের একটি রম চিপে সংরক্ষিত থাকত। পরবর্তী সময়ের কম্পিউটার সিস্টেমে বায়োসের বিষয়বস্তু ফ্ল্যাশ মেমরিতে সংরক্ষণ করা হয়, যাতে মাদারবোর্ড থেকে চিপ না সরিয়েই এটি পুনরায় লেখা যায়। এটি সাধারণ ব্যবহারকারীর পক্ষে বায়োস ফার্মওয়্যার আপডেট করা সহজ করে তোলে যাতে নতুন বৈশিষ্ট্য যোগ করা যায় বা ত্রুটি সংশোধন করা যায়, তবে এর ফলে কম্পিউটার বায়োস রুটকিট দ্বারা সংক্রমিত হওয়ার সম্ভাবনাও তৈরি হয়। অধিকন্তু, বায়োস আপগ্রেড ব্যর্থ হলে তা মাদারবোর্ডকে অকেজো করে দিতে পারে।

ইউনিফাইড এক্সটেনসিবল ফার্মওয়্যার ইন্টারফেস (ইউইএফআই) হলো পিসি বায়োসের উত্তরসূরি, যার লক্ষ্য এর প্রযুক্তিগত সীমাবদ্ধতাগুলো দূর করা। যেসব অপারেটিং সিস্টেম এবং অপশন কার্ড ইউইএফআই-এর নেটিভ অপারেশন সমর্থন করে না, সেগুলোর সাথে সামঞ্জস্য বজায় রাখতে ইউইএফআই ফার্মওয়্যারে লিগ্যাসি বায়োস সাপোর্ট অন্তর্ভুক্ত থাকতে পারে। ২০২০ সাল থেকে ইন্টেল প্ল্যাটফর্মের সকল পিসি আর লিগ্যাসি বায়োস সমর্থন করে না। লিগ্যাসি বায়োস ফার্মওয়্যার ব্যবহার করে এমন পিসিতে আনুষ্ঠানিকভাবে চলার উপযোগী মাইক্রোসফট উইন্ডোজ-এর সর্বশেষ সংস্করণ হলো উইন্ডোজ ১০, কারণ উইন্ডোজ ১১-এর জন্য ইউইএফআই-সামঞ্জস্যপূর্ণ সিস্টেম প্রয়োজন (উইন্ডোজ ১১-এর আইওটি এন্টারপ্রাইজ সংস্করণ ব্যতীত, যা সংস্করণ ২৪এইচ২ থেকে কার্যকর)।

বিষয়শ্রেণী:বুট করা
বিষয়শ্রেণী:ফার্মওয়্যার
## ইতিহাস

BIOS (বেসিক ইনপুট/আউটপুট সিস্টেম) শব্দটি গ্যারি কিলডাল প্রবর্তন করেন এবং এটি প্রথম ১৯৭৫ সালে সিপি/এম অপারেটিং সিস্টেমে দেখা যায়, যেখানে এটি বুট সময় লোড হওয়া এবং সরাসরি হার্ডওয়্যার-এর সাথে যোগাযোগকারী সিপি/এম-এর যন্ত্রনির্ভর অংশকে বর্ণনা করে। (একটি সিপি/এম যন্ত্রে সাধারণত এর ROM-এ কেবল একটি সরল বুট লোডার থাকে।)

এমএস-ডস, পিসি ডস অথবা ডিআর-ডস-এর সংস্করণগুলোতে বিভিন্নভাবে "আইও.এসওয়াইএস", "আইবিএমবায়ো.কম", "IBMBIO.SYS" বা "DRBIOS.SYS" নামে একটি ফাইল থাকে; এই ফাইলটি "ডস BIOS" (যা "ডস I/O সিস্টেম" নামেও পরিচিত) নামে পরিচিত এবং এতে অপারেটিং সিস্টেমের নিম্নস্তরের হার্ডওয়্যার-নির্দিষ্ট অংশটি থাকে। এটি অন্তর্নিহিত হার্ডওয়্যার-নির্দিষ্ট কিন্তু অপারেটিং সিস্টেম-স্বাধীন "সিস্টেম BIOS"-এর সাথে মিলে, যা ROM-এ অবস্থান করে, "সিপি/এম বায়োস"-এর সমতুল্য রূপটি উপস্থাপন করে।

মূলত আইবিএম পিসি-এর জন্য প্রোপ্রাইটারি BIOS-টি কিছু কোম্পানি, যেমন কমপ্যাক, ফিনিক্স টেকনোলজিস, এএমআই এবং অন্যান্যদের দ্বারা রিভার্স ইঞ্জিনিয়ারিং করা হয়েছে, সামঞ্জস্যপূর্ণ সিস্টেম তৈরির উদ্দেশ্যে।

PS/2 যন্ত্র প্রবর্তনের সাথে সাথে, IBM সিস্টেম BIOS-কে রিয়েল-মোড এবং প্রোটেক্টেড-মোড অংশে বিভক্ত করে। রিয়েল-মোড অংশটি DOS-এর মতো বিদ্যমান অপারেটিং সিস্টেমের সাথে পশ্চাৎ-সামঞ্জস্য বজায় রাখার জন্য নির্ধারিত ছিল এবং তাই এর নাম দেওয়া হয় "CBIOS" ("Compatibility BIOS"-এর সংক্ষিপ্ত রূপ), আর "ABIOS" ("Advanced BIOS"-এর সংক্ষিপ্ত রূপ) বিশেষভাবে বহুকাজসম্পন্ন অপারেটিং সিস্টেম যেমন ওএস/২-এর জন্য উপযোগী নতুন ইন্টারফেস প্রদান করত।
## ব্যবহারকারী ইন্টারফেস
মূল আইবিএম পিসি এবং এক্সটি-এর BIOS-এ কোনো ইন্টারঅ্যাকটিভ ব্যবহারকারী ইন্টারফেস ছিল না। ত্রুটি কোড বা বার্তা পর্দায় প্রদর্শিত হতো, অথবা পাওয়ার-অন সেলফ-টেস্ট (POST) ভিডিও ডিসপ্লে অ্যাডাপ্টার সফলভাবে আরম্ভ করার পর্যায়ে পৌঁছাতে না পারলে ত্রুটির সংকেত দিতে নির্দিষ্ট ধারার শব্দ উৎপন্ন করা হতো। আইবিএম পিসি এবং এক্সটি-তে বিকল্পসমূহ মূল বোর্ড এবং এক্সপ্যানশন কার্ড-এ থাকা সুইচ ও জাম্পারের মাধ্যমে নির্ধারিত হতো। ১৯৯০-এর দশকের মাঝামাঝি সময় থেকে BIOS ROM-এ একটি *"BIOS কনফিগারেশন ইউটিলিটি"* (BCU) অথবা "BIOS সেটআপ ইউটিলিটি" অন্তর্ভুক্ত করা প্রচলিত হয়ে ওঠে, যা সিস্টেম চালু করার সময় একটি নির্দিষ্ট কী-সমষ্টি চাপলে প্রবেশযোগ্য ছিল। এই প্রোগ্রামটি ব্যবহারকারীকে পূর্বে ডিআইপি সুইচ ব্যবহার করে নির্ধারিত সিস্টেম কনফিগারেশন বিকল্পসমূহ কীবোর্ড-নিয়ন্ত্রিত ইন্টারঅ্যাকটিভ মেনু ব্যবস্থার মাধ্যমে নির্ধারণ করার সুযোগ দিত। অন্তর্বর্তী সময়ে, আইবিএম-সামঞ্জস্যপূর্ণ পিসিযার মধ্যে আইবিএম এটিও অন্তর্ভুক্তব্যাটারি-সমর্থিত RAM-এ কনফিগারেশন সেটিং সংরক্ষণ করত এবং এই মেমরিতে সংরক্ষিত কনফিগারেশন বিকল্প নির্ধারণের জন্য ROM-এর পরিবর্তে ফ্লপি ডিস্কে থাকা বুটযোগ্য কনফিগারেশন প্রোগ্রাম ব্যবহার করত। ফ্লপি ডিস্কটি কম্পিউটারের সাথে সরবরাহ করা হতো, এবং এটি হারিয়ে গেলে সিস্টেম সেটিং পরিবর্তন করা যেত না। সাধারণভাবে EISA বাস-সম্বলিত কম্পিউটারগুলোর ক্ষেত্রেও একই প্রযোজ্য ছিল, যেখানে কনফিগারেশন প্রোগ্রামটির নাম ছিল EISA Configuration Utility (ECU)।

একটি আধুনিক উইন্টেল-সামঞ্জস্যপূর্ণ কম্পিউটার ১৯৯০-এর দশকের শেষভাগের ROM-নিবাসী BIOS সেটআপ ইউটিলিটিগুলোর প্রকৃতির সাথে মূলত অপরিবর্তিত একটি সেটআপ রুটিন প্রদান করে; ব্যবহারকারী কীবোর্ড এবং ভিডিও ডিসপ্লে ব্যবহার করে হার্ডওয়্যার বিকল্পসমূহ কনফিগার করতে পারেন। আধুনিক উইন্টেল যন্ত্র BIOS কনফিগারেশন সেটিং ফ্ল্যাশ ROM-এ সংরক্ষণ করতে পারে, সম্ভবত সেই একই ফ্ল্যাশ ROM-এ যেখানে BIOS নিজেই সংরক্ষিত থাকে।
## এক্সটেনশন (অপশন ROMs)

হার্ড ডিস্ক ড্রাইভ হোস্ট বাস অ্যাডাপ্টার এবং ভিডিও কার্ড-এর মতো পেরিফেরাল কার্ডগুলোর নিজস্ব ফার্মওয়্যার থাকে, এবং BIOS এক্সটেনশন অপশন ROM কোড এক্সপ্যানশন কার্ডের ফার্মওয়্যারের অংশ হতে পারে; এই কোড BIOS-এ অতিরিক্ত সক্ষমতা যোগ করে। অপশন ROM-এ থাকা কোড BIOS যখন মাস স্টোরেজ থেকে অপারেটিং সিস্টেম বুট করে তার আগে কার্যকর হয়। এই ROM-গুলো সাধারণত হার্ডওয়্যার পরীক্ষা ও আরম্ভ করে, নতুন BIOS পরিষেবা যোগ করে, অথবা বিদ্যমান BIOS পরিষেবাগুলোকে নিজেদের পরিষেবা দিয়ে প্রতিস্থাপন করে। উদাহরণস্বরূপ, একটি এসসিএসআই কন্ট্রোলার-এ সাধারণত একটি BIOS এক্সটেনশন ROM থাকে, যা সেই কন্ট্রোলারের মাধ্যমে সংযুক্ত হার্ড ড্রাইভের জন্য সমর্থন যোগ করে। একটি এক্সটেনশন ROM তাত্ত্বিকভাবে অপারেটিং সিস্টেম ধারণ করতে পারে, অথবা এটি সম্পূর্ণ ভিন্ন একটি বুট প্রক্রিয়া যেমন নেটওয়ার্ক বুটিং বাস্তবায়ন করতে পারে। BIOS এক্সটেনশন ROM-যুক্ত একটি অ্যাডাপ্টার কার্ড (অথবা একটি ROM চিপ) অপসারণ বা সংযোজনের মাধ্যমে একটি IBM-সামঞ্জস্যপূর্ণ কম্পিউটার সিস্টেমের কার্যপ্রণালী সম্পূর্ণভাবে পরিবর্তন করা যেতে পারে।

মাদারবোর্ড BIOS সাধারণত সমন্বিত ডিসপ্লে ও সমন্বিত স্টোরেজ আরম্ভ ও বুটস্ট্র্যাপ করার কোড ধারণ করে। আরম্ভ প্রক্রিয়ায় সংশ্লিষ্ট ডিভাইসের কোড কার্যকর করা অন্তর্ভুক্ত থাকতে পারে, যাতে ডিভাইসটি সনাক্ত করা, ডিভাইসের ধরন যাচাই করা, তারপর বেস রেজিস্টার স্থাপন করা, পয়েন্টার নির্ধারণ করা, ইন্টারাপ্ট ভেক্টর টেবিল স্থাপন করা, উপলব্ধ রেজিস্টার সংগঠনের জন্য পেজিং মোড নির্বাচন করা, ইন্টারাপ্ট-সম্পর্কিত সফটওয়্যার রুটিনে প্রবেশের জন্য ডিফল্ট মান নির্ধারণ করা, এবং ডিফল্ট মান ব্যবহার করে ডিভাইসের কনফিগারেশন নির্ধারণ করা অন্তর্ভুক্ত থাকতে পারে। অতিরিক্তভাবে, এসসিএসআই, রেইড, নেটওয়ার্ক ইন্টারফেস কার্ড এবং ভিডিও কার্ড-এর মতো প্লাগ-ইন অ্যাডাপ্টার কার্ডগুলো প্রায়শই নিজস্ব BIOS (যেমন ভিডিও BIOS) অন্তর্ভুক্ত করে, যা নির্দিষ্ট উপাদানের জন্য সিস্টেম BIOS কোডকে সম্পূরক বা প্রতিস্থাপন করে। এমনকি মাদারবোর্ডে অন্তর্নির্মিত ডিভাইসগুলোও এভাবে কাজ করতে পারে; তাদের অপশন ROM-গুলো মাদারবোর্ড BIOS-এর অংশ হতে পারে।

যদি কোনো কার্ড মাদারবোর্ড BIOS দ্বারা সমর্থিত না হয় এবং অপারেটিং সিস্টেম লোড হওয়ার আগে (সাধারণত বুট প্রক্রিয়ায় প্রয়োজনীয় হলে) BIOS পরিষেবার মাধ্যমে সেটিকে আরম্ভ বা প্রবেশযোগ্য করতে হয়, তবে একটি অ্যাড-ইন কার্ডের জন্য অপশন ROM প্রয়োজন হয়। প্রাথমিক কিছু পিসি সিস্টেমে (বিশেষত আইবিএম পিসিজেআর অন্তর্ভুক্ত) ROM-এর একটি অতিরিক্ত সুবিধা ছিল যে ROM প্রধান সিস্টেম RAM-এর তুলনায় দ্রুততর ছিল। (আধুনিক সিস্টেমে পরিস্থিতি সম্পূর্ণ বিপরীত; BIOS ROM কোড সাধারণত RAM-এ অনুলিপি ("শ্যাডো") করা হয় যাতে এটি দ্রুততরভাবে কার্যকর হতে পারে।)

### ভৌত অবস্থান

অপশন ROM সাধারণত অ্যাডাপ্টার কার্ডে অবস্থান করে। তবে, মূল পিসি, এবং সম্ভবত পিসি এক্সটি-তেও, মাদারবোর্ডে (IBM-এর পরিভাষায় "সিস্টেম বোর্ড") একটি অতিরিক্ত ROM সকেট ছিল, যেখানে একটি অপশন ROM সন্নিবেশ করা যেত; এছাড়া BASIC ইন্টারপ্রেটার ধারণকারী চারটি ROM অপসারণ করে কাস্টম ROM দ্বারা প্রতিস্থাপন করা যেত, যা অপশন ROM হতে পারত। আইবিএম পিসিজেআর পিসিগুলোর মধ্যে অনন্য, কারণ এর সামনের দিকে দুটি ROM কার্ট্রিজ স্লট রয়েছে। এই স্লটগুলোর কার্ট্রিজগুলো অপশন ROM-এর জন্য ব্যবহৃত ঊর্ধ্ব মেমরি এলাকার একই অঞ্চলে ম্যাপ হয়, এবং কার্ট্রিজগুলোতে এমন অপশন ROM মডিউল থাকতে পারে যা BIOS শনাক্ত করতে পারে। কার্ট্রিজগুলোতে BASIC প্রোগ্রামের মতো অন্যান্য ধরনের ROM মডিউলও থাকতে পারে, যা ভিন্নভাবে পরিচালিত হয়। একটি পিসিজেআর কার্ট্রিজে বিভিন্ন ধরনের একাধিক ROM মডিউল থাকতে পারে, সম্ভবত একটি ROM চিপেই একত্রে সংরক্ষিত।
## কার্যপ্রণালী
### সিস্টেম চালু হওয়া
8086 এবং 8088 ভৌত ঠিকানা FFFF0h থেকে শুরু হয়। 80286 ভৌত ঠিকানা FFFFF0h থেকে শুরু হয়। 80386 এবং পরবর্তী x86 প্রসেসরসমূহ ভৌত ঠিকানা FFFFFFF0h থেকে শুরু হয়। সিস্টেম প্রারম্ভের সময়, ঐ ঠিকানায় BIOS-এর প্রথম নির্দেশনা উপস্থিত থাকে।

যদি সিস্টেমটি সদ্য চালু করা হয়ে থাকে বা রিসেট বোতাম চাপা হয়ে থাকে ("কোল্ড বুট"), তবে পূর্ণাঙ্গ পাওয়ার-অন সেলফ-টেস্ট (POST) সম্পাদিত হয়। যদি Ctrl+Alt+Delete চাপা হয়ে থাকে ("ওয়ার্ম বুট"), তবে ননভোলাটাইল BIOS মেমরি ("সিএমওএস")-এ সংরক্ষিত একটি বিশেষ ফ্ল্যাগ মান BIOS দ্বারা পরীক্ষা করা হয়, যা দীর্ঘ POST ও মেমরি শনাক্তকরণ প্রক্রিয়া এড়িয়ে যেতে সহায়তা করে।

POST সিস্টেম ডিভাইসসমূহ শনাক্ত, পরীক্ষা ও প্রারম্ভিকীকরণ করে, যেমন CPU, চিপসেট, RAM, মাদারবোর্ড, ভিডিও কার্ড, কীবোর্ড, মাউস, হার্ড ডিস্ক ড্রাইভ, অপটিক্যাল ডিস্ক ড্রাইভ এবং অন্যান্য হার্ডওয়্যার, যার মধ্যে সমন্বিত পেরিফেরাল-সমূহও অন্তর্ভুক্ত।

প্রাথমিক IBM পিসিগুলিতে POST-এর মধ্যে একটি রুটিন ছিল, যা কীবোর্ড পোর্টের মাধ্যমে একটি প্রোগ্রাম RAM-এ ডাউনলোড করে তা চালাতে পারত। এই বৈশিষ্ট্যটি কারখানা পরীক্ষা বা ডায়াগনস্টিক উদ্দেশ্যে নির্ধারিত ছিল।

মাদারবোর্ড BIOS তার POST সম্পন্ন করার পর, অধিকাংশ BIOS সংস্করণ অপশন ROM মডিউল (যেগুলো BIOS এক্সটেনশন ROM নামেও পরিচিত) অনুসন্ধান করে এবং সেগুলো কার্যকর করে। মাদারবোর্ড BIOS "আপার মেমরি এরিয়া" (x86 রিয়েল-মোড ঠিকানা স্থানের 0xA0000 এবং তার ঊর্ধ্ববর্তী অংশ) এর একটি অংশে এক্সটেনশন ROM অনুসন্ধান করে এবং প্রাপ্ত প্রতিটি ROM ক্রমানুসারে চালায়। মেমরি-ম্যাপড অপশন ROM আবিষ্কারের জন্য, একটি BIOS বাস্তবায়ন রিয়েল-মোড ঠিকানা স্থান `0x0C0000` থেকে `0x0F0000` পর্যন্ত 2&nbsp;KB (২,০৪৮ বাইট) সীমানায় স্ক্যান করে, একটি দুই-বাইটের ROM *স্বাক্ষর* অনুসন্ধান করে: 0x55-এর পরে 0xAA। একটি বৈধ এক্সপ্যানশন ROM-এ এই স্বাক্ষরের পরে একটি একক বাইট থাকে, যা রিয়েল মেমরিতে এক্সপ্যানশন ROM কতগুলো ৫১২-বাইট ব্লক দখল করে তা নির্দেশ করে; এবং পরবর্তী বাইটটি অপশন ROM-এর এন্ট্রি পয়েন্ট (যা এর "এন্ট্রি অফসেট" নামেও পরিচিত)। যদি ROM-এর চেকসম বৈধ হয়, তবে BIOS নিয়ন্ত্রণ এন্ট্রি ঠিকানায় স্থানান্তর করে, যা একটি সাধারণ BIOS এক্সটেনশন ROM-এ এক্সটেনশনের প্রারম্ভিকীকরণ রুটিনের শুরু হওয়া উচিত।

এই পর্যায়ে, এক্সটেনশন ROM কোড নিয়ন্ত্রণ গ্রহণ করে। সাধারণত এটি সংশ্লিষ্ট হার্ডওয়্যার পরীক্ষা ও প্রারম্ভিকীকরণ করে এবং বুট-পরবর্তী অ্যাপ্লিকেশনগুলির ব্যবহারের জন্য ইন্টারাপ্ট ভেক্টর নিবন্ধন করে। এটি ব্যবহারকারী কনফিগারেশন ইন্টারফেস প্রদান, ডায়াগনস্টিক তথ্য প্রদর্শন বা প্রয়োজনীয় অন্যান্য কার্য সম্পাদনের জন্য BIOS পরিষেবাসমূহ (এর মধ্যে পূর্বে প্রারম্ভিকীকৃত অপশন ROM দ্বারা প্রদত্ত পরিষেবাও অন্তর্ভুক্ত) ব্যবহার করতে পারে।

একটি অপশন ROM সাধারণত তার প্রারম্ভিকীকরণ প্রক্রিয়া সম্পন্ন করার পর BIOS-এ ফিরে আসে। কোনো অপশন ROM ফিরে এলে (এবং যদি ফিরে আসে), BIOS আরও অপশন ROM অনুসন্ধান অব্যাহত রাখে এবং প্রতিটি সনাক্তকৃত ROM চালায়, যতক্ষণ না মেমরি স্থানের সমগ্র অপশন ROM এলাকা স্ক্যান সম্পন্ন হয়। কোনো অপশন ROM BIOS-এ না-ও ফিরে আসতে পারে, ফলে BIOS-এর বুট ক্রম সম্পূর্ণরূপে দখল করতে পারে।
### বুট প্রক্রিয়া

POST সম্পন্ন হওয়ার পর এবং, অপশন ROM সমর্থনকারী BIOS-এ, অপশন ROM স্ক্যান সম্পূর্ণ হওয়ার পর ও বৈধ ROM মডিউলসমূহের বৈধ চেকসম যাচাই করে সেগুলো আহ্বান করার পর, BIOS বুট প্রক্রিয়া শুরু করতে ইন্টারাপ্ট 19h আহ্বান করে। বুট-পরবর্তী সময়ে লোড হওয়া প্রোগ্রামসমূহও সিস্টেম পুনরায় চালু করতে ইন্টারাপ্ট 19h আহ্বান করতে পারে; তবে তাদের সতর্ক থাকতে হয় যাতে ইন্টারাপ্ট এবং BIOS পুনরায় বুট প্রক্রিয়ায় বিঘ্ন ঘটাতে পারে এমন অন্যান্য অ্যাসিঙ্ক্রোনাস হার্ডওয়্যার প্রক্রিয়া নিষ্ক্রিয় করা হয়। অন্যথায়, পুনরায় বুট করার সময় সিস্টেম হ্যাং বা ক্র্যাশ করতে পারে।

ইন্টারাপ্ট 19h আহ্বান করা হলে, BIOS একটি "বুট ডিভাইস"-এ বুট লোডার সফটওয়্যার সন্ধান করার চেষ্টা করে, যেমন একটি হার্ড ডিস্ক, একটি ফ্লপি ডিস্ক, সিডি, বা ডিভিডি। এটি প্রথম যে বুট সফটওয়্যার খুঁজে পায় সেটি লোড ও কার্যকর করে এবং পিসির নিয়ন্ত্রণ সেটির হাতে ন্যস্ত করে।

BIOS ননভোলাটাইল BIOS মেমরি (সিএমওএস)-এ নির্ধারিত বুট ডিভাইসসমূহ ব্যবহার করে, অথবা প্রাচীনতম পিসিগুলিতে ডিআইপি সুইচ ব্যবহৃত হতো। BIOS প্রতিটি ডিভাইস ক্রমানুসারে পরীক্ষা করে দেখে সেটি বুটযোগ্য কিনা, প্রথম সেক্টর (বুট সেক্টর) লোড করার চেষ্টা করে। যদি সেক্টরটি পড়া না যায়, তবে BIOS পরবর্তী ডিভাইসে অগ্রসর হয়। যদি সেক্টরটি সফলভাবে পড়া যায়, তবে কিছু BIOS সেক্টরের শেষ দুই বাইটে (যার দৈর্ঘ্য ৫১২ বাইট) বুট সেক্টর স্বাক্ষর 0x55 0xAA উপস্থিত আছে কিনা তাও পরীক্ষা করে, বুট সেক্টর গ্রহণ করার এবং ডিভাইসটিকে বুটযোগ্য বিবেচনা করার আগে।

একটি বুটযোগ্য ডিভাইস পাওয়া গেলে, BIOS লোড করা সেক্টরের কাছে নিয়ন্ত্রণ হস্তান্তর করে। BIOS বুট সেক্টরের বিষয়বস্তু ব্যাখ্যা করে না, শেষ দুই বাইটে বুট সেক্টর স্বাক্ষর পরীক্ষা করা ছাড়া। পার্টিশন টেবিল এবং BIOS প্যারামিটার ব্লকের মতো ডেটা কাঠামোর ব্যাখ্যা বুট সেক্টরের বুট প্রোগ্রাম নিজেই বা বুট প্রক্রিয়ায় লোড হওয়া অন্যান্য প্রোগ্রাম দ্বারা সম্পন্ন হয়।

ডিস্ক-বহির্ভূত কোনো ডিভাইস যেমন একটি নেটওয়ার্ক অ্যাডাপ্টার তার অপশন ROM দ্বারা সংজ্ঞায়িত পদ্ধতিতে (অথবা মাদারবোর্ড BIOS ROM-এ সমন্বিত সমতুল্য পদ্ধতিতে) বুট করার চেষ্টা করে। ফলে, অপশন ROM-সমূহ মাদারবোর্ড BIOS ROM দ্বারা সংজ্ঞায়িত বুট প্রক্রিয়াকে প্রভাবিত বা প্রতিস্থাপন করতে পারে।

El Torito অপটিক্যাল মিডিয়া বুট মান অনুসারে, অপটিক্যাল ড্রাইভ বুটের উদ্দেশ্যে BIOS-এর কাছে প্রকৃতপক্ষে একটি ৩.৫" উচ্চ-ঘনত্বের ফ্লপি ডিস্ক অনুকরণ করে। একটি CD-ROM বা DVD-ROM-এর "প্রথম সেক্টর" পড়া ফ্লপি ডিস্ক বা হার্ড ডিস্কের মতো সরলভাবে সংজ্ঞায়িত অপারেশন নয়। তদুপরি, মাধ্যমটির জটিলতা একটি সেক্টরে কার্যকর বুট প্রোগ্রাম লেখা কঠিন করে তোলে। বুটযোগ্য ভার্চুয়াল ফ্লপি ডিস্কে এমন সফটওয়্যার থাকতে পারে, যা অপটিক্যাল মাধ্যমকে তার নিজস্ব বিন্যাসে প্রবেশাধিকার প্রদান করে।

যদি কোনো এক্সপ্যানশন ROM সহযোগিতামূলকভাবে সিস্টেমের বুট পদ্ধতি (যেমন নেটওয়ার্ক ডিভাইস বা SCSI অ্যাডাপ্টার থেকে) পরিবর্তন করতে চায়, তবে এটি *BIOS Boot Specification* (BBS) API ব্যবহার করে তার সক্ষমতা নিবন্ধন করতে পারে। এক্সপ্যানশন ROM-সমূহ BBS API ব্যবহার করে নিবন্ধন করার পর, ব্যবহারকারী BIOS-এর ব্যবহারকারী ইন্টারফেস থেকে উপলভ্য বুট বিকল্পগুলির মধ্যে নির্বাচন করতে পারেন। এই কারণেই অধিকাংশ BBS-সম্মত পিসি BIOS বাস্তবায়ন ব্যবহারকারীকে BIOS-এর ব্যবহারকারী ইন্টারফেসে প্রবেশ করতে দেয় না, যতক্ষণ না এক্সপ্যানশন ROM-সমূহ তাদের কার্য সম্পন্ন করে এবং BBS API-তে নিজেদের নিবন্ধন শেষ করে।

এছাড়াও, যদি কোনো এক্সপ্যানশন ROM একতরফাভাবে সিস্টেমের বুট পদ্ধতি পরিবর্তন করতে চায়, তবে এটি সরাসরি ইন্টারাপ্ট 19h অথবা ইন্টারাপ্ট 19h থেকে সাধারণত আহ্বান করা অন্যান্য ইন্টারাপ্ট (যেমন ইন্টারাপ্ট 13h, যা BIOS ডিস্ক পরিষেবা) হুক করতে পারে, যাতে BIOS বুট প্রক্রিয়া আটকানো যায়। এরপর এটি BIOS বুট প্রক্রিয়াকে তার নিজস্ব প্রক্রিয়ায় প্রতিস্থাপন করতে পারে, অথবা কেবল নিজের বুট কার্যক্রম সন্নিবেশ করে বুট ক্রম পরিবর্তন করতে পারে, অথবা BIOS-কে নির্দিষ্ট ডিভাইস বুটযোগ্য হিসেবে সনাক্ত করতে বাধা দিতে পারে, অথবা উভয়ই করতে পারে। BIOS Boot Specification প্রবর্তনের আগে, মাদারবোর্ডের স্বাভাবিক BIOS দ্বারা বুট সমর্থনহীন ডিভাইসের জন্য বুট সক্ষমতা বাস্তবায়নের একমাত্র উপায় ছিল এক্সপ্যানশন ROM-সমূহের এই পদ্ধতি।
#### বুট অগ্রাধিকার
ব্যবহারকারী BIOS দ্বারা বাস্তবায়িত বুট অগ্রাধিকার নির্বাচন করতে পারেন। উদাহরণস্বরূপ, অধিকাংশ কম্পিউটারে একটি বুটযোগ্য হার্ড ডিস্ক থাকে; তবে কখনও কখনও একটি অপসারণযোগ্য-মাধ্যম ড্রাইভ উচ্চতর বুট অগ্রাধিকার পায়, ফলে ব্যবহারকারী অপসারণযোগ্য ডিস্ক থেকে বুট করতে পারেন।

অধিকাংশ আধুনিক BIOS-এ বুট অগ্রাধিকার ক্রম ব্যবহারকারী দ্বারা কনফিগার করা যায়। পুরোনো BIOS-এ সীমিত বুট অগ্রাধিকার বিকল্প নির্বাচনযোগ্য ছিল; প্রাচীনতম BIOS-এ একটি স্থির অগ্রাধিকার স্কিম প্রয়োগ করা হতো, যেখানে প্রথমে ফ্লপি ডিস্ক ড্রাইভ, দ্বিতীয়ে স্থির ডিস্ক (অর্থাৎ হার্ড ডিস্ক), এবং সাধারণত অন্য কোনো বুট ডিভাইস সমর্থিত হতো না—যদিও ইনস্টলকৃত অপশন ROM দ্বারা এই নিয়মসমূহ পরিবর্তনযোগ্য ছিল। প্রাথমিক পিসির BIOS সাধারণত কেবল প্রথম ফ্লপি ডিস্ক ড্রাইভ বা প্রথম হার্ড ডিস্ক ড্রাইভ থেকে বুট করত, এমনকি যদি দুটি ড্রাইভ ইনস্টল থাকত তবুও।

#### বুট ব্যর্থতা
মূল আইবিএম পিসি এবং XT-তে যদি কোনো বুটযোগ্য ডিস্ক পাওয়া না যেত, তবে BIOS ROM BASIC চালু করার চেষ্টা করত ইন্টারাপ্ট 18h আহ্বানের মাধ্যমে। যেহেতু খুব কম প্রোগ্রামই ROM-এ BASIC ব্যবহার করত, ক্লোন পিসি নির্মাতারা এটি বাদ দিতেন; ফলে ডিস্ক থেকে বুট ব্যর্থ হলে কম্পিউটার “No ROM BASIC” প্রদর্শন করে থেমে যেত (ইন্টারাপ্ট 18h-এর প্রতিক্রিয়ায়)।

পরবর্তী কম্পিউটারগুলো “No bootable disk found” ধরনের বার্তা প্রদর্শন করত; কিছু ক্ষেত্রে একটি ডিস্ক প্রবেশ করাতে এবং বুট প্রক্রিয়া পুনরায় চেষ্টা করতে একটি কী চাপতে অনুরোধ করত। আধুনিক BIOS কোনো বার্তা নাও প্রদর্শন করতে পারে অথবা বুট প্রক্রিয়া ব্যর্থ হলে স্বয়ংক্রিয়ভাবে BIOS কনফিগারেশন ইউটিলিটিতে প্রবেশ করতে পারে।

### বুট পরিবেশ
বুট প্রোগ্রামের পরিবেশ অত্যন্ত সরল: CPU রিয়েল মোডে থাকে এবং সাধারণ-উদ্দেশ্য ও সেগমেন্ট রেজিস্টারসমূহ সংজ্ঞায়িত নয়, কেবল SS, SP, CS এবং DL ব্যতীত। CS:IP সর্বদা ভৌত ঠিকানা `0x07C00`-এ নির্দেশ করে। CS এবং IP প্রকৃতপক্ষে কী মান ধারণ করে তা সুস্পষ্টভাবে নির্ধারিত নয়। কিছু BIOS `0x0000:0x7C00` এর CS:IP ব্যবহার করে, আবার অন্যরা `0x07C0:0x0000` ব্যবহার করতে পারে। যেহেতু বুট প্রোগ্রাম সর্বদা এই নির্দিষ্ট ঠিকানায় লোড হয়, তাই সেটিকে পুনর্বিন্যাসযোগ্য (relocatable) হওয়ার প্রয়োজন নেই। DL-এ বুট ডিভাইসের ড্রাইভ নম্বর থাকতে পারে, যা ইন্টারাপ্ট 13h-এর সাথে ব্যবহৃত হয়। SS:SP একটি বৈধ স্ট্যাক নির্দেশ করে, যা সম্ভবত হার্ডওয়্যার ইন্টারাপ্ট সমর্থনের জন্য যথেষ্ট বড়; তবে অন্যথায় SS ও SP সংজ্ঞায়িত নয়। (ইন্টারাপ্ট সেবা প্রদানের জন্য একটি স্ট্যাক পূর্বেই সেট করা থাকতে হয়, এবং সিস্টেম টাইমার-টিক ইন্টারাপ্ট—যা BIOS সর্বদা অন্তত সময় গণনা বজায় রাখতে ব্যবহার করে এবং POST চলাকালে প্রারম্ভিকীকরণ করে—সক্রিয় থাকার জন্য ইন্টারাপ্ট সক্রিয় থাকতে হয়; কীবোর্ড কাজ করার জন্যও এটি প্রয়োজন। BIOS কীবোর্ড পরিষেবা আহ্বান না করলেও কীবোর্ড কাজ করে; কী-চাপগুলো গ্রহণ করে BIOS দ্বারা রক্ষিত ১৫-অক্ষরের টাইপ-অ্যাহেড বাফারে সংরক্ষণ করা হয়।) বুট প্রোগ্রামকে নিজস্ব স্ট্যাক স্থাপন করতে হয়, কারণ BIOS দ্বারা স্থাপিত স্ট্যাকের আকার অজানা এবং এর অবস্থানও পরিবর্তনশীল; যদিও SS:SP পরীক্ষা করে ডিফল্ট স্ট্যাক অনুসন্ধান করা সম্ভব, তবু শর্তহীনভাবে একটি নতুন স্ট্যাক স্থাপন করা সহজ ও সংক্ষিপ্ত।

বুট সময়ে, সমস্ত BIOS পরিষেবা উপলভ্য থাকে এবং ঠিকানা `0x00400`-এর নিচের মেমরিতে ইন্টারাপ্ট ভেক্টর টেবিল থাকে। BIOS POST সিস্টেম টাইমার, ইন্টারাপ্ট কন্ট্রোলার(সমূহ), DMA কন্ট্রোলার(সমূহ) এবং অন্যান্য মাদারবোর্ড/চিপসেট হার্ডওয়্যার প্রয়োজনমতো প্রারম্ভিকীকরণ করেছে, যাতে সব BIOS পরিষেবা প্রস্তুত অবস্থায় থাকে। প্রচলিত মেমরি এবং সম্প্রসারিত মেমরিতে (কিন্তু প্রয়োজনীয়ভাবে প্রসারিত মেমরিতে নয়) সকল সিস্টেম DRAM-এর জন্য DRAM রিফ্রেশ ব্যবস্থা স্থাপন ও সক্রিয় করা হয়েছে। BIOS ইন্টারাপ্টের সাথে সম্পর্কিত ইন্টারাপ্ট ভেক্টর-সমূহ BIOS-এর উপযুক্ত এন্ট্রি পয়েন্টে নির্দেশ করার জন্য নির্ধারিত হয়েছে; BIOS দ্বারা প্রারম্ভিকীকৃত ডিভাইসের হার্ডওয়্যার ইন্টারাপ্ট ভেক্টরসমূহ BIOS-প্রদত্ত ISR-এ নির্দেশ করার জন্য সেট করা হয়েছে; এবং কিছু অন্যান্য ইন্টারাপ্ট, যার মধ্যে প্রোগ্রামসমূহ হুক করার জন্য BIOS যে ইন্টারাপ্ট তৈরি করে সেগুলোও অন্তর্ভুক্ত, একটি ডিফল্ট ডামি ISR-এ সেট করা হয়েছে, যা সঙ্গে সঙ্গে প্রত্যাবর্তন করে। BIOS ঠিকানা `0x00400–0x004FF`-এ সংরক্ষিত সিস্টেম RAM-এর একটি সংরক্ষিত ব্লক বজায় রাখে, যেখানে POST চলাকালে প্রারম্ভিকীকৃত বিভিন্ন প্যারামিটার থাকে। ঠিকানা `0x00500` এবং তার ঊর্ধ্ববর্তী সমস্ত মেমরি বুট প্রোগ্রাম ব্যবহার করতে পারে; এটি এমনকি নিজেকেও ওভাররাইট করতে পারে।
## অপারেটিং সিস্টেমের সেবাসমূহ
BIOS ROM নির্দিষ্ট প্রস্তুতকারকের হার্ডওয়্যারের সাথে সামঞ্জস্য রেখে তৈরি করা হয়। এটি অপারেটিং সিস্টেমসহ বিভিন্ন প্রোগ্রামের জন্য প্রমিত পদ্ধতিতে নিম্নস্তরের সেবা (যেমন- কিবোর্ড থেকে ইনপুট পড়া বা ডিস্কে ডেটা লেখা) প্রদানের সুযোগ করে দেয়। উদাহরণস্বরূপ, একটি আইবিএম পিসিতে মনোক্রোম বা রঙিন ডিসপ্লে অ্যাডাপ্টার (ভিন্ন ডিসপ্লে মেমোরি অ্যাড্রেস ও হার্ডওয়্যার ব্যবহার করে) থাকতে পারে, তবে টেক্সট মোড বা গ্রাফিক্স মোডে স্ক্রিনের নির্দিষ্ট অবস্থানে একটি অক্ষর দেখানোর জন্য একটি একক ও প্রমিত বিআইওএস সিস্টেম কল ব্যবহার করা যেতে পারে।

বিআইওএস পেরিফেরালগুলো (যেমন- কিবোর্ড, প্রাথমিক টেক্সট ও গ্রাফিক্স ডিসপ্লে ফাংশন ইত্যাদি) পরিচালনার জন্য মৌলিক ইনপুট/আউটপুট ফাংশনের একটি ছোট লাইব্রেরি প্রদান করে। এমএস-ডস (MS-DOS) ব্যবহারের সময়, ডিস্ক ফাংশন ব্যবহারের জন্য 'ইন্টারাপ্ট ১৩এইচ' ইন্টারাপ্ট ইন্সট্রাকশন অথবা ভিডিও ডিসপ্লে, কিবোর্ড, ক্যাসেট এবং অন্যান্য ডিভাইসের কাজ সম্পাদনের জন্য নথিবদ্ধ অন্যান্য বিআইওএস ইন্টারাপ্ট কল ব্যবহারের মাধ্যমে কোনো অ্যাপ্লিকেশন প্রোগ্রাম (বা এমএস-ডস) বিআইওএস সেবা গ্রহণ করতে পারত।

এই মৌলিক ফার্মওয়্যার কার্যকারিতাকে প্রতিস্থাপন করার জন্য ডিজাইন করা অপারেটিং সিস্টেম এবং এক্সিকিউটিভ সফটওয়্যারগুলো অ্যাপ্লিকেশন সফটওয়্যারের জন্য বিকল্প সফটওয়্যার ইন্টারফেস প্রদান করে। অ্যাপ্লিকেশনগুলো নিজেরাও এই সেবাগুলো প্রদান করতে পারে। এটি ১৯৮০-এর দশকে এমএস-ডসের আমলেই শুরু হয়েছিল, যখন প্রোগ্রামাররা খেয়াল করেন যে গ্রাফিক্স ডিসপ্লের জন্য বিআইওএস ভিডিও সেবাগুলো ব্যবহার করা অত্যন্ত ধীরগতির। স্ক্রিন আউটপুটের গতি বাড়ানোর জন্য অনেক প্রোগ্রাম বিআইওএসকে এড়িয়ে সরাসরি ভিডিও ডিসপ্লে হার্ডওয়্যার প্রোগ্রাম করত। অন্যান্য গ্রাফিক্স প্রোগ্রামাররা, বিশেষ করে যারা ডেমোসিন নিয়ে কাজ করতেন, তারা লক্ষ্য করেন যে পিসি ডিসপ্লে অ্যাডাপ্টারের এমন কিছু কারিগরি সক্ষমতা ছিল যা আইবিএম বিআইওএস সমর্থন করত না এবং বিআইওএসকে এড়ানো ছাড়া সেগুলোর সুবিধা নেওয়া সম্ভব ছিল না। যেহেতু এটি-সামঞ্জস্যপূর্ণ (AT-compatible) বিআইওএস ইনটেলের রিয়েল মোডে চলত, তাই ২৮৬ এবং পরবর্তী প্রসেসরগুলোতে প্রোটেক্টেড মোডে চলা অপারেটিং সিস্টেমগুলোর জন্য বিআইওএস সেবাকে প্রতিস্থাপন করার জন্য প্রোটেক্টেড মোড অপারেশনের উপযোগী হার্ডওয়্যার ডিভাইস ড্রাইভারের প্রয়োজন হতো।

উইন্ডোজ এবং লিনাক্সের মতো আধুনিক অপারেটিং সিস্টেমগুলো কেবল বুটিং প্রক্রিয়ার সময় বিআইওএস ইন্টারাপ্ট কলগুলো ব্যবহার করে। অপারেটিং সিস্টেমের প্রথম গ্রাফিক্যাল স্ক্রিন প্রদর্শিত হওয়ার আগে ইনপুট এবং আউটপুট সাধারণত বিআইওএসের মাধ্যমেই পরিচালিত হয়। উইন্ডোজের টেক্সট মেনুর মতো বুট মেনু, যা ব্যবহারকারীকে বুট করার জন্য একটি অপারেটিং সিস্টেম বেছে নিতে, সেফ মোডে বুট করতে বা 'লাস্ট নোন গুড কনফিগারেশন' ব্যবহার করতে দেয়, সেটি বিআইওএসের মাধ্যমে প্রদর্শিত হয় এবং বিআইওএসের মাধ্যমেই কিবোর্ড ইনপুট গ্রহণ করে।

অনেক আধুনিক পিসি এখনও এমএস-ডস বা ডিআর-ডসের মতো পুরনো অপারেটিং সিস্টেমগুলো বুট করতে এবং চালাতে পারে, যা তাদের কনসোল এবং ডিস্ক আইও (I/O)-এর জন্য বিআইওএসের ওপর অনেক বেশি নির্ভর করে। তবে এক্ষেত্রে সিস্টেমে একটি বিআইওএস অথবা সিএসএম-সক্ষম (CSM-capable) ইউইএফআই (UEFI) ফার্মওয়্যার থাকা প্রয়োজন।

### প্রসেসর মাইক্রোকোড আপডেট
P6 মাইক্রোআর্কিটেকচারের পর থেকে ইনটেল প্রসেসরগুলোতে পুনরায় প্রোগ্রামযোগ্য মাইক্রোকোড রয়েছে। K7 মাইক্রোআর্কিটেকচারের পর থেকে এএমডি প্রসেসরগুলোতেও পুনরায় প্রোগ্রামযোগ্য মাইক্রোকোড রয়েছে। বিআইওএসে প্রসেসর মাইক্রোকোডের জন্য প্যাচ থাকে যা প্রাথমিক প্রসেসর মাইক্রোকোডের ত্রুটিগুলো সংশোধন করে। মাইক্রোকোড প্রসেসরের SRAM-এ লোড করা হয়, তাই এই প্রোগ্রামিং স্থায়ী হয় না। ফলে প্রতিবার সিস্টেম চালু করার সময় মাইক্রোকোড আপডেট লোড করতে হয়। পুনরায় প্রোগ্রামযোগ্য মাইক্রোকোড না থাকলে ব্যয়বহুল প্রসেসর বদলানোর প্রয়োজন হতো; উদাহরণস্বরূপ, পেন্টিয়াম এফডিআইভি বাগ ইনটেলের জন্য একটি ব্যয়বহুল বিপর্যয় ছিল কারণ এর জন্য পণ্য বাজার থেকে ফিরিয়ে নেওয়ার (product recall) প্রয়োজন হয়েছিল, যেহেতু মূল পেন্টিয়াম প্রসেসরের ত্রুটিপূর্ণ মাইক্রোকোড পুনরায় প্রোগ্রাম করা সম্ভব ছিল না। অপারেটিং সিস্টেমও মাইক্রোকোড আপডেট করতে পারে।
### সনাক্তকরণ
কিছু BIOS-এ একটি সফটওয়্যার লাইসেন্সিং বিবরণ সারণি (SLIC) থাকে, যা মূল সরঞ্জাম প্রস্তুতকারী (OEM)—যেমন ডেল—দ্বারা BIOS-এর অভ্যন্তরে স্থাপিত একটি ডিজিটাল স্বাক্ষর। SLIC ACPI ডেটা সারণিতে সন্নিবেশিত হয় এবং এতে কোনো সক্রিয় কোড থাকে না।

যেসব কম্পিউটার নির্মাতা মাইক্রোসফট উইন্ডোজ এবং মাইক্রোসফটের অ্যাপ্লিকেশন সফটওয়্যারের OEM সংস্করণ বিতরণ করে, তারা OEM Windows ইনস্টলেশন ডিস্ক এবং Windows সফটওয়্যারসহ সিস্টেম রিকভারি ডিস্ক-এ লাইসেন্স প্রমাণীকরণের জন্য SLIC ব্যবহার করতে পারে। SLIC-সমৃদ্ধ সিস্টেমগুলো OEM প্রোডাক্ট কী দিয়ে পূর্ব-সক্রিয় (preactivated) করা যেতে পারে, এবং তারা স্বয়ংক্রিয় সক্রিয়করণের উপায় হিসেবে BIOS-এ থাকা SLIC-এর সাথে XML-ফরম্যাটকৃত OEM সার্টিফিকেট যাচাই করে (দেখুন System Locked Preinstallation, SLP)। যদি কোনো ব্যবহারকারী Windows-এর নতুন ইনস্টল সম্পাদন করেন, তবে সক্রিয়করণ এড়াতে তাদের OEM কী (SLP বা COA যেকোনোটি) এবং তাদের SLIC-এর জন্য ডিজিটাল সার্টিফিকেট উভয়ই থাকতে হবে। এটি OEM-প্রদত্ত পূর্ব-স্বনির্ধারিত ইমেজ ব্যবহার করে পুনরুদ্ধার সম্পাদনের মাধ্যমে অর্জন করা যায়। দক্ষ ব্যবহারকারীরা OEM ইমেজ থেকে প্রয়োজনীয় সার্টিফিকেট ফাইল অনুলিপি করতে, SLP প্রোডাক্ট কী ডিকোড করতে, এবং তারপর ম্যানুয়ালি SLP সক্রিয়করণ সম্পাদন করতে পারেন।

### ওভারক্লকিং
কিছু BIOS বাস্তবায়ন ওভারক্লকিং সমর্থন করে, যা এমন একটি প্রক্রিয়া যেখানে CPU-কে নির্মাতার নির্ধারিত নিশ্চয়তাপ্রাপ্ত সক্ষমতার তুলনায় উচ্চতর ক্লক রেট-এ সমন্বয় করা হয়। তবে অপর্যাপ্ত শীতলীকরণযুক্ত কম্পিউটারে ওভারক্লকিং সিস্টেমের নির্ভরযোগ্যতা গুরুতরভাবে ক্ষতিগ্রস্ত করতে পারে এবং সাধারণত উপাদানের আয়ুষ্কাল হ্রাস করে। ভুলভাবে সম্পাদিত হলে, ওভারক্লকিং উপাদানসমূহকে এত দ্রুত অতিরিক্ত তাপিত করতে পারে যে তারা যান্ত্রিকভাবে নিজেই ধ্বংস হয়ে যেতে পারে।

### আধুনিক ব্যবহার
কিছু পুরোনো অপারেটিং সিস্টেম, যেমন MS-DOS, পিসির অধিকাংশ ইনপুট/আউটপুট কাজ সম্পাদনের জন্য BIOS-এর উপর নির্ভর করে।

রিয়েল মোড BIOS পরিষেবা সরাসরি আহ্বান করা প্রোটেক্টেড মোড (এবং লং মোড) অপারেটিং সিস্টেমের জন্য অদক্ষ। আধুনিক বহুকর্মী অপারেটিং সিস্টেমসমূহ প্রাথমিকভাবে লোড হওয়ার পর BIOS ইন্টারাপ্ট কল ব্যবহার করে না।

১৯৯০-এর দশকে, BIOS প্রোটেক্টেড মোড ইন্টারফেস সরবরাহ করত মাইক্রোসফট উইন্ডোজ এবং ইউনিক্স-সদৃশ অপারেটিং সিস্টেমগুলোর জন্য, যেমন APM, Plug and Play BIOS, DMI, VBE, e820 এবং MPS। ২০০০ সাল থেকে অধিকাংশ BIOS আধুনিক অপারেটিং সিস্টেমের জন্য ACPI, SMBIOS, VBE এবং e820 ইন্টারফেস প্রদান করে।

অপারেটিং সিস্টেম লোড হওয়ার পরও System Management Mode কোড SMRAM-এ চলমান থাকে। ২০১০ সাল থেকে BIOS প্রযুক্তি ধীরে ধীরে UEFI-এর দিকে রূপান্তর প্রক্রিয়ায় রয়েছে।
## কনফিগারেশন
### সেটআপ ইউটিলিটি
ঐতিহাসিকভাবে, আইবিএম পিসি এবং এক্সটি-তে বিআইওএসের কোনো বিল্ট-ইন ইউজার ইন্টারফেস ছিল না। পূর্ববর্তী পিসিগুলোতে (এক্সটি-শ্রেণির) বিআইওএস সংস্করণগুলো সফটওয়্যারের মাধ্যমে কনফিগার করা যেত না; এর বদলে ব্যবহারকারীরা মাদারবোর্ডে থাকা ডিআইপি সুইচের মাধ্যমে বিভিন্ন অপশন সেট করতেন। ৮০২৮৬ সিপিইউযুক্ত বেশিরভাগ আইবিএম-সামঞ্জস্যপূর্ণ কম্পিউটারসহ পরবর্তী কম্পিউটারগুলোতে বিআইওএসের সেটিংস ধরে রাখার জন্য ব্যাটারি-চালিত নন-ভোলাটাইল বিআইওএস মেমোরি (সিএমওএস র‍্যাম চিপ) থাকত। ভিডিও-অ্যাডাপ্টারের ধরন, মেমোরির আকার এবং হার্ড-ডিস্কের প্যারামিটারের মতো এই সেটিংগুলো রম (ROM)-এ বিল্ট-ইন থাকত না, বরং কেবল একটি ডিস্ক থেকে কনফিগারেশন প্রোগ্রাম চালিয়ে এগুলো কনফিগার করা যেত। মেমোরির আকারের মতো সেটিংগুলো কনফিগার করার জন্য একটি আইবিএম এটি-তে একটি বিশেষ "রেফারেন্স ডিস্কেট" প্রবেশ করানো হতো।

প্রথম দিকের বিআইওএস সংস্করণগুলোতে পাসওয়ার্ড বা বুট-ডিভাইস নির্বাচনের কোনো অপশন ছিল না। প্রথম ফ্লপি ড্রাইভ থেকে বুট করার জন্য বিআইওএস হার্ড-কোড করা থাকত, অথবা সেটি ব্যর্থ হলে প্রথম হার্ড ডিস্ক থেকে বুট হতো। শুরুর দিকের এটি-শ্রেণির মেশিনগুলোতে একটি ফিজিক্যাল কীলক সুইচের মাধ্যমে অ্যাক্সেস নিয়ন্ত্রণ করা হতো (কম্পিউটারের কেসিং খোলা গেলে যা অকার্যকর করা খুব একটা কঠিন ছিল না)। যে কেউ কম্পিউটার চালু করতে পারলে সেটি বুট করতে পারত।

পরবর্তীতে, ৩৮৬-শ্রেণির কম্পিউটারগুলোতে বিআইওএস কোডের পাশাপাশি রম (ROM)-এর ভেতরেই বিআইওএস সেটআপ ইউটিলিটি যুক্ত করা শুরু হয়; নির্দিষ্ট কোনো কি (key) বা কি-এর সমন্বয় চাপা হলে এই কম্পিউটারগুলো সাধারণত বিআইওএস সেটআপ ইউটিলিটিতে বুট হয়, অন্যথায় বিআইওএস পোস্ট (POST) এবং বুট প্রক্রিয়া সম্পন্ন হয়।

একটি আধুনিক বিআইওএস সেটআপ ইউটিলিটিতে একটি টেক্সট ইউজার ইন্টারফেস (TUI) অথবা গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) থাকে, পিসি চালু হওয়ার সময় কীবোর্ডে নির্দিষ্ট একটি কি (key) চেপে যা অ্যাক্সেস করা যায়। সাধারণত, প্রাথমিক স্টার্টআপের সময় অল্প সময়ের জন্য এই কি (key)-এর কথা স্ক্রিনে দেখানো হয়, যেমন "সেটআপে প্রবেশ করতে DEL চাপুন" ("Press DEL to enter Setup")।

প্রকৃত কি (key) নির্দিষ্ট হার্ডওয়্যারের ওপর নির্ভর করে। সেটিংস কি (key) হিসেবে সবচেয়ে বেশি ব্যবহৃত হয় Delete বা ডিলিট (এসার, অ্যাসরক, আসাস পিসি, ইসিএস, গিগাবাইট, এমএসআই, জোটাক) এবং F2 বা এফ২ (আসাস&nbsp;মাদারবোর্ড, ডেল, লেনোভো ল্যাপটপ, অরিজিন পিসি, স্যামসাং, তোশিবা), তবে এটি F1 বা এফ১ (লেনোভো&nbsp;ডেস্কটপ) এবং F10 বা এফ১০-ও (এইচপি) হতে পারে।

বিআইওএস সেটআপ ইউটিলিটিতে থাকা বৈশিষ্ট্যগুলোর মধ্যে সাধারণত অন্তর্ভুক্ত থাকে:

* হার্ডওয়্যার উপাদানগুলো কনফিগার, চালু এবং বন্ধ করা
* সিস্টেমের সময় নির্ধারণ করা
* বুট করার ক্রম নির্ধারণ করা
* বিভিন্ন পাসওয়ার্ড নির্ধারণ করা, যেমন বিআইওএস ইউজার ইন্টারফেসে সুরক্ষিত অ্যাক্সেসের জন্য এবং কোনো ক্ষতিকারক ব্যবহারকারীকে অননুমোদিত পোর্টেবল স্টোরেজ ডিভাইস থেকে সিস্টেম বুট করতে বাধা দেওয়ার জন্য পাসওয়ার্ড, অথবা সিস্টেম বুট করার পাসওয়ার্ড নির্ধারণ করা

### হার্ডওয়্যার মনিটরিং

একটি আধুনিক বিআইওএস সেটআপ স্ক্রিনে প্রায়শই একটি **পিসি হেলথ স্ট্যাটাস** (PC Health Status) বা **হার্ডওয়্যার মনিটরিং** (Hardware Monitoring) ট্যাব থাকে, যা সরাসরি মেইনবোর্ডের হার্ডওয়্যার মনিটর চিপের সাথে যুক্ত থাকে। এর ফলে সিপিইউ এবং চ্যাসিসের তাপমাত্রা, পাওয়ার সাপ্লাই ইউনিট থেকে সরবরাহকৃত ভোল্টেজ পর্যবেক্ষণ করা সম্ভব হয়, পাশাপাশি মাদারবোর্ডের সাথে যুক্ত ফ্যানগুলোর গতি পর্যবেক্ষণ ও নিয়ন্ত্রণ করা যায়।

একবার সিস্টেম বুট হয়ে গেলে, হার্ডওয়্যার মনিটরিং এবং কম্পিউটারের ফ্যান নিয়ন্ত্রণ সাধারণত সরাসরি হার্ডওয়্যার মনিটর চিপ দ্বারাই সম্পন্ন হয়। এটি একটি আলাদা চিপ হতে পারে যা I²C বা এসএমবাসের (SMBus) মাধ্যমে যুক্ত থাকে, অথবা এটি সুপার আই/ও (Super I/O) সমাধানের একটি অংশ হিসেবেও আসতে পারে যা ইন্ডাস্ট্রি স্ট্যান্ডার্ড আর্কিটেকচার (ISA) বা লো পিন কাউন্টের (LPC) মাধ্যমে যুক্ত থাকে। কিছু অপারেটিং সিস্টেমে, যেমন envsys-সহ নেটবিএসডি (NetBSD) এবং sysctl hw.sensors-সহ ওপেনবিএসডি (OpenBSD), হার্ডওয়্যার মনিটরের সাথে ইন্টিগ্রেটেড ইন্টারফেসিংয়ের সুবিধা থাকে।

তবে কিছু পরিস্থিতিতে বিআইওএস এসিপিআই (ACPI)-এর মাধ্যমে হার্ডওয়্যার মনিটরিং সম্পর্কে প্রাথমিক তথ্যও প্রদান করে; সেক্ষেত্রে অপারেটিং সিস্টেম হার্ডওয়্যার মনিটরিংয়ের জন্য এসিপিআই ব্যবহার করতে পারে।

### পুনরায় প্রোগ্রামিং

আধুনিক পিসিগুলোতে বিআইওএস পুনরায় লিখনযোগ্য ইইপিরম (EEPROM) বা নর ফ্ল্যাশ মেমোরিতে (NOR flash memory) সংরক্ষিত থাকে, যার ফলে এর ভেতরের বিষয়বস্তু পরিবর্তন বা সংশোধন করা যায়। বিষয়বস্তু পুনরায় লেখার এই প্রক্রিয়াকে অনেক সময় *ফ্ল্যাশিং (flashing)* বলা হয়। এটি একটি বিশেষ প্রোগ্রামের সাহায্যে করা যায়, যা সাধারণত সিস্টেম প্রস্তুতকারক কর্তৃক সরবরাহ করা হয়। এছাড়া হার্ড ড্রাইভ বা ইউএসবি ফ্ল্যাশ ড্রাইভে থাকা বিআইওএস ইমেজের মাধ্যমে পোস্ট (POST)-এর সময়ও এটি করা সম্ভব। এ ধরনের বিষয়বস্তু ধারণকারী কোনো ফাইলকে অনেক সময় "বিআইওএস ইমেজ" বলা হয়। বাগ সংশোধন, কর্মক্ষমতা বৃদ্ধি অথবা নতুন হার্ডওয়্যার সমর্থন করার জন্য নতুন সংস্করণে আপগ্রেড করতে বিআইওএস রিফ্ল্যাশ করা হতে পারে। কিছু কম্পিউটার আপডেট ফ্লপি ডিস্ক বা হার্ড ড্রাইভের একটি বিশেষ পার্টিশনের মাধ্যমেও বিআইওএস আপডেট করা সমর্থন করে।
## হার্ডওয়্যার ==  মূল IBM PC BIOS (এবং ক্যাসেট BASIC) মাদারবোর্ডের সকেটে থাকা মাস্ক-প্রোগ্রামড [[রিড-অনলি মেমোরি]] (ROM) চিপে সংরক্ষিত ছিল। ROM প্রতিস্থাপন করা যেত, তবে ব্যবহারকারীরা তা পরিবর্তন করতে পারতেন না। হালনাগাদ করার সুবিধার্থে, অনেক সামঞ্জস্যপূর্ণ কম্পিউটারে পুনঃপ্রোগ্রামযোগ্য BIOS মেমোরি ডিভাইস যেমন [[ইপিরম]], [[ইইপ্রম]] এবং পরবর্তীতে [[ফ্ল্যাশ মেমোরি]] (সাধারণত [[এনওআর ফ্ল্যাশ]]) ব্যবহৃত হতে শুরু করে। BIOS প্রস্তুতকারক Micro Firmware-এর সভাপতি রবার্ট ব্রেভারের মতে, '''ফ্ল্যাশ BIOS''' চিপ প্রায় ১৯৯৫ সালের দিকে সাধারণ হয়ে ওঠে, কারণ বৈদ্যুতিকভাবে মুছনযোগ্য PROM (EEPROM) চিপগুলি মানক [[অতিবেগুনি]]-মুছনযোগ্য PROM ([[ইপিরম]]) চিপের তুলনায় সস্তা এবং প্রোগ্রাম করা সহজ। ফ্ল্যাশ চিপ ইন-সার্কিট অবস্থায়ই প্রোগ্রাম (এবং পুনঃপ্রোগ্রাম) করা যায়, যেখানে EPROM চিপ পুনঃপ্রোগ্রামের জন্য মাদারবোর্ড থেকে খুলে ফেলতে হয়। নতুন হার্ডওয়্যারের সুবিধা নেওয়া এবং পূর্ববর্তী BIOS সংস্করণের ত্রুটি সংশোধনের জন্য BIOS সংস্করণ উন্নীত করা হয়।
 
IBM AT থেকে শুরু করে, পিসিগুলো BIOS-এর মাধ্যমে সেটযোগ্য একটি হার্ডওয়্যার ঘড়ি সমর্থন করত। এতে একটি শতাব্দী বিট ছিল, যা ২০০০ সাল আসার সময় শতাব্দী ম্যানুয়ালি পরিবর্তনের সুযোগ দিত। ১৯৯৫ সালে তৈরি অধিকাংশ BIOS সংস্করণ এবং ১৯৯৭ সালের প্রায় সব BIOS সংস্করণ ৩১ ডিসেম্বর ১৯৯৯ মধ্যরাত পেরিয়ে ঘড়ি পরিবর্তনের সময় স্বয়ংক্রিয়ভাবে শতাব্দী বিট সেট করে ২০০০ সালের সমস্যা সমর্থন করত।
 
প্রথম ফ্ল্যাশ চিপগুলো আইএসএ বাস-এর সাথে সংযুক্ত ছিল। ১৯৯৮ সাল থেকে BIOS ফ্ল্যাশ নতুন একটি মানক বাস্তবায়ন “ফার্মওয়্যার হাব” (FWH) অনুসরণ করে এলপিসি বাস-এ স্থানান্তরিত হয়। ২০০৫ সালে BIOS ফ্ল্যাশ মেমোরি এসপিআই বাস-এ স্থানান্তরিত হয়।
 
নতুন বৈশিষ্ট্য কোডে যুক্ত হওয়ার সাথে সাথে BIOS-এর আকার এবং যে ROM, EEPROM বা অন্যান্য মাধ্যমে এটি সংরক্ষিত হয় তার ধারণক্ষমতা সময়ের সাথে বৃদ্ধি পেয়েছে; বর্তমানে BIOS সংস্করণ ৩২ মেগাবাইট পর্যন্ত আকারের পাওয়া যায়। তুলনাস্বরূপ, মূল IBM PC BIOS একটি ৮ KB মাস্ক ROM-এ সংরক্ষিত ছিল। কিছু আধুনিক মাদারবোর্ডে আরও বড় NAND ফ্ল্যাশ মেমোরি আইসি অন্তর্ভুক্ত থাকে, যা সম্পূর্ণ কমপ্যাক্ট অপারেটিং সিস্টেম, যেমন কিছু লিনাক্স ডিস্ট্রিবিউশন, সংরক্ষণ করতে সক্ষম। উদাহরণস্বরূপ, কিছু ASUS নোটবুকে তাদের NAND ফ্ল্যাশ মেমোরি আইসিতে এমবেড করা স্প্ল্যাশটপ ওএস অন্তর্ভুক্ত ছিল। তবে BIOS-এর সাথে অপারেটিং সিস্টেম ROM-এ অন্তর্ভুক্ত করার ধারণা নতুন নয়; ১৯৮০-এর দশকে Microsoft MS-DOS-এর জন্য একটি ROM বিকল্প প্রস্তাব করেছিল, এবং এটি কিছু পিসি ক্লোনের ROM-এ অন্তর্ভুক্ত ছিল, যেমন ট্যান্ডি ১০০০ এইচএক্স।
 
IBM PC AT এবং প্রাথমিক সামঞ্জস্যপূর্ণ কম্পিউটারগুলোতে আরেক ধরনের ফার্মওয়্যার চিপ পাওয়া যেত। AT-তে, কীবোর্ড ইন্টারফেস একটি মাইক্রোকন্ট্রোলার দ্বারা নিয়ন্ত্রিত হতো, যার নিজস্ব প্রোগ্রামযোগ্য মেমোরি ছিল। IBM AT-এ এটি ছিল ৪০-পিন সকেটযুক্ত ডিভাইস, আর কিছু নির্মাতা এই চিপের EPROM সংস্করণ ব্যবহার করত যা EPROM-এর মতো দেখাত। এই কন্ট্রোলারকে এক মেগাবাইট সীমার উপরের মেমোরি ব্যবস্থাপনার জন্য এ২০ গেট ফাংশনও দেওয়া হয়েছিল; কখনও কখনও উচ্চ মেমোরি ব্যবহার করতে সক্ষম সফটওয়্যারের সুবিধা নিতে এই “কীবোর্ড BIOS” আপগ্রেড প্রয়োজন হতো। 
 
BIOS-এ মেমোরি রেফারেন্স কোড (MRC)-এর মতো উপাদান থাকতে পারে, যা মেমোরি প্রারম্ভিকীকরণের (যেমন এসপিডি এবং মেমোরি টাইমিংস প্রারম্ভিকীকরণ) জন্য দায়ী।
 
আধুনিক BIOS-এ ইন্টেল ম্যানেজমেন্ট ইঞ্জিন অথবা এএমডি প্ল্যাটফর্ম সিকিউরিটি প্রসেসর ফার্মওয়্যার অন্তর্ভুক্ত থাকে।
## বিক্রেতা ও পণ্য

আইবিএম (IBM) তাদের মূল পিসি, পিসি এক্সটি, পিসি এটি এবং অন্যান্য সমসাময়িক পিসি মডেলের বিআইওএস-এর পূর্ণ তালিকা প্রতিটি যন্ত্রের *আইবিএম পিসি টেকনিক্যাল রেফারেন্স ম্যানুয়াল*-এর পরিশিষ্টে প্রকাশ করেছিল। বিআইওএস তালিকা প্রকাশের একটি সুবিধা ছিল এই যে, এর মাধ্যমে ব্যবহারকারীরা বিআইওএস ঠিক কী কাজ করে এবং কীভাবে করে তা সরাসরি দেখতে পারতেন। তবে এসব বিআইওএস-এর কপিরাইট আইবিএম-এর অধীনেই ছিল, ফলে অন্যান্য নির্মাতারা সেগুলো ব্যবহার করতে পারতেন না।

১৯৮৩ সালের মার্চ মাসে, কমপ্যাক তাদের কমপ্যাক পোর্টেবল প্রকাশ করে, যাতে 'ক্লিন-রুম' পদ্ধতিতে নির্মিত একটি বিআইওএস অন্তর্ভুক্ত ছিল। এর মাধ্যমে কমপ্যাক সফলভাবে আইবিএম পিসি ক্লোন করা প্রথম কোম্পানিতে পরিণত হয়। তবে কমপ্যাক তাদের বিআইওএস অন্যান্য কম্পিউটার নির্মাতাদের জন্য উন্মুক্ত করেনি।

১৯৮৪ সালের মে মাসে, ফিনিক্স সফটওয়্যার অ্যাসোসিয়েটস তাদের প্রথম রম-বিআইওএস প্রকাশ করে। এই বিআইওএস ওইএম (OEM) কোম্পানিগুলোকে আইবিএম পিসি বিআইওএস নিজে রিভার্স-ইঞ্জিনিয়ার না করেই (যেমনটা কমপ্যাক তাদের পোর্টেবলের ক্ষেত্রে করেছিল) কার্যত সম্পূর্ণ সামঞ্জস্যপূর্ণ ক্লোন তৈরি করতে সক্ষম করে; এর ফলে পিসি-সামঞ্জস্যপূর্ণ শিল্পের প্রসার এবং আইবিএম-বহির্ভূত ডস (DOS) সংস্করণগুলোর বিক্রয় বৃদ্ধি পায়। প্রথম আমেরিকান মেগাট্রেন্ডস (এএমআই) বিআইওএস ১৯৮৬ সালে প্রকাশিত হয়।

বিআইওএসে সংযোজিত নতুন মানসমূহ সাধারণত পূর্ণাঙ্গ উন্মুক্ত নথিপত্র বা বিআইওএস তালিকা ছাড়াই যুক্ত হয়। ফলে আইবিএম-বহির্ভূত বহু সংযোজন সম্পর্কে বিআইওএসের মূল পরিষেবাগুলোর মতো গভীরভাবে জানা সহজ নয়।

অনেক পিসি মাদারবোর্ড সরবরাহকারী কোনো বাণিজ্যিক তৃতীয় পক্ষের কাছ থেকে বিআইওএস 'কোর' এবং টুলকিট লাইসেন্স নিত, যাদের 'স্বাধীন বিআইওএস বিক্রেতা' বা আইবিভি (IBV) বলা হতো। পরে মাদারবোর্ড নির্মাতারা তাদের নিজস্ব হার্ডওয়্যারের উপযোগী করে এই বিআইওএস কাস্টমাইজ করত। এই কারণে হালনাগাদ বিআইওএস সাধারণত সরাসরি মাদারবোর্ড নির্মাতার কাছ থেকেই সংগ্রহ করা হয়। প্রধান আইবিভি-দের মধ্যে ছিল আমেরিকান মেগাট্রেন্ডস (এএমআই), ইনসাইড সফটওয়্যার, ফিনিক্স টেকনোলজিস এবং বায়োসফট (Byosoft)। মাইক্রয়েড রিসার্চ এবং অ্যাওয়ার্ড সফটওয়্যার ১৯৯৮ সালে ফিনিক্স টেকনোলজিস দ্বারা অধিগৃহীত হয়; পরবর্তীতে ফিনিক্স 'অ্যাওয়ার্ড' ব্র্যান্ড নামটি পর্যায়ক্রমে বন্ধ করে দেয় (যদিও অ্যাওয়ার্ড বিআইওএস সংস্করণগুলোতে ২০০১–২০০২ সাল পর্যন্ত অ্যাওয়ার্ড সফটওয়্যারের নাম উল্লেখ ছিল, এবং ফিনিক্স ইউইএফআই (UEFI) ফার্মওয়্যারে ২০১২ সালের শেষ পর্যন্ত AWRDACPI উল্লেখ ছিল)। জেনারেল সফটওয়্যার, যা ২০০৭ সালে ফিনিক্স অধিগ্রহণ করে, ইনটেল প্রসেসর-ভিত্তিক এমবেডেড সিস্টেমের জন্য বিআইওএস বিক্রি করত।

সিবিআইওএস একটি উন্মুক্ত-সোর্স বিআইওএস বাস্তবায়ন।
## উন্মুক্ত-সোর্স BIOS প্রতিস্থাপন
উন্মুক্ত-সোর্স সম্প্রদায় মালিকানাধীন BIOS এবং এর ভবিষ্যৎ রূপগুলোর পরিবর্তে উন্মুক্ত-সোর্স বিকল্প উন্নয়নে তাদের প্রচেষ্টা বাড়িয়েছে। ওপেন ফার্মওয়্যার ছিল বুট ফার্মওয়্যারের জন্য একটি উন্মুক্ত স্পেসিফিকেশন তৈরির প্রাথমিক প্রচেষ্টা। এটি প্রথমে IEEE-এর *IEEE 1275-1994* মান হিসেবে অনুমোদিত হয়েছিল, কিন্তু ২০০৫ সালে তা প্রত্যাহার করা হয়। পরবর্তী উদাহরণগুলোর মধ্যে রয়েছে ওপেনবায়োস, কোরবুট এবং লিব্রেবুট প্রকল্প। এএমডি কোরবুট ব্যবহারের জন্য কিছু চিপসেটের পণ্য-স্পেসিফিকেশন সরবরাহ করেছে, এবং গুগল এই প্রকল্পে পৃষ্ঠপোষকতা করছে। মাদারবোর্ড নির্মাতা টায়ান তাদের অপ্টেরন সিরিজের মাদারবোর্ডে মানক BIOS-এর পাশাপাশি কোরবুট সরবরাহ করে।
## নিরাপত্তা

EEPROM এবং ফ্ল্যাশ মেমোরি চিপগুলো সুবিধাজনক কারণ ব্যবহারকারী এগুলো সহজেই আপডেট করতে পারেন। হার্ডওয়্যার প্রস্তুতকারকদের জন্য তাদের পণ্যের মানোন্নয়ন, সামঞ্জস্য বৃদ্ধি এবং সফটওয়্যার বাগ দূর করার জন্য বিআইওএস আপডেট প্রকাশ করা একটি প্রচলিত রীতি। তবে এই সুবিধার সাথে একটি ঝুঁকিও রয়েছে—ভুলভাবে সম্পন্ন বা মাঝপথে বন্ধ হয়ে যাওয়া বিআইওএস আপডেট কম্পিউটার বা ডিভাইসকে অকেজো করে দিতে পারে। এই পরিস্থিতি এড়াতে সাম্প্রতিক বিআইওএসগুলো "বুট ব্লক" (boot block) ব্যবহার করে; এটি বিআইওএসের এমন একটি অংশ যা সবার আগে চালু হয় এবং একে আলাদাভাবে আপডেট করতে হয়। এই কোডটি বিআইওএসের বাকি অংশ অক্ষত আছে কি না তা পরীক্ষা করে (হ্যাশ ফাংশন চেকসাম বা অন্য পদ্ধতি ব্যবহার করে) এবং এরপর নিয়ন্ত্রণ হস্তান্তর করে। যদি বুট ব্লক মূল বিআইওএসে কোনো ত্রুটি খুঁজে পায়, তবে এটি সাধারণত ব্যবহারকারীকে সতর্ক করে যে একটি রিমুভেবল মিডিয়া (ফ্লপি, সিডি বা ইউএসবি ফ্ল্যাশ ড্রাইভ) থেকে বুট করে পুনরুদ্ধার প্রক্রিয়া শুরু করতে হবে, যাতে ব্যবহারকারী পুনরায় বিআইওএস ফ্ল্যাশ করার চেষ্টা করতে পারেন। কিছু মাদারবোর্ডে একটি 'ব্যাকআপ' বিআইওএস থাকে (যাকে অনেক সময় ডুয়াল-বিআইওএস বলা হয়), যা বিআইওএসের ত্রুটি থেকে পুনরুদ্ধারে সহায়তা করে এবং তারা এর জন্য একটি বিশেষ পিএলসি ব্যবহার করে।

বিআইওএস-কে আক্রমণ করে এমন অন্তত পাঁচটি পরিচিত ভাইরাস রয়েছে, যার মধ্যে দুটি ছিল কেবল প্রদর্শনের উদ্দেশ্যে তৈরি। প্রথম যে ভাইরাসটি বাস্তবে ছড়িয়ে পড়তে দেখা গিয়েছিল সেটি হলো 'মেব্রোমি' (Mebromi), যা চীনা ব্যবহারকারীদের লক্ষ্য করে তৈরি করা হয়েছিল।

প্রথম বিআইওএস ভাইরাসটি ছিল 'বিআইওএস মেনিনজাইটিস' (BIOS Meningitis), যা বিআইওএস চিপ মুছে ফেলার বদলে সেগুলোকে সংক্রমিত করত। সিআইএইচ-এর মতো ভাইরাসের তুলনায় বিআইওএস মেনিনজাইটিস তুলনামূলকভাবে কম ক্ষতিকারক ছিল।

দ্বিতীয় বিআইওএস ভাইরাসটি ছিল সিআইএইচ, যা "চেরনোবিল ভাইরাস" নামেও পরিচিত। এটি সামঞ্জস্যপূর্ণ চিপসেটগুলোতে ফ্ল্যাশ রম বিআইওএসের বিষয়বস্তু মুছে ফেলতে সক্ষম ছিল। সিআইএইচ ১৯৯৮ সালের মাঝামাঝি সময়ে আবির্ভূত হয় এবং ১৯৯৯ সালের এপ্রিলে সক্রিয় হয়ে ওঠে। প্রায়শই সংক্রমিত কম্পিউটারগুলো আর বুট করা যেত না এবং মাদারবোর্ড থেকে ফ্ল্যাশ রম আইসি (IC) খুলে তা পুনরায় প্রোগ্রাম করতে হতো। সিআইএইচ তৎকালীন সময়ে বহুল ব্যবহৃত ইনটেল আই৪৩০টিএক্স (i430TX) মাদারবোর্ড চিপসেটকে লক্ষ্যবস্তু করেছিল। এটি সেই সময়ে প্রচলিত উইন্ডোজ ৯এক্স অপারেটিং সিস্টেমের একটি দুর্বলতাকে কাজে লাগিয়েছিল, যা সব প্রোগ্রামকে সরাসরি হার্ডওয়্যার অ্যাক্সেসের অনুমতি দিত।

আধুনিক সিস্টেমগুলো সিআইএইচ ভাইরাসের প্রতি সংবেদনশীল নয়, কারণ বর্তমানে ইনটেল আই৪৩০টিএক্স চিপসেটের সাথে অসামঞ্জস্যপূর্ণ বিভিন্ন ধরনের চিপসেট এবং অন্যান্য ধরনের ফ্ল্যাশ রম আইসি ব্যবহৃত হয়। এছাড়া বুট ব্লকের মাধ্যমে অনিচ্ছাকৃত বিআইওএস রিরাইট থেকে সুরক্ষার ব্যবস্থা থাকে যা দুর্ঘটনাবশত ওভাররাইট হওয়া প্রতিরোধ করে। ডুয়াল বিআইওএস যুক্ত সিস্টেমগুলো সিস্টেম ক্র্যাশ করলে ব্যাকআপ বিআইওএস ব্যবহার করতে পারে। তাছাড়া FreeBSD, Linux, macOS, উইন্ডোজ এনটি-ভিত্তিক অপারেটিং সিস্টেম যেমন Windows 2000, Windows XP এবং পরবর্তী আধুনিক অপারেটিং সিস্টেমগুলো একটি হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার ব্যবহারের মাধ্যমে ইউজার-মোড প্রোগ্রামগুলোকে সরাসরি হার্ডওয়্যার অ্যাক্সেসের অনুমতি দেয় না।

এর ফলে ২০০৮ সাল নাগাদ সিআইএইচ মূলত ক্ষতিকারক প্রভাব হারিয়ে ফেলেছে; বড়জোর এটি এক্সিকিউটেবল ফাইলগুলোকে সংক্রমিত করে এবং অ্যান্টিভাইরাস সফটওয়্যার সক্রিয় করার মাধ্যমে বিরক্তির কারণ হতে পারে। তবে অন্যান্য বিআইওএস ভাইরাস সংক্রমণের সম্ভাবনা এখনও রয়ে গেছে; যেহেতু উইন্ডোজ ভিস্তা বা ৭-এর ইউএসি (UAC) সুবিধা নেই এমন বেশিরভাগ উইন্ডোজ হোম ব্যবহারকারী সব অ্যাপ্লিকেশন প্রশাসনিক সুবিধাসহ (administrative privileges) চালান, তাই তাত্ত্বিকভাবে একটি আধুনিক সিআইএইচ-এর মতো ভাইরাস কোনো এক্সপ্লয়েট ব্যবহার না করেই হার্ডওয়্যার অ্যাক্সেস পেতে পারে। অপারেটিং সিস্টেম OpenBSD সব ব্যবহারকারীকেই এই অ্যাক্সেস থেকে বিরত রাখে এবং লিনাক্স কার্নেলের জন্য 'জিআরসিকিউরিটি' (grsecurity) প্যাচও ডিফল্টভাবে এই সরাসরি হার্ডওয়্যার অ্যাক্সেস প্রতিরোধ করে। এক্ষেত্রে পার্থক্য হলো, আক্রমণকারীকে অনেক বেশি কঠিন কার্নেল স্তরের এক্সপ্লয়েট ব্যবহার করতে হয় বা মেশিনটি রিবুট করতে হয়।

তৃতীয় বিআইওএস ভাইরাসটি ছিল যুক্তরাজ্যভিত্তিক 'নেক্সট-জেনারেশন সিকিউরিটি সফটওয়্যার'-এর প্রধান নিরাপত্তা পরামর্শদাতা জন হিজম্যানের প্রদর্শিত একটি কৌশল। ২০০৬ সালে ব্ল্যাক হ্যাট নিরাপত্তা সম্মেলনে তিনি দেখান যে কীভাবে ফ্ল্যাশ মেমোরিতে সংরক্ষিত সাধারণ এসিপিআই (ACPI) ফাংশনগুলোকে ক্ষতিকারক প্রসিডিউর দ্বারা প্রতিস্থাপন করে প্রিভিলেজ বৃদ্ধি করা যায় এবং ফিজিক্যাল মেমোরি পড়া যায়।

চতুর্থ বিআইওএস ভাইরাসটি ছিল "পারসিস্টেন্ট বিআইওএস ইনফেকশন" (Persistent BIOS infection) নামক একটি কৌশল। এটি ২০০৯ সালে ভ্যাঙ্কুভারে 'ক্যানসেকওয়েস্ট' (CanSecWest) নিরাপত্তা সম্মেলনে এবং সিঙ্গাপুরে 'সিস্ক্যান' (SyScan) নিরাপত্তা সম্মেলনে প্রদর্শিত হয়। কোর সিকিউরিটি টেকনোলজিসের গবেষক আনিবাল সাকো এবং আলফ্রেডো ওর্তেগা দেখান যে কীভাবে বিআইওএস-এর ডিকম্প্রেশন রুটিনে ক্ষতিকারক কোড ঢুকিয়ে দেওয়া যায়, যার ফলে অপারেটিং সিস্টেম বুট হওয়ার আগেই স্টার্ট-আপের সময় পিসির ওপর প্রায় পূর্ণ নিয়ন্ত্রণ পাওয়া সম্ভব। এই প্রুফ-অফ-কনসেপ্টটি বিআইওএস প্রয়োগের কোনো ত্রুটিকে কাজে লাগায় না, বরং সাধারণ বিআইওএস ফ্ল্যাশিং প্রক্রিয়াকে ব্যবহার করে। সুতরাং এর জন্য মেশিনে সরাসরি ফিজিক্যাল অ্যাক্সেস প্রয়োজন অথবা ব্যবহারকারীকে রুট (root) হতে হয়। এই শর্তগুলো থাকা সত্ত্বেও ওর্তেগা তার এবং সাকোর এই আবিষ্কারের গভীর প্রভাবের ওপর জোর দেন: "আমরা একটি পূর্ণাঙ্গ কার্যকর রুটকিট প্রদানের জন্য একটি ড্রাইভারকে প্যাচ করতে পারি। এমনকি আমাদের কাছে ছোট কোড আছে যা অ্যান্টিভাইরাস মুছে ফেলতে বা নিষ্ক্রিয় করতে পারে।"

মেব্রোমি (Mebromi) হলো একটি ট্রোজান হর্স যা AwardBIOS, মাইক্রোসফট উইন্ডোজ এবং দুটি চীনা কোম্পানি রাইজিং অ্যান্টিভাইরাস ও জিয়াংমিন কেভি অ্যান্টিভাইরাসের অ্যান্টিভাইরাস সফটওয়্যারকে লক্ষ্যবস্তু করে। মেব্রোমি একটি রুটকিট ইনস্টল করে যা মাস্টার বুট রেকর্ডকে সংক্রমিত করে।

২০১৩ সালের ডিসেম্বরে *[[60 Minutes|৬০ মিনিটস]]*-এর একটি সাক্ষাৎকারে মার্কিন ন্যাশনাল সিকিউরিটি এজেন্সির ইনফরমেশন অ্যাসুরেন্স ডিরেক্টর ডেবোরা প্লাঙ্কেট দাবি করেন যে, এনএসএ একটি ভিনদেশি রাষ্ট্রের বিআইওএস আক্রমণ উন্মোচন ও ব্যর্থ করে দিয়েছে যা মার্কিন আর্থিক ব্যবস্থাকে লক্ষ্য করে চালানো হয়েছিল। ওই অনুষ্ঠানে বেনামী সূত্রের বরাতে দাবি করা হয় যে এটি একটি চীনা চক্রান্ত ছিল। তবে পরবর্তীতে *[[The Guardian|দ্য গার্ডিয়ান]],* *[[The Atlantic|দ্য আটলান্টিক]],* *[[Wired (magazine)|উইয়ার্ড]]* এবং *[[The Register|দ্য রেজিস্টার]]*-এর নিবন্ধগুলো এনএসএ-এর এই দাবিকে খণ্ডন করে।

নতুন ইনটেল প্ল্যাটফর্মগুলোতে ইনটেল বুট গার্ড (আইবিজি) প্রযুক্তি সক্রিয় থাকে। এই প্রযুক্তি স্টার্টআপের সময় বিআইওএস ডিজিটাল সিগনেচার পরীক্ষা করে এবং আইবিজি পাবলিক কি প্ল্যাটফর্ম কন্ট্রোলার হাবে (PCH) ফিউজড অবস্থায় থাকে। সাধারণ ব্যবহারকারীরা এই ফাংশনটি নিষ্ক্রিয় করতে পারেন না।
## বিকল্প ও উত্তরসূরি

ইউনিফায়েড এক্সটেনসিবল ফার্মওয়্যার ইন্টারফেস (UEFI) বহু নতুন যন্ত্রে BIOS-এর পরিপূরক হিসেবে ব্যবহৃত হয়। প্রাথমিকভাবে এটি ইন্টেল ইটানিয়াম স্থাপত্য-এর জন্য লেখা হয়েছিল; বর্তমানে UEFI x86 এবং এআরএম প্ল্যাটফর্মের জন্যও উপলব্ধ। এর স্পেসিফিকেশন উন্নয়ন পরিচালনা করে ইউনিফায়েড ইএফআই ফোরাম, যা একটি শিল্পভিত্তিক বিশেষ স্বার্থ গোষ্ঠী। EFI বুটিং কেবলমাত্র মাইক্রোসফট উইন্ডোজ-এর সেই সংস্করণগুলোতে সমর্থিত ছিল, যেগুলো জিপিটি সমর্থন করে, পাশাপাশি লিনাক্স কার্নেল ২.৬.১ এবং পরবর্তী সংস্করণ, এবং ম্যাকওএস-এ ইন্টেল-ভিত্তিক ম্যাক-এও এটি সমর্থিত।  অনুযায়ী, নতুন পিসি হার্ডওয়্যার প্রধানত UEFI ফার্মওয়্যারসহ সরবরাহ করা হয়। রুটকিট সুরক্ষা ব্যবস্থার স্থাপত্য ব্যবহারকারীর নিজস্ব সফটওয়্যার পরিবর্তন চালাতে বাধা দিতে পারে, যা উন্মুক্ত হার্ডওয়্যার সম্প্রদায়ে পুরোনো BIOS-এর বিকল্প হিসেবে UEFI-কে বিতর্কিত করেছে। উইন্ডোজ ৮ এবং তার পরবর্তী সংস্করণসহ ডিভাইসগুলোর জন্য UEFI বাধ্যতামূলক, অনুরূপভাবে, উইন্ডোজ ১১ বুট করার জন্যও UEFI প্রয়োজন, তবে উইন্ডোজ ১১-এর IoT Enterprise সংস্করণ এর ব্যতিক্রম।

২০১০-এর দশকে UEFI জনপ্রিয় হওয়ার পর, পুরোনো BIOS যা বায়োস ইন্টারাপ্ট কল সমর্থন করত, তাকে "লিগ্যাসি BIOS" নামে পুনঃনামকরণ করা হয়।

x86 জগতে "লিগ্যাসি BIOS"-এর কার্যকারিতার অন্যান্য বিকল্পের মধ্যে রয়েছে কোরবুট এবং লিব্রেবুট।

কিছু সার্ভার ও ওয়ার্কস্টেশন প্ল্যাটফর্ম-স্বাধীন ওপেন ফার্মওয়্যার (IEEE-1275) ব্যবহার করে, যা ফোর্থ প্রোগ্রামিং ভাষার উপর ভিত্তি করে নির্মিত। এটি Sun-এর এসপিএআরসি কম্পিউটার, IBM-এর আরএস/৬০০০ লাইন, এবং অন্যান্য পাওয়ারপিসি সিস্টেম যেমন সিএইচআরপি মাদারবোর্ডের সাথে অন্তর্ভুক্ত ছিল; পাশাপাশি x86-ভিত্তিক ওএলপিসি এক্সও-১-এও ব্যবহৃত হয়েছে।

অন্তত ২০১৫ সাল পর্যন্ত, অ্যাপল ইন্টেল-ভিত্তিক ম্যাক-এ UEFI মনিটর থেকে লিগ্যাসি BIOS সমর্থন সরিয়ে দিয়েছে। ফলে, BIOS ইউটিলিটি আর লিগ্যাসি বিকল্প সমর্থন করে না এবং "Legacy mode not supported on this system" বার্তা প্রদর্শন করে।

২০১৭ সালে, Intel ঘোষণা করে যে তারা ২০২০ সালের মধ্যে লিগ্যাসি BIOS সমর্থন অপসারণ করবে। ২০১৯ সাল থেকে, নতুন Intel প্ল্যাটফর্মের OEM পিসিগুলো আর লিগ্যাসি বিকল্প সমর্থন করে না।
## আরও দেখুন
* ডাবল বুট
* এক্সটেন্ডেড সিস্টেম কনফিগারেশন ডাটা (ESCD)
* ইনপুট/আউটপুট কন্ট্রোল সিস্টেম
* এসিপিআই (অ্যাডভান্সড কনফিগারেশন অ্যান্ড পাওয়ার ইন্টারফেস)
* রালফ ব্রাউনের ইন্টারাপ্ট লিস্ট (RBIL)x86 স্থাপত্যের জন্য ইন্টারাপ্ট, কল, ইন্টারফেস, ডাটা স্ট্রাকচার, মেমরি ও পোর্ট ঠিকানা এবং প্রসেসর অপকোড
* সিস্টেম ম্যানেজমেন্ট BIOS (SMBIOS)
* ইউইএফআই (ইউনিফায়েড এক্সটেনসিবল ফার্মওয়্যার ইন্টারফেস)
* ডাস ইউ-বুট, যা প্রায়শই এমবেডেড সিস্টেমে ব্যবহৃত হয়
* UBIOS
## টীকা

## তথ্যসূত্র

## আরও পাঠ্য
* 
* 
* 
* 
* 
* 
* , পিডিএফ বিন্যাসে বিনামূল্যে উপলব্ধ একটি বই https://web.archive.org/web/20220402165916/http://www.lejabeach.com/sisubb/BIOS_Disassembly_Ninjutsu_Uncovered.pdf
* More Power To Firmware, *Mac OS&nbsp;X Internals: A Systems Approach* বইয়ের একটি বিনামূল্যের অতিরিক্ত অধ্যায়
## বহিঃসংযোগ

* 
* 
* 
* 
* 
* 


বিষয়শ্রেণী:CP/M প্রযুক্তি
বিষয়শ্রেণী:DOS প্রযুক্তি
বিষয়শ্রেণী:এমুলেশন পরিভাষা
বিষয়শ্রেণী:উইন্ডোজ প্রযুক্তি
বিষয়শ্রেণী:আমেরিকান আবিষ্কার