ทำไมคอมพิวเตอร์ต้องมี BIOS?


35

BIOSซอฟแวร์ที่ถูกสร้างขึ้นลงในเครื่องคอมพิวเตอร์และเป็นรหัสการทำงานครั้งแรกโดย PC เมื่อขับเคลื่อนบน ( 'เฟิร์มแวบูต' บริการ) เมื่อพีซีเริ่มทำงานงานแรกสำหรับ BIOS คือการทดสอบตัวเองเมื่อเปิดเครื่องซึ่งจะเริ่มต้นและระบุอุปกรณ์ระบบเช่น CPU, RAM, การ์ดแสดงผลวิดีโอ, คีย์บอร์ดและเมาส์, ฮาร์ดดิสก์และไดรฟ์ออปติคัลดิสก์และ ฮาร์ดแวร์อื่น ๆ จากนั้นไบออสจะหาที่ตั้งของซอฟต์แวร์บูทโหลดเดอร์ที่จัดขึ้นบนอุปกรณ์ต่อพ่วง (กำหนดให้เป็น 'อุปกรณ์สำหรับบู๊ต') เช่นฮาร์ดดิสก์หรือซีดี / ดีวีดีและโหลดและเรียกใช้ซอฟต์แวร์นั้นทำให้ควบคุมพีซีได้ [2] กระบวนการนี้เรียกว่าการบูทหรือการบูทขึ้นซึ่งย่อมาจากการบูตสแตรป

ข้อกำหนดใดที่กำหนดว่าระบบคอมพิวเตอร์ต้องมี BIOS ติดตั้งอยู่หรือไม่

เหตุใดระบบปฏิบัติการไม่สามารถทำงานกับ BIOS ได้ทั้งหมด


40
ทำไมเครื่องยนต์รถยนต์ถึงต้องการสตาร์ทเตอร์? เครื่องยนต์ไม่ควรมีพลังมากพอที่จะสตาร์ทหรือไม่
Der Hochstapler

4
@OliverSalzburg นี้จะเป็นไปได้ในอนาคตอันใกล้เครื่องยนต์ก๊าซโดยไม่ต้องเริ่ม ด้วยการฉีดโดยตรงและคอมพิวเตอร์อย่างรวดเร็ว
Moab

2
พวกเขามีเครื่องยนต์ที่สตาร์ทเองแล้ว แต่ส่วนใหญ่มันจะเป็นเครื่องยนต์ 12 สูบหรือโรตารี่ เครื่องยนต์ส่วนใหญ่ไม่สามารถเริ่มด้วยตนเองได้เพราะพวกมันไม่สามารถผลิตพลังงานได้มากพอในจังหวะเดียวเพื่อเอาชนะช่วงเวลาแห่งความเฉื่อย การฉีดโดยตรงและช่วงเวลาที่ดีขึ้นอาจช่วยได้เล็กน้อย แต่จริงๆแล้วคุณต้องการเครื่องยนต์ที่มีน้ำหนักเบาเพื่อเพิ่มอัตราส่วนระหว่างพลังงานที่เกิดขึ้นใน Powertroke จนถึงช่วงเวลาของ Intertia ที่สร้างขึ้นโดยล้อเฟืองเพลาข้อเหวี่ยงเกียร์ ฯลฯ
Lèsemajesté

5
จริงๆแล้วไม่จำเป็นต้องใช้ BIOS ในพีซี คอมพิวเตอร์ IBM System / 360 และ / 370 (และอาจเป็นรุ่นที่ใหม่กว่า) เริ่มต้นด้วยคำสั่งแบบใช้สายเดียวที่อ่านระเบียนเดียวจากอุปกรณ์ที่เลือกโดยการหมุนบนคอนโซล บันทึกนั้นมีโปรแกรม bootstrap (ต้องมีขนาด 80 ไบต์ - การ์ดเจาะหนึ่งอัน) ซึ่งโหลดโปรแกรม bootstrap ที่ซับซ้อนมากขึ้นซึ่งโหลดระบบปฏิบัติการจากดิสก์ ฉันเดาว่า 'BIOS' เป็นคำสั่งเดียวที่เดินสายเมื่อคุณกดปุ่มขวา (เรียกว่า IPL หรือโหลดโปรแกรมเริ่มต้น)
อดีต Umbris

2
คุณกำลังสับสน "คอมพิวเตอร์" และ "พีซี" ในคำถามของคุณ นั่นเป็นเหตุผลที่คำตอบนั้นสับสนและบางครั้งก็ขัดแย้งกัน
rds

คำตอบ:


41

