DeviceKit
# DeviceKit

DeviceKit era il nome di una serie di progetti di hardware abstraction layer tesi a sostituire l'attuale sistema monolitico HAL. I progetti derivati da DeviceKit sono UDisks, UPower e media-player-info.

## Storia

Inizialmente DeviceKit consisteva in un demone molto simile ad HAL ed a due componenti per la gestione delle memorie di massa e per la gestione del risparmio energetico che si basavano sullo stesso demone, successivamente il team di sviluppo decise che tenere mantenere due livelli di astrazione era superfluo per cui le caratteristiche del demone principale vennero confluite nei due componenti principali DeviceKit-disks e DeviceKit-power.

Per ricevere le informazioni dall'hardware è stato utilizzato direttamente udev (tramite libudev), il quale veniva già usato in precedenza da HAL e DeviceKit. I progetti nati da questa scissione sono stati UDisks derivato da Devicekit-disks e UPower derivato da DeviceKit-Power, entrambi hanno mantenuto inalterate le loro API esposte su D-Bus. Alcuni pezzi di codice rimasti, riguardanti soprattutto particolari categorie di hardware sono stati fusi con udev-extras.

La prima distribuzione a includere DeviceKit e i suoi componenti è stata Fedora 11, mentre Ubuntu ha sostituito HAL con DeviceKit e l'utilizzo diretto di udev nella versione 9.10 distribuita il 29 ottobre 2009.

## Funzionamento

Entrambi i componenti ottengono informazioni sull'hardware da udev e permettono di effettuare operazioni sull'hardware tramite diverse librerie predisposte per scopi specifici. Le applicazioni ottengono tali informazioni e comandano operazioni tramite il protocollo D-Bus.

### UDisks

UDisks è il componente dedicato alla gestione delle memorie di massa, tramite esso è possibile ottenere informazioni sulle partizioni e sullo stato di salute di ogni disco collegato al sistema, permette anche di effettuare piccole operazioni di partizionamento. Per la diagnostica dei dischi utilizza libatasmart il quale ottiene i dati dal sistema SMART, mentre per la gestione delle partizioni libparted.

### UPower

UPower è il componente dedicato alla gestione del risparmio energetico. Permette quindi di monitorare i livelli e la salute delle batterie in uso nel sistema (in particolare sui computer portatili o negli UPS) e la disattivazione dei componenti hardware non utilizzati, come un disco rigido rotativo o parte della CPU. UPower è anche il componente responsabile della gestione della retroilluminazione nei computer portatili.

## Esempi di software

* PackageKit
* PolicyKit
* GNOME Disks - una interfaccia grafica a UDisks per GNOME
