BIOS มี 'ไดรเวอร์' ทั่วไปหรือไม่


22

BIOS ควบคุมอุปกรณ์ I / O โดยไม่มีไดรเวอร์รูปแบบใด?

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

มีไดรเวอร์ทั่วไปบางประเภทที่เป็นมาตรฐานใน BIOS และฮาร์ดแวร์ทั้งหมดที่อนุญาตให้ BIOS ทำหน้าที่ขั้นพื้นฐานไม่ว่าจะติดตั้งฮาร์ดแวร์ใด

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม

ขอบคุณ


คุณมีปัญหาเฉพาะที่คุณพยายามแก้ไขหรือไม่? หากคุณถามว่ามีไบออสใช้ไดรฟ์ทั่วไปหรือไม่
Ramhound

ฉันคิดว่ามีรูปแบบเอาต์พุตมาตรฐานน้อยที่สุด (vesa) และการ์ดแสดงผลมีประวัติเป็นของตัวเอง นอกจากนี้มันไม่เหมือนกับเฟิร์มแวร์ bios / uefi ของคุณถูกแสดงผลแบบเรียลไทม์ในแบบ 3 มิติ
Geek

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

4
Do you have a specific problem your trying to solve? ใช่พวกเขากำลังพยายามแก้ไขปัญหาในการค้นหาคำตอบสำหรับคำถามที่พวกเขาถาม ¬_¬
Synetech

ที่เกี่ยวข้อง: superuser.com/questions/357328/…
Russell Borogove

คำตอบ:


13

BIOS มี 'ไดรเวอร์' ทั่วไปหรือไม่

BIOS ควบคุมอุปกรณ์ I / O โดยไม่มีไดรเวอร์รูปแบบใด?

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

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

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

ในกรณีของการแสดงผลล่วงหน้าบูตเฟิร์มแวร์ของอะแดปเตอร์วิดีโอใช้VESA (Video Electronics Standards Association) ซึ่งเป็นมาตรฐานที่สร้างขึ้นเพื่อให้เข้าถึงฮาร์ดแวร์แสดงผลได้ง่ายขึ้น BIOS รู้วิธีเข้าถึงฮาร์ดแวร์วิดีโอโดยใช้ฟังก์ชั่นมาตรฐานที่มีให้ ค่อนข้างคล้ายกับวิธีการนำ DirectX มาใช้เป็น API ระดับสูงกว่ากับฮาร์ดแวร์เพื่อให้โปรแกรมเมอร์ไม่จำเป็นต้องคำนึงถึงการกำหนดค่าฮาร์ดแวร์ทุกครั้ง

มีไดร์เวอร์ทั่วไปประเภทใดบ้างที่โดดเด่นใน BIOS และฮาร์ดแวร์ทั้งหมดที่อนุญาตให้ BIOS ทำหน้าที่ขั้นพื้นฐานไม่ว่าจะติดตั้งฮาร์ดแวร์ใด

เรียงจาก มันไม่ได้เป็นคนขับ แต่มาตรฐาน API ; ชุดฟังก์ชั่นการเขียนโปรแกรมที่สามารถใช้ในการทำสิ่งพื้นฐานเช่นเริ่มต้นอุปกรณ์หรือข้อมูลอินพุตและเอาต์พุต

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


ขอบคุณคำตอบยอดเยี่ยม ดังนั้นไบออสขัดจังหวะการโทร (ระบบ DOS ที่เคยใช้) ยังคงใช้งานได้จนกว่าจะโหลดระบบปฏิบัติการ?
RJSmith92