BIOS เป็นชิ้นส่วนของฮาร์ดแวร์ที่ขึ้นอยู่กับรหัสที่เก็บอยู่บนเมนบอร์ด ทุกเมนบอร์ดที่แตกต่างกันความต้องการ BIOS ที่กำหนดเองที่เขียนขึ้นสำหรับมันดังนั้นมันจะเป็นไปไม่ได้ที่จะมีการทั่วไป BIOS / OS ทั้งหมดในหนึ่งเดียว (แม้ว่า BIOS ทางเทคนิคเพียงเก็บไว้รหัสเพื่อให้คุณสามารถทฤษฎีเขียน OS สำหรับเมนบอร์ดอย่างใดอย่างหนึ่ง) . ดังที่คุณกล่าวถึงวัตถุประสงค์ของ BIOS คือการทำสิ่งต่อไปนี้:

เมื่อพีซีเริ่มทำงานงานแรกสำหรับ BIOS คือการทดสอบตัวเองเมื่อเปิดเครื่องซึ่งจะเริ่มต้นและระบุอุปกรณ์ระบบเช่น CPU, RAM, การ์ดแสดงผลวิดีโอ, คีย์บอร์ดและเมาส์, ฮาร์ดดิสก์และไดรฟ์ออปติคัลดิสก์และ ฮาร์ดแวร์อื่น ๆ

โปรดทราบว่าคุณยังสามารถเริ่มคอมพิวเตอร์ได้โดยไม่ต้องมีที่จัดเก็บข้อมูลภายนอก - ซึ่งเป็นสาเหตุที่ BIOS เป็นข้อกำหนดสำหรับคอมพิวเตอร์ กล่าวอีกนัยหนึ่ง BIOS จัดเตรียมอินเทอร์เฟซซอฟต์แวร์ทั่วไปเพื่อให้โปรแกรมคอมพิวเตอร์ที่เก็บไว้สามารถสื่อสารกับอุปกรณ์ฮาร์ดแวร์ต่าง ๆ ที่เชื่อมต่อกับเมนบอร์ด

ตัวอย่างเช่นถ้าฉันมีเมนบอร์ดที่แตกต่างกันสองตัวที่มีคอนโทรลเลอร์ SATA สองตัวที่แตกต่างกัน BIOS อนุญาตให้ฉันเขียนโค้ดที่สามารถใช้งานได้กับทั้งคู่โดยที่ฉันไม่รู้ว่าเมนบอร์ดส่งคำสั่งไปยังอุปกรณ์ SATA ได้อย่างไร ฉันแค่ต้องบอกคอมพิวเตอร์ว่า "อ่านเซกเตอร์ X จากอุปกรณ์ SATA นี้" และ BIOS รับผิดชอบในการส่งคำสั่งเหล่านั้นไปยังฮาร์ดแวร์

ที่จริงแล้วมันได้รับข้อมูล "อ่านเซกเตอร์ X" จากนั้นเป็นโปรแกรมที่จัดเก็บอยู่ภายใน BIOS ซึ่งโดยปกติจะสั่งให้คอมพิวเตอร์เริ่มอ่านจาก bootloader ที่เก็บไว้ในตำแหน่งทั่วไป ตำแหน่งทั่วไปเหล่านี้ได้รับการตกลงจากนักพัฒนาซอฟต์แวร์และฮาร์ดแวร์ต่างๆและมักจะมอบให้กับสาธารณะเพื่อให้สามารถใช้งานร่วมกันระหว่างระบบได้มากขึ้น

เมื่อมีการเชื่อมต่อระดับพื้นฐาน (อีกครั้งจะมีการสร้างการเชื่อมต่อแบบลอจิคัลผ่านซอฟต์แวร์) ระบบปฏิบัติการจะสร้างอินเทอร์เฟซทั่วไปกับอุปกรณ์ฮาร์ดแวร์ต่างๆของคุณ (โดยปกติจะใช้ "ไดรเวอร์อุปกรณ์") และระบบปฏิบัติการสามารถควบคุมฮาร์ดแวร์


สุดท้ายควรสังเกตว่าไบออสยังใช้เพื่อแก้ไขการกำหนดค่าฮาร์ดแวร์คอมพิวเตอร์และจัดเก็บไว้ใน EEPROM ออนบอร์ด (ดังนั้นคอมพิวเตอร์ของคุณจะจดจำการเปลี่ยนแปลงในครั้งต่อไปที่คุณเริ่มต้น) อย่างไรก็ตามตามที่ฉันได้กล่าวไปก่อนหน้านี้เมื่อโหลดระบบปฏิบัติการแล้วจะมีการควบคุมคอมพิวเตอร์อย่างสมบูรณ์

