Làm thế nào là hệ điều hành có thể biết mức pin?


34

Ngay cả khi chúng tôi gỡ bỏ hệ điều hành mặc định và cài đặt một hệ điều hành mới, nó có thể tương tác với pin. Có một số trình điều khiển cho nó? Làm thế nào nó hoạt động?

Câu trả lời:


33

Hệ điều hành giao diện với phần sụn của bộ điều khiển nhúng là một phần của Cấu hình nâng cao và Giao diện nguồn (ACPI).

Wikipedia định nghĩa nó là:

Trong máy tính, Giao diện cấu hình và năng lượng nâng cao (ACPI) cung cấp một tiêu chuẩn mở mà các hệ điều hành có thể sử dụng để khám phá và định cấu hình các thành phần phần cứng máy tính, để thực hiện quản lý năng lượng bằng cách (ví dụ) đặt các thành phần không sử dụng vào chế độ ngủ và thực hiện giám sát trạng thái . Được phát hành lần đầu tiên vào tháng 12 năm 1996, ACPI nhằm mục đích thay thế Quản lý năng lượng nâng cao (APM), Thông số kỹ thuật đa bộ xử lý và Thông số kỹ thuật của Plug and Play BIOS (PnP). [1] ACPI mang đến sự quản lý năng lượng dưới sự kiểm soát của hệ điều hành, trái ngược với hệ thống tập trung vào BIOS trước đó dựa trên phần sụn dành riêng cho nền tảng để xác định các chính sách quản lý và cấu hình nguồn.

Trong nội bộ, ACPI quảng cáo các thành phần có sẵn và các chức năng của chúng cho nhân hệ điều hành bằng cách sử dụng danh sách hướng dẫn ("phương thức") được cung cấp thông qua phần sụn hệ thống (Giao diện phần mềm mở rộng hợp nhất (UEFI) hoặc BIOS), mà phần mềm phân tích cú pháp. ACPI sau đó thực hiện các hoạt động mong muốn (chẳng hạn như khởi tạo các thành phần phần cứng) bằng cách sử dụng một máy ảo tối thiểu nhúng.

Câu trả lời là một mạch hoặc chip vi mạch được nhúng trong bo mạch chủ, bản thân nó có chứa một hệ điều hành vi mô, cung cấp một số dịch vụ thông qua phần sụn máy tính - UEFI hoặc BIOS. Nó kiểm soát nhiều khía cạnh của quản lý năng lượng và thiết bị.

Hệ điều hành máy tính có trình điều khiển hệ thống được dành riêng để giao tiếp với ACPI. Khi ACPI được kích hoạt, nó sẽ kiểm soát độc quyền tất cả các khía cạnh của quản lý năng lượng và cấu hình thiết bị.

Về nhiều mặt, ACPI là một hệ điều hành đằng sau hệ điều hành của bạn, ngoại trừ việc nó đi kèm với bo mạch chủ và không thuộc quyền kiểm soát của bạn. Đã có những tiếng nói giống như một con ngựa thành Troia và gọi nó là một rủi ro bảo mật. Nó có thể bị vô hiệu hóa, nhưng một số máy tính có thể không khởi động mà không có nó, và trong mọi trường hợp, quản lý năng lượng tiên tiến cũng bị vô hiệu hóa.

Để biết thêm thông tin về việc sử dụng nó trong Windows, hãy xem bài viết Thiết kế phần cứng hệ thống phụ pin và năng lượng .


1
Tôi có thể sai nhưng có vẻ như mô tả của đoạn cuối hoàn toàn nhầm lẫn ACPI với SMM và / hoặc với ME / AMT của Intel . ACPI chủ yếu là một cấu trúc dữ liệu tĩnh, với một lượng nhỏ mã byte mà hệ điều hành phải giải thích, trong khi ME là hệ thống thực tế.
grawity

1
@grawity: Đừng nghĩ vậy. Bạn có thể tìm thấy một cuộc thảo luận tương tự trong bài viết Wikipedia ACPI.
harrymc

1
Tôi không thấy nhiều cuộc thảo luận ở đó ngoài một vài trích dẫn từ một bài đăng trên blog của Shuttleworth và sau khi đọc cả hai trang, tôi không bị thuyết phục chút nào - dường như tôi chỉ bỏ qua mọi thứ đi kèm với hệ thống Tên "ACPI", có thể là BIOS hoặc Intel ME hoặc bất cứ thứ gì. Theo như tôi biết, trong số tất cả rác thải đi kèm với một hệ thống hiện đại, ACPI có lẽ là phần duy nhất không tự chạy và chắc chắn không thuộc HĐH.
grawity

