ระบบปฏิบัติการสามารถรู้ระดับแบตเตอรี่ได้อย่างไร


34

แม้ว่าเราจะลบระบบปฏิบัติการเริ่มต้นและติดตั้งใหม่มันสามารถโต้ตอบกับแบตเตอรี่ มีไดรเวอร์สำหรับมันบ้างไหม? มันทำงานยังไง?

คำตอบ:


33

อินเทอร์เฟซระบบปฏิบัติการด้วยเฟิร์มแวร์ของตัวควบคุมแบบฝังที่เป็นส่วนหนึ่งของการ กำหนดค่าขั้นสูงและ Power Interface (ACPI)

Wikipedia กำหนดเป็น:

ในคอมพิวเตอร์ Advanced Configuration และ Power Interface (ACPI) เป็นมาตรฐานเปิดที่ระบบปฏิบัติการสามารถใช้ในการค้นหาและกำหนดค่าส่วนประกอบฮาร์ดแวร์คอมพิวเตอร์เพื่อดำเนินการจัดการพลังงานโดย (เช่น) ทำให้ส่วนประกอบที่ไม่ได้ใช้เข้าสู่โหมดสลีปและทำการตรวจสอบสถานะ . เปิดตัวครั้งแรกในเดือนธันวาคม 2539 ACPI ตั้งเป้าที่จะแทนที่การจัดการพลังงานขั้นสูง (APM), ข้อกำหนดมัลติโปรเซสเซอร์และข้อกำหนด BIOS ของ Plug and Play (PnP) [1] ACPI นำการจัดการพลังงานภายใต้การควบคุมของระบบปฏิบัติการซึ่งตรงข้ามกับระบบ BIOS เป็นศูนย์กลางก่อนหน้านี้ซึ่งอาศัยเฟิร์มแวร์เฉพาะแพลตฟอร์มเพื่อกำหนดนโยบายการจัดการพลังงานและการกำหนดค่า

ภายใน ACPI โฆษณาส่วนประกอบที่มีอยู่และฟังก์ชั่นให้กับเคอร์เนลระบบปฏิบัติการโดยใช้รายการคำสั่ง ("วิธีการ") ที่จัดทำผ่านเฟิร์มแวร์ระบบ (Unified Extensible Firmware Interface (UEFI) หรือ BIOS) ซึ่งเคอร์เนลแยกวิเคราะห์ จากนั้น ACPI จะเรียกใช้งานการดำเนินการที่ต้องการ (เช่นการเริ่มต้นของส่วนประกอบฮาร์ดแวร์) โดยใช้เครื่องเสมือนที่มีขนาดเล็กที่สุด

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

ระบบปฏิบัติการของคอมพิวเตอร์มีไดรเวอร์ระบบที่ใช้สำหรับการเชื่อมต่อกับ ACPI เมื่อเปิดใช้งาน ACPI จะสามารถควบคุมการจัดการพลังงานและการกำหนดค่าอุปกรณ์ได้ทุกด้าน

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

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้งานใน Windows ดูบทความ แบตเตอรี่และการออกแบบฮาร์ดแวร์พลังงานระบบย่อย


1
ฉันอาจจะผิด แต่ดูเหมือนว่าคำอธิบายของย่อหน้าสุดท้ายจะทำให้ ACPI สับสนกับSMMและ / หรือME / AMTของ Intel อย่างสมบูรณ์ ACPI ส่วนใหญ่เป็นโครงสร้างข้อมูลแบบสแตติกโดยมีจำนวนไบต์น้อยที่ระบบปฏิบัติการของตัวเองต้องตีความในขณะที่ ME เป็นระบบจริง
grawity

1
@grawity: อย่าคิดอย่างนั้น คุณอาจพบการสนทนาที่คล้ายกันในบทความ Wikipedia ACPI
harrymc

1
ฉันไม่เห็นการสนทนามากมายเกินกว่าคำพูดสองสามคำจากโพสต์บล็อกเดียวของ Shuttleworth และหลังจากอ่านทั้งสองหน้าฉันไม่เชื่ออย่างถ่องแท้ - ดูเหมือนว่าสำหรับฉันว่าเขาเพิ่งจะทิ้งทุกสิ่งที่มาพร้อมกับระบบภายใต้ ชื่อ "ACPI" ไม่ว่าจะเป็น BIOS หรือ Intel ME หรืออะไรก็ตาม เท่าที่ฉันรู้จากขยะทั้งหมดที่มาพร้อมกับระบบที่ทันสมัย ​​ACPI อาจเป็นเพียงส่วนเดียวที่ไม่ได้ทำงานด้วยตัวเองและแน่นอนไม่ได้อยู่ภายใต้ระบบปฏิบัติการ
grawity

2
@grawity ACPI มีส่วนต่อประสานการเรียกใช้รหัสระดับเฟิร์มแวร์ด้วยเช่นกันนั่นเป็นสาเหตุที่การโต้ตอบของเฟิร์มแวร์เกี่ยวข้องกับการเกิดขึ้น ในบางระบบการทำเช่นนี้ใช้ SMM สำหรับการเรียกใช้รหัสจริงแม้ว่าจะได้รับการขอบคุณน้อยลงเรื่อย ๆ
Austin Hemmelgarn