สิ่งนี้ช่วยให้ผู้ผลิตแผงวงจรหลักพัฒนาซอฟต์แวร์ที่ช่วยให้คุณสามารถทำการเปลี่ยนแปลงเหล่านี้ได้จากภายในระบบปฏิบัติการของคุณซึ่งแตกต่างจากการรีบูต BIOS อีกครั้งนี้ขึ้นอยู่กับฮาร์ดแวร์และซอฟต์แวร์ แต่ไปเพื่อแสดงให้เห็นว่าการเชื่อมต่อคอมพิวเตอร์ทั้งหมดนั้นสัมพันธ์กัน BIOS เป็นชื่อที่บ่งบอกถึง - ระบบอินพุต / เอาท์พุตพื้นฐานเพื่ออนุญาตให้มีซอฟต์แวร์อินเตอร์เฟซทั่วไปสำหรับโปรแกรมขั้นสูง ("ระบบปฏิบัติการ") เพื่อควบคุมเครื่อง


2
เมื่อคุณเริ่มคอมพิวเตอร์ BIOS จะทำงานเป็นรหัสเครื่องบนโปรเซสเซอร์ คุณสามารถคิดได้ว่ามันเป็นอย่างนั้น แต่ก็ไม่ได้ "ปิด" จริง ๆ - เพียงแค่เปลี่ยนไปใช้ระบบปฏิบัติการ เมื่อคุณเปิดเครื่องคอมพิวเตอร์ BIOS จะบอกให้คอมพิวเตอร์เริ่มประมวลผลรหัสเครื่องที่เก็บไว้ที่ตำแหน่ง X ใส่คำศัพท์เพิ่มเติมทั่วไป BIOS เพิ่งเริ่มทำงานฮาร์ดแวร์ของคุณและสั่งให้คอมพิวเตอร์ทำงานจากที่ใด
ความก้าวหน้า

13
BIOS / OS all-in-one เป็นไปไม่ได้ ฉันไม่รู้ว่าทำไมทุกคนที่นี่พูดอย่างนี้ต่อไป การมีแต่ละส่วนแยกอุปกรณ์ / ที่เก็บข้อมูลไม่ได้หมายความว่าไม่ได้เป็นส่วนหนึ่งของเอนทิตีที่เหมือนกัน คอมพิวเตอร์ก่อนพีซี IBM มีออลล์ - อิน - วันนั่นคือ BIOS ผลิตและพัฒนาโดยเครื่องเดียวที่พัฒนาเคอร์เนลระบบปฏิบัติการ ในความเป็นจริงการปรับปรุงระบบปฏิบัติการบางครั้งรวมถึงการปรับปรุง BIOS
m0skit0

3
@Oliver จริง ๆ แล้วด้วย ACPI ฟังก์ชั่น BIOS จะถูกใช้เป็นประจำหลังจากบูตระบบปฏิบัติการ
derobert

1
BIOS อนุญาตให้ระบบปฏิบัติการ (เลเยอร์ซอฟต์แวร์) โต้ตอบกับฮาร์ดแวร์ ไบออสและระบบปฏิบัติการมีจุดประสงค์ที่แตกต่างกัน พวกเขาเป็นสองส่วนทั้งหมด ไม่มีใครมาแทนที่คนอื่น
Ben Richards

1
@Breakthrough: ขึ้นอยู่กับว่าใครเป็นผู้ผลิตฮาร์ดแวร์;) ในกรณีของ IBM PCs วิวัฒนาการเชิงตรรกะคือผู้ผลิตไบออสและระบบปฏิบัติการอิสระเพราะมีฮาร์ดแวร์หลายประเภท สิ่งนี้ไม่ได้เกิดขึ้นในสมัยก่อน นี่คือเหตุผลที่พีซีเป็น (โชคดียกเว้นการมี M $ ในนั้นโดยไม่มีเหตุผล ... ) การปฏิวัติที่เปลี่ยนตลาดคอมพิวเตอร์ทั้งหมด
m0skit0

7

ระบบปฏิบัติการของคุณอยู่ในฮาร์ดดิสก์ของคุณหากคุณเปิดคอมพิวเตอร์มันจะไม่เริ่มอ่านจากฮาร์ดดิสก์นั้นอย่างน่าอัศจรรย์ เป็นไบออสที่โหลดตัวโหลดบูตจากฮาร์ดดิสก์รวมถึงทำการทดสอบและอนุญาตให้คุณกำหนดการตั้งค่าบางอย่างของ BIOS

ระบบปฏิบัติการของคุณไม่สามารถทำได้เนื่องจากอยู่ในฮาร์ดดิสก์และไม่ได้อยู่ใน ROM

