ทำไมระบบปฏิบัติการ (ปกติ?) ไม่สามารถเข้าถึงการตั้งค่า BIOS ได้?


20

เมนบอร์ดไม่ได้จัดเตรียมบัสระหว่างซีพียูและชิป BIOS หลังจากบูตเครื่องหรือไม่? ถ้าเป็นเช่นนั้นทำไมไม่

หาก CPU สามารถควบคุมความเร็วของพัดลมได้ฉันไม่เห็นสาเหตุที่ไม่สามารถควบคุมการตั้งค่า BIOS ได้


เพื่อความเข้าใจของฉันเมื่อ BIOS ดึง bootloader ในนั้นสิ้นสุดสภาพการทำงานคาดหวังในกรณีของ IPMI
Linef4ult

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

ดังที่ DavidPostill ตอบแล้ว Windows (และระบบปฏิบัติการอื่น ๆ ) สามารถเข้าถึง BIOS ได้ อย่างไรก็ตามสิ่งนี้ขึ้นอยู่กับชิปเซ็ตและมาเธอร์บอร์ดและอาจไม่ได้ผล 100% นอกเวลา หากคุณย้ายจากเฟิร์มแวร์ BIOS ไปเป็นเฟิร์มแวร์ UEFI คุณจะสามารถควบคุมได้มากขึ้น
Hennes

เป็นเวลานานแล้วที่ฉันได้เห็นพีซีที่มี BIOS จริง ถ้าคุณหมายถึง UEFI มันอยู่/sys/firmware/efiใน Linux
Dmitry Grigoryev

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

คำตอบ:


44

ทำไมระบบปฏิบัติการ (ปกติ?) ไม่สามารถเข้าถึงการตั้งค่า BIOS ได้?

ไม่สามารถตอบคำถามข้างต้นได้เนื่องจากระบบปฏิบัติการสามารถเข้าถึง BIOS ได้

ฉันจะตอบคำถามด้านล่างที่อาจถูกถามด้านล่าง


ระบบปฏิบัติการสามารถเข้าถึงการตั้งค่า BIOS ได้อย่างไร?

สำหรับ Windows และ Unix ระบบปฏิบัติการสามารถอ่าน BIOS ได้

ของ windows

ตัวอย่าง (โดยใช้wmic):

F:\test>wmic bios /?

BIOS - Basic input/output services (BIOS) management.

HINT: BNF for Alias usage.
(<alias> [WMIObject] | <alias> [<path where>] | [<alias>] <path where>) [<verb clause>].

USAGE:

BIOS ASSOC [<format specifier>]
BIOS CREATE <assign list>
BIOS DELETE
BIOS GET [<property list>] [<get switches>]
BIOS LIST [<list format>] [<list switches>]


F:\test>wmic bios list brief
Manufacturer              Name                                        SerialNumber      SMBIOSBIOSVersion  Version
American Megatrends Inc.  BIOS Date: 09/05/11 11:20:58 Ver: 04.06.03  27546064-5001600  R1190V3            Sony - 20110905

Windows ยังสามารถเขียนไปยัง BIOS (ผู้ผลิตแผงวงจรหลักบางรายมีตัวอัพเดต BIOS ที่ใช้ Windows)

ดูตัวอย่างวิธีการแฟลช BIOS ถ้าจำเป็นต้องผ่าน Windows หรือใน BIOS

ยูนิกซ์

Unix มีคำสั่งที่คล้ายกัน

  • biosdecodeแยกวิเคราะห์หน่วยความจำ BIOS และพิมพ์ข้อมูลเกี่ยวกับโครงสร้างทั้งหมด

  • คุณสามารถทำการเรียก BIOS แบบเรียลไทม์จากผู้ใช้รูทโดยใช้แอปพลิเคชัน C ซึ่งรวมถึง ASM แบบฝัง (รหัสแอสเซมบลี)

แหล่งที่มาวิธีการถ่ายโอนข้อมูล BIOS ไปยังไฟล์


อ่านเพิ่มเติม


5
ฉันต้องการเพิ่มก่อน Windows XP คุณสามารถทำสิ่งที่ดีที่สุดของความรู้ของฉันสามารถอธิบายเป็น - เล่ห์เหลี่ยมตัวชี้ในการเข้าถึงการตั้งค่าจาก debug.com - จำได้ว่ามีเคล็ดลับในการลบการป้องกันรหัสผ่านของไบออสบางอย่าง รุ่น การค้นหาเว็บ"debug.com" bios passwordดูเหมือนจะนำข้อมูลที่เกี่ยวข้องบางอย่างมาไว้ในหัวข้อ
ธีระโรจน์

1
ยังไม่ตอบ "ทำไม?" .... ไม่พอใจ ....
Zaibis

@Zaibis ไม่จำเป็นต้องตอบว่า "ทำไม" ระบบปฏิบัติการสามารถเข้าถึง BIOS เพื่อถาม (และตอบ) ทำไม ... ไม่สามารถ ...เป็นคำถามที่ไม่มีความหมาย ฉันชี้แจงคำตอบเล็กน้อย
DavidPostill

1
"Unable" should be replaced by "able" as the OS can access the BIOS.หากคุณต้องการให้มันเป็นวลีคุณควรลบออก เนื่องจากการทำตามคำแนะนำของคุณยังคงเป็นคำถามที่คุณไม่ต้องพูดถึง
Zaibis

1
@Zaibis <sigh> ทุกคนเข้าใจคำตอบ (รวมถึง OP ที่ยอมรับคำตอบ) ฉันได้อัปเดตอีกครั้งโดยเฉพาะอย่างยิ่งสำหรับคุณ;)
DavidPostill

19

สามารถทำได้ แต่มีไม่มากในทางของอินเทอร์เฟซมาตรฐานกับการตั้งค่าในนั้นโดยเฉพาะอย่างยิ่งถ้าคุณหมายถึง "BIOS" ที่เหมาะสม (เช่น pre-UEFI)

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

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


มันจะเจ๋งถ้าคุณสามารถอธิบายส่วน "ชิ้นส่วนของเค้ก" ในรายละเอียดทางเทคนิคบางอย่าง ตัวอย่างเช่นสมมติว่าฉันรู้วิธีสร้างโค้ด C โดยพลการในโหมดเคอร์เนล ตอนนี้ฉันจะไปทิ้ง BIOS ด้วยตนเองได้อย่างไร
Mehrdad

6
@Mehrdad พื้นที่ข้อมูล BIOS และพื้นที่ข้อมูล BIOS แบบขยายถูกแมปไปยังที่อยู่หน่วยความจำหลักและสามารถอ่านและเขียนได้โดยตรงด้วยสิทธิ์ที่เหมาะสม (โดยปกติคุณไม่ต้องการทำเช่นนั้น ... ) ดูตัวอย่างwiki.osdev.org/Memory_Map_%28x86%29#BIOS_Data_Area_.28BDA.29และstanislavs.org/helppc/bios_data_area.htmlและbioscentral.com/miscory /bda.htmสำหรับข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบ BDA (ครั้งแรกยังให้ข้อมูลโดยย่อเกี่ยวกับหนึ่งรูปแบบของรูปแบบ EBDA) ป้อน "พื้นที่ข้อมูล BIOS" และ "ขยายพื้นที่ข้อมูล BIOS" ลงในเครื่องมือค้นหารายการโปรดของคุณเพิ่มเติม
CVn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.