1
ใช่ BIOS มีการขัดจังหวะที่แตกต่างกันมากมายซึ่งสามารถใช้งานได้ (แม้ว่า BIOSes บางตัวจะไม่สามารถใช้งานได้ทั้งหมด) ระบบ DOS ใช้สิ่งเหล่านั้น แต่ DOS สร้าง INT 21 และ 2F เพื่อให้ซอฟต์แวร์ขัดจังหวะในระดับสูงกว่าในการทำสิ่งต่าง ๆ (ฉันคิดถึงการเขียนโปรแกรม DOS / ตัวประกอบฮาร์ดแวร์มาก ความจริงก็คือจะต้องมีฟังก์ชั่นพื้นฐานและฟังก์ชั่นระดับต่ำที่จำเป็นเพื่อให้เข้ากันได้กับ EFI และสิ่งอื่น ๆ ที่จะเกิดขึ้นในอนาคต อาจมีรูปแบบที่แตกต่างกัน แต่หากไม่มีภาษาทั่วไปบางประเภทระบบจะไม่สามารถใช้อุปกรณ์ฮาร์ดแวร์ได้
Synetech

ฉันเข้าใจว่าการโทรขัดจังหวะยังคงใช้โดยเคอร์เนลและบริการระดับเคอร์เนล นั่นไม่จริงเหรอ?
BlueRaja - Danny Pflughoeft

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

22

BIOS ในพีซีนั้นหมายถึงการเติมฟังก์ชั่นที่คล้ายกันเช่น BIOS ในระบบ CP / M 8 บิตซึ่งเป็นที่นิยมก่อนที่พีซีจะเข้ามาในช่วงกลางยุค 80 BIOS มีไว้เพื่อให้มี bootloader น้อยที่สุดและรูทีนระดับต่ำที่ขึ้นกับฮาร์ดแวร์เพื่อทำอินพุตและเอาต์พุตไปยังอุปกรณ์สองสามอย่าง (หน้าจอดิสก์เทปพอร์ต COM) ความรู้ในการทำสิ่งนี้ถูกสร้างขึ้นใน ROM - ไม่จำเป็นต้องใช้ไดรเวอร์และแน่นอนไม่มีฮาร์ดแวร์เพิ่มเติมที่สนับสนุนโดย ROM นี้ (สิ่งต่าง ๆ เช่นการจัดการพลังงานและ ACPI มาในภายหลังใน 90's หลังจากพีซีได้สร้างตัวเองเป็นแพลตฟอร์มที่แพร่หลาย)

(ระบบไฟล์ "CP / M" อยู่ในส่วนประกอบที่เรียกว่า BDOS - เช่นเดียวกันความรู้เกี่ยวกับระบบไฟล์ FAT และอินเทอร์เฟซนั้นอยู่ใน (อย่างน้อยหนึ่งไฟล์) MSDOS.SYS หรือ IO.SYS - ไม่ใช่ส่วนหนึ่ง ของ BIOS ROM)

อย่างไรก็ตาม ... PC BIOS ซึ่งแตกต่างจาก CP / M ได้รองรับแนวคิด "Option ROMS" ซึ่งสามารถรวมอยู่ในการ์ดเอ็กซ์แพนชันได้ อย่างน้อยก็มีกลไกขั้นต่ำในการขยาย BIOS การ์ดแสดงผลที่เริ่มต้นด้วย CGA (MDA ซึ่งเป็นรุ่นก่อนของ CGA อาจทำเช่นนั้น) จะมี ROM ตัวเลือกที่ขยายหรือเพิ่มฟังก์ชั่น I / O เข้ากับอินเตอร์เฟส BIOS (นี่คือสาเหตุที่คุณเห็นข้อความ NVidia ก่อนบู๊ต BIOS ของคุณ) ดังนั้นคอนโทรลเลอร์และการ์ด SCSI จึงทำเช่นนั้น สิ่งเหล่านี้ยังคงทำ การ์ดเครือข่ายรุ่นเก่าจำนวนมากมีซ็อกเก็ตสำหรับบูต ROM

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

ดังนั้นระหว่าง ROM ตัวเลือกและฉันทามติของฮาร์ดแวร์มาตรฐานนี้ที่สร้างแพลตฟอร์มพีซีรวมถึงความจริงที่ว่ามันถูกเก็บเข้ากันได้ย้อนหลังตลอดวิวัฒนาการของพีซีสิ่งที่ต้องการใช้จอแสดงผลโดยไม่มีไดรเวอร์สามารถ:

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

ฮาร์ดแวร์จอแสดงผล PC ทั้งหมดยังคงทำงานในโหมด "รองรับ VGA" เมื่อบู๊ต อะแด็ปเตอร์ IBM VGA ดั้งเดิมมีโหมดที่เข้ากันได้กับการ์ด EGA, CGA และ MDA รุ่นก่อนหน้า ทั้งหมดนี้หมายความว่าสิ่งที่เรียกใช้จาก BIOS หรือนอกระบบปฏิบัติการสามารถสันนิษฐานได้ว่ามันยังสามารถอ่านและเขียนหน่วยความจำเดียวกันที่เชื่อมต่อกับจอแสดงผลในขณะนี้เท่าที่จะทำได้ในปี 1985 ผ่านการประชุม


ขอบคุณสำหรับคำตอบ. ดังนั้นไบออสบนการ์ดเอ็กซ์แพนชันต้องเป็นไปตามมาตรฐานบางประการเพื่อให้ไบออสของเมนบอร์ดสามารถใช้งานได้?
RJSmith92

1
ไม่แน่ใจว่ามันเป็นมาตรฐานมากกว่าการประชุมที่ยาวนาน แต่มีอะไรทำนองนั้น ฉันเดา BIOS Boot Specification (BBS) เป็นสิ่งที่เป็นมาตรฐานอย่างเป็นทางการที่นี่ en.wikipedia.org/wiki/Option_ROM
LawrenceC

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