ดังนั้นคุณต้องมี BIOS หรือเทคโนโลยีที่คล้ายกัน (แต่แตกต่างกัน) เช่น EFI ...

เป็นไปได้ที่จะใส่ส่วนหนึ่งของระบบปฏิบัติการใน ROM (รับผิดชอบในการโหลดบูตโหลดเดอร์ของระบบปฏิบัติการ) โดยผู้ผลิต; อย่างไรก็ตามสิ่งนี้ไม่สามารถใช้งานได้อย่างกว้างขวางและมี BIOS หรือ EFI อยู่แล้ว


1
คุณกำลังผสมสองแนวคิดที่แตกต่าง BIOS เป็นอิสระจากระบบปฏิบัติการนั่นคือ BIOS อาจเป็นส่วนหนึ่งของระบบปฏิบัติการ ตัวอย่างเช่นหากผลิตโดยผู้ผลิตรายเดียวกันและใช้งานได้กับระบบปฏิบัติการนั้นเท่านั้นเช่น bootstrappers ของคอนโซลเกม
m0skit0

5
"BIOS เป็นอิสระจากระบบปฏิบัติการนั่นคือ BIOS อาจเป็นส่วนหนึ่งของระบบปฏิบัติการ" ฮะ? ความขัดแย้งนั้นขัดแย้งมากฮ่า ๆ
พัฒนา

2
เครื่องเล่นเกมเป็นคอมพิวเตอร์ดังนั้น Atari, Amiga และ Macs เก่าจึงมีความเกี่ยวข้องแน่นอน @Breakthrough: นั่นไม่ใช่ความขัดแย้ง หมายความว่า BIOS ไม่มีส่วนเกี่ยวข้องกับระบบปฏิบัติการและอาจเป็นส่วนหนึ่งของมัน
m0skit0

@TomWijsman คุณเป็นเพียงคนเดียวที่หมุนรอบที่นี่ เกมคอนโซลเป็นส่วนหนึ่งของคอมพิวเตอร์ หากเป็นไปได้ที่คอนโซลบางเครื่องสามารถทำได้คอมพิวเตอร์บางเครื่องอาจเป็นไปได้ นอกจากนี้อย่าใช้ตัวหนาเช่นนั้น มันไม่เหมาะสม
luiscubal

1
@ TomWijsman เขามีจุดถ้าคอนโซลเกมสามารถทำมันได้แล้วคอมพิวเตอร์ก็สามารถทำได้ นอกจากนี้ตราบใดที่มันไม่ใช่คำถามหรือคำตอบฉันไม่เห็นปัญหาเกี่ยวกับการปิดหัวข้อ ความเห็นคือความคิดเห็นหลังจากทั้งหมด; ไม่มีอะไรเพิ่มเติมไม่มีอะไรน้อย (ไม่มีความคิดเห็นเกี่ยวกับปัญหาที่เป็นตัวหนา - สำหรับแต่ละคนของตัวเองแม้ว่าจะเกี่ยวข้องกับคำศัพท์มากขึ้น)
พัฒนา

6

ไม่มีเหตุผลเชิงตรรกะที่แท้จริง มันเป็นเรื่องของมรดกและประวัติศาสตร์มากกว่า

  1. ไม่จำเป็นต้องมีคอมพิวเตอร์ที่ต้องติดตั้ง BIOS เป็นมรดกจาก IBM PC แม้ว่าสิ่งนี้พิสูจน์แล้วว่าเป็นความคิดที่ดี

  2. การให้ระบบปฏิบัติการทำสิ่งนั้นจะไม่เปลี่ยนแปลงอะไรเลยเพราะมันจะทำสิ่งที่ BIOS ทำอยู่ แน่นอนว่าระบบปฏิบัติการจะต้องอยู่ใน ROM ไม่ใช่ในอุปกรณ์ I / O ปัญหาอาจเกิดขึ้นจากปัญหาการผูกขาดเมื่อผู้สร้างระบบปฏิบัติการตัดสินใจที่จะทำให้ระบบปฏิบัติการ BIOS ของเขาไม่สามารถทำงานร่วมกับระบบปฏิบัติการอื่น ๆ ได้ การให้ผู้ผลิต BIOS แยกต่างหากจากระบบปฏิบัติการช่วยเพิ่มอิสระในการใช้ซอฟต์แวร์ใด


