自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux APM電源管理簡(jiǎn)析

運(yùn)維 系統(tǒng)運(yùn)維
針對(duì)APM和ACPI兩種不同的標(biāo)準(zhǔn),linux內(nèi)核提供了兩個(gè)不同的模塊來(lái)實(shí)現(xiàn)電源管理功能,這就是apm和acpi。需要注意,apm和acpi是互相沖突的兩個(gè)模塊,用戶在同一時(shí)間內(nèi)只能加載其中之一,如果當(dāng)他們?cè)诩虞d的時(shí)候發(fā)現(xiàn)二者之一已經(jīng)加載,就會(huì)自動(dòng)退出。

在官方發(fā)布的內(nèi)核中Linux APM是較為成熟的電源管理方式,可以完成在Windows下ACPI所能完成的大部分功能。由于官方內(nèi)核中ACPI的功能比較有限,目前還處于開(kāi)發(fā)版狀態(tài)。

所以當(dāng)前的大多數(shù)distribution,如紅帽子默認(rèn)就使用了apm作為電源管理方式。但是值得注意的是linux中的ACPI實(shí)際上是由一個(gè)單獨(dú)的項(xiàng)目小組模塊進(jìn)行維護(hù)的,當(dāng)前內(nèi)核ACPI的版本實(shí)際上已經(jīng)遠(yuǎn)遠(yuǎn)落后于***的版本。由于linux穩(wěn)定版中對(duì)任何新特性的加入都非常謹(jǐn)慎小心,所以我們也許只能等到2.6.x版本的linux誕生后才能看到ACPI的穩(wěn)定全功能版了。不過(guò)我們也可以自己對(duì)內(nèi)核打***的ACPI補(bǔ)丁來(lái)獲得這些功能。

下面對(duì)電源管理的介紹以Linux APM為主。

用戶態(tài)Daemon
為了讓linux內(nèi)核中的電源管理功能夠更好的被利用,我們還需要用戶態(tài)daemon程序的配合。針對(duì)Linux APM和ACPI,分別有apmd和acpid兩個(gè)不同軟件。他們實(shí)現(xiàn)的功能比較類似,都是允許用戶預(yù)先定義某些策略,然后跟蹤電源狀態(tài),執(zhí)行特定的操作。在apmd軟件包中還有一個(gè)工具Linux APM,用戶可以用它使機(jī)器主動(dòng)進(jìn)入standby和suspend狀態(tài),還可以查詢bios的apm版本號(hào)。在使用acpi時(shí)直接對(duì)proc文件系統(tǒng)進(jìn)行操作即可完成同樣的功能。

KernelSpace
APMdriver(包括提供給用戶空間使用apm_bios_fopsSystemCall,主要有apm_read,apm_poll,apm_ioctl,apm_open,apm_release)。
關(guān)于電池電量檢測(cè),主要要用到MCU平臺(tái)的ADC采樣(每隔多少時(shí)間來(lái)讀取ADC),以及DC供電,電源供電的檢測(cè)
關(guān)于體眠和恢復(fù),這個(gè)主要是ioctl要完成的事情,例如用戶空間用Linux APM-s進(jìn)行睡眠操作,會(huì)調(diào)用平臺(tái)相關(guān)的睡眠函數(shù),恢復(fù)也是類似的。這里面要注意,APM有一套假睡眠和恢復(fù),需要實(shí)現(xiàn)真正平臺(tái)相關(guān)的睡眠和恢復(fù)。

具體可以參考我的博客:2410的Linux APM電源管理分析。
UserSpace
GTK/Qt/C---->openAPM_PROC--->SystemCall(read()mainly)--->KernelVFS--->apm_driver-->apm_read
讀取syslog來(lái)獲得電池電量,供電檢測(cè)相關(guān)的信息

本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/hongjiujing/archive/2009/04/25/4122661.aspx

【編輯推薦】

  1. Linux 查看磁盤空間實(shí)現(xiàn)代碼介紹
  2. Linux操作系統(tǒng)需要微軟的十大幫助
  3. 探尋Linux到底需要多低的配置
  4. Linux測(cè)試工具tcpdump監(jiān)視TCP/IP連接命令介紹
  5. Linux流量控制實(shí)例應(yīng)用介紹

 

責(zé)任編輯:chenqingxiang 來(lái)源: CSDN
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)