@grawity: ใช่ ACPI ไม่ได้ทำอะไรเลยในแง่ที่ว่ามันเป็นแค่ตัวควบคุม UEFI / BIOS จัดการอุปกรณ์ในลักษณะเดียวกันและวางไว้ในลำดับชั้นของฮาร์ดแวร์ที่สูงขึ้นและหนึ่งในนั้นคือ ACPI ฟังก์ชั่นจะถูกทำให้เป็นภายนอกในแต่ละระดับและจะกลายเป็นแนวความคิดทั่วไปมากขึ้นในแต่ละระดับ ซอฟต์แวร์เช่นระบบปฏิบัติการได้รับการออกแบบในลักษณะเดียวกันกับระดับของการวางนัยทั่วไปซึ่งเป็นวิธีที่มนุษย์โจมตีปัญหาที่ซับซ้อน
harrymc

57

ในฐานะที่เป็นส่วนเสริมของคำตอบอื่น ๆ ซอฟต์แวร์ทำงานบนคอมพิวเตอร์รู้ได้อย่างไรว่าระดับแบตเตอรี่เป็นอย่างไร มันถามแบตเตอรี่

แบตเตอรี่แล็ปท็อปส่วนใหญ่เป็นแบตเตอรี่อัจฉริยะที่มีไมโครคอนโทรลเลอร์ของตัวเองหรือ ASIC ซึ่งเป็นโฮสต์ที่สามารถสื่อสารกับ SMBus ได้ ผู้คนได้ออกแบบวิศวกรรมย้อนกลับบางตัวอย่าง

SMBus อาจหรือไม่อาจสัมผัสโดยตรงกับระบบปฏิบัติการในลักษณะที่ช่วยให้ผู้ดูแลระบบสามารถสอบถามได้โดยตรง มีโปรแกรมต่าง ๆ เช่น OpenHardwareMonitor หรือ Speccy หรือ lm-sensors ที่สามารถสอบปากคำบัสเพื่อค้นหาข้อมูลเกี่ยวกับฮาร์ดแวร์


คำอธิบายที่ดีในการทำความเข้าใจแนวคิดพื้นฐานโดยทั่วไป! แม้ว่าฉันจะทำเครื่องหมายคำพูดโฆษณารอบคำว่า "ถาม"
Albin

ไม่มีข้อขัดแย้งกับคำตอบของฉัน: SMBus เป็นส่วนประกอบที่จัดการโดย ACPI สำหรับคอมพิวเตอร์พกพาที่มีอยู่
harrymc

1
อินเทอร์เฟซแบตเตอรี่อัจฉริยะนี้สามารถสัมผัสได้ด้วยวิธีการมาตรฐานเช่น USB ยกตัวอย่างเช่น UPS หลายเครื่องมีพอร์ต USB ซึ่งเมื่อเสียบเข้ากับคอมพิวเตอร์จะบอกคอมพิวเตอร์ว่ามีพลังงานเหลืออยู่เท่าใดและจะแสดงผลเหมือนที่แล็ปท็อปทำ
TheHansinator

2
@TheHansinator ฉันจะยืนยันว่า SMBus เป็นวิธีมาตรฐานในการสื่อสารกับแบตเตอรี่อัจฉริยะ โทรศัพท์และแล็ปท็อปเกือบทุกเครื่องใช้งานซึ่งเป็นระบบที่มากกว่าการใช้อุปกรณ์ UPS ภายนอก
Austin Hemmelgarn

@AustinHemmelgarn จริง บางทีคำที่ดีกว่าคือ "ธรรมดา" ซึ่งเป็นระบบที่เป็นนามธรรมมากกว่าระบบปฏิบัติการที่อุปกรณ์อื่นนอกเหนือจากแบตเตอรี่ในตัวสามารถใช้งานได้
TheHansinator

2

โดยทั่วไปแล้วชิปคอมพิวเตอร์ทั้งหมดมีเอกสารซึ่งบอกให้นักออกแบบและโปรแกรมเมอร์ทำในสิ่งที่พวกเขาทำและวิธีกำหนดค่าให้ทำ การเข้าถึงชิปเหล่านี้ในระดับต่ำสามารถทำได้โดยการอ่านและการเขียนโดยตรงไปยังการลงทะเบียนของชิป

ชิปที่ซับซ้อนมากขึ้นสามารถมาพร้อมกับโปรแกรมซอฟต์แวร์ที่เรียกว่า 'ไดรเวอร์' ที่ช่วยให้สามารถเข้าถึงระบบปฏิบัติการหรือแอปพลิเคชันอื่น ๆ ในระดับสูงได้ ตัวอย่างเช่นสมาร์ทโฟนของคุณมี Application Programming Interface (API) ที่ช่วยให้สามารถเข้าถึงฮาร์ดแวร์ส่วนใหญ่ของโทรศัพท์ GPS, accelerometer, แบตเตอรี่, กล้อง ฯลฯ เมื่อคุณเขียน "แอพ" คุณสามารถเข้าถึงอุปกรณ์ฮาร์ดแวร์เหล่านี้โดยใช้ API เช่นเดียวกับที่ระบบปฏิบัติการสามารถทำได้ (แม้ว่าระบบปฏิบัติการมักจะมีการเข้าถึงที่กว้างขวางกว่าโปรแกรมที่ทำงานใน 'พื้นที่ผู้ใช้')

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

ผู้ที่เขียนรหัสระบบปฏิบัติการจะได้รับเอกสารประกอบสำหรับชิปและเขียนซอฟต์แวร์เพื่อสื่อสารกับชิปและดึงข้อมูลที่ต้องการ

ดังนั้นในครั้งต่อไปที่คุณโหลด 'ไดรเวอร์' (หรือทำโดยอัตโนมัติ) สำหรับฮาร์ดไดรฟ์ภายนอกไดรฟ์ USB ธัมบ์เนลหรืออย่างอื่นคุณจะเข้าใจอีกเล็กน้อยเกี่ยวกับสิ่งที่เกิดขึ้น 'ใต้ฝากระโปรง'

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