1
ทำไมมันไม่สามารถทำงานเป็น BIOS ได้? ให้คำอธิบายว่าทำไม คุณต้องใส่ bootstrapper บน ROM และทำเสร็จแล้ว ฉันไม่ได้ตั้งใจที่จะใช้มันทั้งหมดใน ROM และถึงแม้ว่ามันจะใช้งานได้ถ้า ROM มีขนาดใหญ่พอ (แน่นอนว่าคุณต้องรันมันคุณจะต้องโหลดชิ้นส่วนใน RAM แต่มันก็ทำโดย BIOS ปัจจุบันเช่นกัน)
m0skit0

3
เขาพูดว่า "คอมพิวเตอร์" ไม่ใช่พีซี และใช่มันใช้งานได้ ในความเป็นจริงมันเป็นเช่นนี้ต่อหน้า IBM PC (Atari, Amiga ... BIOS เป็นส่วนหนึ่งของระบบปฏิบัติการ)
m0skit0

2
Silly ฉันฉันเคยเขียนซอฟต์แวร์สำหรับคอมพิวเตอร์ฝังตัวที่ไม่มี BIOS หรือ OS เพียงแค่รหัสแอปพลิเคชัน หรือว่าเราไม่ได้พูดถึงทั้งหมดคอมพิวเตอร์เพียงแค่คนที่คนส่วนใหญ่คิดว่าเกี่ยวกับอะไร?
jwernerny

2
ไม่สามารถใช้ได้ในขนาดใหญ่? ตรวจสอบว่ามี Ataris, Amigas และ Mac อยู่กี่เครื่องก่อนพีซี
m0skit0

2
iPhone เป็นคอมพิวเตอร์และฉันไม่เชื่อว่ามันมี BIOS แม้กระทั่งก่อนยุคดิจิตอล ... คอมพิวเตอร์เป็นเครื่องที่ตั้งโปรแกรมได้ซึ่งทำงานและส่งออกผลลัพธ์เดียวกันสำหรับอินพุตที่กำหนดใช่ไหม Jacquard กี่เป็นคอมพิวเตอร์และแน่นอนไม่มี BIOS (มันยังไม่มีระบบปฏิบัติการ)
rds

5

จำเป็นต้องมีบางอย่างในการเริ่มระบบปฏิบัติการ หากระบบปฏิบัติการสามารถพอดีกับหน่วยความจำที่ไม่ลบเลือนบางส่วนก็สามารถเริ่มต้นได้โดยตรง แต่ด้วย OS ที่มีคุณสมบัติครบถ้วนเช่น Windows, OSX หรือ Linux สิ่งนี้ไม่สามารถทำได้

สิ่งที่ต้องการคือ "ระบบปฏิบัติการ" ที่มีน้ำหนักเบาขนาดเล็กที่สามารถโหลดบน powerup ที่ทำสิ่งพื้นฐานเช่นการเข้าถึงหน่วยความจำและดิสก์จากนั้นโหลดระบบปฏิบัติการ ขณะนี้อาจเป็นส่วนหนึ่งของระบบปฏิบัติการและไม่ใช่เอนทิตีแยกต่างหากมีเหตุผลอื่น ๆ ที่คุณอาจต้องการให้กระบวนการอื่นเริ่มต้นก่อน:

  1. อัปเดต - หากระบบปฏิบัติการได้รับการแก้ไขเช่นนี้จะเป็นการยากที่จะอัปเดตหากจำเป็นต้องใช้โปรแกรมแก้ไขด้านความปลอดภัย สามารถทำได้ - การอัพเดตเฟิร์มแวร์เกิดขึ้นตลอดเวลากับอุปกรณ์เช่นเราเตอร์ ฯลฯ แต่สิ่งเหล่านี้มีระบบปฏิบัติการที่ติดตั้งง่าย
  2. ความยืดหยุ่น - คอมพิวเตอร์เป็นเครื่องเอนกประสงค์และฮาร์ดแวร์เดียวกันสามารถเรียกใช้ระบบปฏิบัติการหลายระบบ การมีไบออสซึ่งโหลดระบบปฏิบัติการจากดิสก์หมายความว่าคุณสามารถเลือกได้ว่าจะให้ทำงานแบบใด - คุณสามารถไปได้ไกลแม้จะมีหลาย ๆ ด้านติดตั้งอยู่เคียงข้างกัน

กระบวนการนี้เรียกได้ว่าเป็นความร่วมมือ


1
ดังนั้นคำตอบคือเพราะเรามีระบบปฏิบัติการที่แตกต่างกันมากมาย? ฉันหมายถึงถ้าเรามีระบบปฏิบัติการรุ่นเดียวสำหรับฮาร์ดแวร์เฉพาะเราจะกำจัดความต้องการของ BIOS ได้หรือไม่
Diogo

1
ฉันไม่เห็นสาเหตุที่เป็นไปไม่ได้ที่ Microsoft สร้าง BIOS ...
m0skit0