2
@grawity ACPI cũng bao gồm một giao diện thực thi mã cấp phần sụn, đó là cách mà rất nhiều tương tác phần sụn liên quan đến nó thực sự xảy ra. Trên một số hệ thống nhất định, điều này thậm chí sử dụng SMM để thực thi mã thực tế, mặc dù điều đó rất may là ngày càng ít phổ biến hơn.
Austin Hemmelgarn

@grawity: Có, ACPI không làm gì theo nghĩa chỉ là bộ điều khiển. UEFI / BIOS tương tự quản lý các thiết bị và được đặt cao hơn trong hệ thống phân cấp phần cứng và một trong số đó là ACPI. Các chức năng được xuất hiện ở mỗi cấp độ, cũng ngày càng trở nên khái quát hơn với mỗi cấp độ. Phần mềm như hệ điều hành được thiết kế theo nhiều cách tiếp cận chung về mức độ khái quát hóa, đó là cách con người tấn công các vấn đề phức tạp.
harrymc

57

Để bổ sung cho câu trả lời khác, làm thế nào để phần mềm chạy trên máy tính biết mức pin là bao nhiêu? Nó hỏi pin.

Hầu hết pin máy tính xách tay là pin thông minh có vi điều khiển riêng hoặc "máy đo nhiên liệu" ASIC, mà máy chủ có thể giao tiếp với SMBus. Mọi người đã đảo ngược một số ví dụ.

SMBus có thể hoặc không thể tiếp xúc trực tiếp với hệ điều hành theo cách cho phép người quản trị truy vấn trực tiếp. Có nhiều chương trình khác nhau như OpenHardwareMonitor hoặc Speccy hoặc lm-cảm biến có thể thẩm vấn xe buýt để tìm hiểu về phần cứng.


giải thích tuyệt vời để hiểu khái niệm cơ bản nói chung! Mặc dù tôi sẽ quảng cáo dấu ngoặc kép quanh từ "hỏi".
Albin

Không có mâu thuẫn với câu trả lời của tôi: SMBus là một thành phần được quản lý bởi ACPI cho các máy tính di động mà nó tồn tại.
harrymc

1
Giao diện pin thông minh này cũng có thể được tiếp xúc thông qua các phương tiện tiêu chuẩn hơn, chẳng hạn như USB. Chẳng hạn, nhiều UPS có cổng USB trên đó, khi cắm vào máy tính, sẽ cho máy tính biết lượng điện còn lại và hiển thị nó giống như máy tính xách tay.
TheHansinator

2
@TheHansinator Tôi cho rằng SMBus phương tiện tiêu chuẩn để giao tiếp với pin thông minh. Hầu như tất cả điện thoại và máy tính xách tay đều sử dụng nó, đó là toàn bộ hệ thống nhiều hơn so với sử dụng các thiết bị UPS bên ngoài.
Austin Hemmelgarn

@AustinHemmelgarn Đúng. Có thể một từ tốt hơn là "thông thường", trong đó hệ thống ít nhiều là một sự trừu tượng hóa hệ điều hành mà các thiết bị bên cạnh pin nhúng có thể sử dụng.
TheHansinator

2

Tổng quát hơn, tất cả các chip máy tính đều có tài liệu cho các nhà thiết kế và lập trình viên biết họ làm gì và làm cách nào để cấu hình chúng để làm điều đó. Việc truy cập mức độ thấp vào các chip này có thể được thực hiện bằng cách đọc và ghi trực tiếp vào các thanh ghi của chip.

Các chip phức tạp hơn có thể đi kèm với một chương trình phần mềm gọi là 'trình điều khiển' cho phép truy cập cấp cao vào hệ điều hành hoặc thậm chí các ứng dụng khác. Ví dụ, điện thoại thông minh của bạn có Giao diện lập trình ứng dụng (API) cho phép truy cập vào nhiều phần cứng, GPS, gia tốc kế, pin, máy ảnh, v.v. Khi bạn viết "Ứng dụng", bạn có thể truy cập các thiết bị phần cứng này bằng API giống như hệ điều hành có thể (mặc dù HĐH thường có quyền truy cập rộng hơn so với chương trình chạy trong 'không gian người dùng'.)

Các giao diện này được xác định rất rõ để khi bạn thực hiện một cuộc gọi chức năng đến chip phần cứng, nó sẽ phản hồi với thông tin được yêu cầu. Chip điều khiển pin chỉ là một ví dụ về cơ sở hạ tầng chung này.

Bất cứ ai viết mã hệ điều hành đều lấy tài liệu cho chip và viết phần mềm để giao tiếp với chip và lấy thông tin mà nó mong muốn.

Vì vậy, lần tới khi bạn tải 'trình điều khiển' (hoặc nó được thực hiện tự động) cho ổ cứng ngoài, ổ USB hoặc thứ gì khác, bạn sẽ hiểu thêm một chút về cách mọi thứ xảy ra 'dưới mui xe'.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.