1
คุณไม่จำเป็นต้องใช้ทั้งระบบปฏิบัติการเพื่อให้พอดีกับหน่วยความจำแบบไม่ลบเลือน (ซึ่งสามารถ btw, คุณแค่ต้องการ ROM: P) คุณต้องการ bootstrapper เท่านั้นที่จะอยู่ที่นั่น
m0skit0

1
@ m0skit0 Microsoft ไม่สามารถสร้าง BIOS ได้เนื่องจากจะต้องทำ BIOS ที่แตกต่างกันสำหรับเมนบอร์ดทุกตัวที่ต้องการให้ซอฟต์แวร์ทำงาน :)
พัฒนา

1
นอกจากนี้ @ChrisF การวางระบบปฏิบัติการบน ROM จะทำลายทั้งจุดของระบบปฏิบัติการตั้งแต่แรก มันอาจจะเหมาะสมที่จะใช้ ROM เพื่อรันโปรแกรมที่เก็บไว้บางอย่างบนโปรเซสเซอร์โดยตรง (ซึ่งจะให้ประสิทธิภาพที่ดีกว่า) แต่จุดรวมทั้งหมดของระบบปฏิบัติการคือการไม่อนุญาตการดำเนินการประเภทนี้อย่างชัดเจน ทำเช่นนั้น
พัฒนา

4

PC BIOS แนวคิดได้รับความนิยมจาก CP / M ซึ่งเป็นระบบปฏิบัติการที่ได้รับความนิยมในคอมพิวเตอร์ที่ใช้บัส 8 บิต Z-80 "S-100" ก่อนที่พีซี IBM จะเข้ามาแทนที่

CP / M คาดว่าฟังก์ชั่นที่ขึ้นกับฮาร์ดแวร์จะอยู่ใน ROM (BIOS) อีกส่วนหนึ่งที่โหลดจากดิสก์โดย bootloader เป็นซอฟต์แวร์ที่สนับสนุนระบบไฟล์ CP / M (BDOS) จากนั้นประมวลผลคำสั่งสุดท้ายหรือ "shell" (CCP) ฮาร์ดแวร์ที่ CP / M คาดว่าจะให้การสนับสนุนนั้นไม่มาก: ดิสก์ไดรฟ์, จอแสดงผล, พอร์ตอนุกรมหรือสองพอร์ต (พอร์ต COM หรือ AUX) ซึ่งสามารถติดตั้งเครื่องพิมพ์หรือโมเด็มได้

PC BIOS ทำหน้าที่ bootstrapping ขั้นพื้นฐานคล้ายกับ CP / M และ DOS ใช้ฟังก์ชั่น BIOS เพื่อดำเนินการอินพุตและเอาต์พุตพื้นฐานตามที่ต้องการ โปรแกรมเมอร์สิ้นสุดการข้ามฟังก์ชันเหล่านี้เนื่องจากช้า สิ่งนี้นำไปสู่ผู้ผลิตพีซีโคลนในช่วงกลางยุค 80 ที่สร้างแพลตฟอร์มใหม่ทั้งหมด (ง่ายเหมือน IBM ที่ทำเอกสารพีซีดั้งเดิมทั้งในและนอก) แทนการให้ไบออสกับอินเทอร์เฟซที่ใช้งานร่วมกันได้

ณ จุดนี้เราสามารถพูดได้สำหรับระบบปฏิบัติการที่ทันสมัย ​​BIOS ไม่จำเป็นจริงๆนอกเหนือจากการบูตระบบ อย่างไรก็ตาม ...

การเริ่มต้นในช่วงต้นยุค 90 แนวคิดของการจัดการพลังงานได้เกิดขึ้นและ BIOS ได้รับการมอบหมายนี้ APM ทำงานได้ดีกับระบบปฏิบัติการแบบ tasking เดียวเช่น DOS แต่ไม่ใช่กับระบบปฏิบัติการมัลติทาสกิ้งที่แท้จริงเช่น Windows หรือ Linux ในช่วงเวลานี้ 386 ใช้งานได้เต็มประสิทธิภาพ CPU ของ Intel ที่รองรับการทำงานหลายอย่างแท้จริง DOS และ BIOS ไม่ได้รับการอัพเดตตามความสามารถใหม่ของซีพียูนี้ส่วนใหญ่เป็นเพราะซีพียู Intel ทั้งหมดจะยังคงทำงานในโหมดความเข้ากันได้แบบ 16 บิตแบบดั้งเดิมที่ PC-BIOS ดั้งเดิมได้รับการออกแบบมา ดังนั้นระบบปฏิบัติการที่ทันสมัยจึงเพิกเฉยต่อบายพาสฟังก์ชั่นอินพุต / เอาต์พุตคล้ายกับ CP / M ทั้งหมดของ BIOS ยกเว้นในช่วงเริ่มต้นของการบูต

ในที่สุด ACPI ได้รับการพัฒนาซึ่งส่วนใหญ่เป็น BIOS ซึ่งรองรับการจัดการพลังงานและการกำหนดค่าของสิ่งต่าง ๆ เฉพาะแพลตฟอร์ม ACPI ยังจัดการสถานะการสลับพลังงานขั้นสุดท้ายของการไฮเบอร์เนต, สลีปหรือปิดเครื่อง

ดังนั้นทุกวันนี้ก็คือ ACPI และเป็นตัวตายตัวแทน EFI ที่ทำให้บางสิ่งบางอย่างเช่น BIOS เป็นสิ่งจำเป็นสำหรับพีซีแนวคิดการครอบคลุมสำหรับ ACPI เพื่อเป็นส่วนต่อประสานระหว่างแพลตฟอร์มหรือเมนบอร์ดเฉพาะกับระบบปฏิบัติการดังนั้นการสร้าง OS แยกต่างหากจึงไม่ จะต้องทำสำหรับเมนบอร์ดทุกประเภท

บอร์ดพัฒนาที่บ้านใช้ซีพียู ARM ซึ่งใช้ Linux (รวมถึงฮาร์ดแวร์โทรศัพท์มือถือ) มีปัญหานี้ โดยทั่วไปแล้วพวกเขาจะมาพร้อมกับเฟิร์มแวร์ bootloader เท่านั้นเช่น U-boot แต่ระบบปฏิบัติการจะต้องรองรับแต่ละบอร์ดเป็นแพลตฟอร์มแยกต่างหาก


3

ในแง่หนึ่งคุณพูดถูก ไบออสและระบบปฏิบัติการส่วนหนึ่งทำสิ่งเดียวกัน การแยกใน BIOS และ OS นั้นเพื่อความยืดหยุ่นเท่านั้น

โดยปกติ BIOS จะถูกสร้างขึ้นโดยผู้ผลิตฮาร์ดแวร์ ฮาร์ดแวร์ต้องทำให้แน่ใจว่ามีฟังก์ชั่นพื้นฐานเช่นดิสก์ไดรฟ์ที่สามารถอ่านได้และแสดงผลการวินิจฉัยและข้อผิดพลาดพื้นฐาน ดังนั้นชื่อ "ระบบอินพุตพื้นฐาน"

สิ่งนี้สามารถทำได้โดยไม่ต้องมีความรู้เพิ่มเติมเกี่ยวกับส่วนประกอบจริง ๆ ในระบบเฉพาะเนื่องจากพวกเขาทั้งหมดต้องสนับสนุนมาตรฐาน BIOS ขนาดเล็ก สิ่งนี้ทำให้ผู้ขายสามารถสร้างระบบที่สมบูรณ์แบบเองได้ BIOS ต้องทำพอที่จะเริ่มระบบปฏิบัติการ มีการจัดประชุมบางจุดว่าจุดเริ่มต้นนี้อยู่ที่ใดจึงลองทำสิ่งต่อไปนี้ สิ่งนี้ยังทำให้สามารถใช้ระบบปฏิบัติการที่แตกต่างกันบนฮาร์ดแวร์เดียวกัน (มีความยืดหยุ่นอีกครั้ง)

เมื่อระบบปฏิบัติการ (หรืออย่างน้อยก็เป็น bootloader) ไม่พบและเริ่มต้นโดย BIOS, BIOS ตัวเองกลายเป็นล้าสมัยส่วนใหญ่ ระบบปฏิบัติการที่ทันสมัยใช้ BIOS ในการทำงานน้อยมากหลังจากโหลดเสร็จ

หากคุณต้องการให้ระบบปฏิบัติการใช้งานได้ตามที่ต้องการคุณจะต้องวางระบบปฏิบัติการไว้ในที่ที่ฮาร์ดแวร์สามารถเข้าถึงได้โดยไม่ต้องอาศัยซอฟต์แวร์เบื้องต้น (ROM) สิ่งนี้อาจเป็นไปได้สำหรับระบบปิดบางระบบที่ไม่มีความยืดหยุ่น หากคุณคิดถึงการสร้างการรองรับฮาร์ดแวร์ลงในฮาร์ดแวร์อื่น ๆ คุณกำลังสร้าง BIOS ชนิดหนึ่งอีกครั้ง ...

ข้อกังวลอีกประการคือขนาดหน่วยความจำและค่าใช้จ่าย ระบบปฏิบัติการที่โดดเด่นเต็มรูปแบบมีขนาดใหญ่และพยายามที่จะนำระบบปฏิบัติการหลายกิกะไบต์ลงใน ROM นั้นมีราคาแพงนอกจากปัญหาการติดตามการอัพเดทและการอัพเดทแล้ว

ดังนั้นไม่มีเหตุผลทางเทคนิค แต่สิ่งที่ปฏิบัติได้หลายอย่างโดยเฉพาะอย่างยิ่งสำหรับแพลตฟอร์มพีซีที่มีความยืดหยุ่น


3

ในการใช้งานโปรแกรมบนพีซีที่ทันสมัยคุณจะต้องมีโปรแกรมที่เริ่มต้นด้วยที่รู้วิธีใช้งานฮาร์ดแวร์และโหลดโปรแกรมลงในหน่วยความจำ ปัญหาไก่และไข่นี้แก้ไขได้ด้วยการฝังโปรแกรมพื้นฐานลงในฮาร์ดแวร์

ระบบอินพุต / เอาท์พุตพื้นฐาน (BIOS) นี้มีขนาดเล็กมากและอยู่ในขอบเขตที่ จำกัด แต่มีรากฐานที่เพียงพอที่บูตโหลดเดอร์ระดับที่สองเช่นGRUBหรือNTLDRสามารถโหลดและรันได้ ตัวตักระดับที่สองเหล่านี้มีความซับซ้อนกว่าโปรแกรม BIOS ซึ่งช่วยให้พวกเขาสามารถสร้างรากฐานที่แข็งแกร่งสำหรับระบบปฏิบัติการที่เหมาะสมในการโหลดและรับการควบคุม


คำอธิบายที่ไม่ใช่ด้านเทคนิคที่ดี
หอยทากเชิงกล

1

หาก CPU มีความสามารถในการจัดการกับฮาร์ดไดรฟ์โดยตรงโดยไม่ต้องอาศัย BIOS หรือ EFI หรือรหัสอื่นใน ROM (หรือ NVRAM หรือสิ่งที่คุณมี) ในทางทฤษฎีแล้วซีพียูสามารถโหลดระบบปฏิบัติการจากดิสก์ไปยัง RAM และเริ่มต้น รันมัน

ในความเป็นจริงแล้วในทางทฤษฎีแล้วซีพียูดังกล่าวยังสามารถรันคำสั่งได้โดยไม่ต้องโหลดมันลงใน RAM ไม่มีเหตุผลทางทฤษฎีที่คอมพิวเตอร์ไม่สามารถใช้ฮาร์ดไดรฟ์เป็นที่เก็บข้อมูลหลักได้ แต่นี่จะช้ามาก ๆ

นี่หมายถึงการมีรหัสพิเศษใน CPU เพื่อเข้าถึงดิสก์และแนวคิดเกี่ยวกับดิสก์เช่นการแบ่งพาร์ติชันและระบบไฟล์ไปยัง CPU ซีพียูในปัจจุบันมีขนาดใหญ่พอที่จะทำสิ่งนี้ได้ แต่มันจะไม่เป็นวิธีที่ยืดหยุ่นหรือมีประสิทธิภาพในการออกแบบซีพียู


เคยเป็นคอมพิวเตอร์ที่วิ่งออกจากดิสก์ / ดรัมโดยตรงโดยไม่มี RAM จำนวนมาก
Daniel R Hicks

-1

มันไม่ต้องการมัน!

สิ่งที่มักจะเรียกว่า BIOS คือชุดของ 3 สิ่ง

  • บูตโหลดเดอร์
  • เครื่องมือการกำหนดค่า: ส่วนใหญ่ล้าสมัยยกเว้นลำดับการบูตและนาฬิกา ที่เหลือส่วนใหญ่ควรเป็นแบบอัตโนมัติหรือตั้งค่าโดยผู้ผลิต
  • BIOS: ไลบรารีของอินพุตเอาต์พุตรูทีนเพื่อช่วยให้ระบบปฏิบัติการสื่อสารกับฮาร์ดแวร์ น่าเสียดายที่ไบออสนั้นล้าสมัยไปแล้ว 16 บิตและไม่สามารถใช้กับระบบปฏิบัติการสมัยใหม่ได้

ตัวโหลดการบูตเป็นส่วนหนึ่งของ BIOS
Daniel R Hicks

@Daniel ฉันได้เขียนอีกครั้งเพื่อให้ชัดเจนยิ่งขึ้นขอบคุณ
ctrl-alt-delor
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.