HAL | |
---|---|
Tip de | Programul sistemului |
Scris in | C [1] |
Sistem de operare | Linux , FreeBSD , NetBSD , OpenSolaris , Solaris |
Platformă hardware | UNIX |
ultima versiune | 0.5.14 ( 30 noiembrie 2009 ) |
Stat | Dezvoltarea sa încheiat |
Licență | Licență publică generală GNU și licență gratuită academică |
Site-ul web | freedesktop.org/wiki/Sof… |
HAL (abreviat din engleză. Stratul de abstractizare hardware ) - nu mai este demon dezvoltat , reprezentând un strat de abstracții hardware pentru Linux și alte sisteme asemănătoare Unix .
Proiectul a fost creat inițial de Red Hat . Daemonul HAL primește informații hardware din nucleul sistemului de operare (pe Linux, de exemplu, HAL își obține cea mai mare parte a informațiilor de la sysfs ) și le pune la dispoziție pentru programele client prin D-Bus într-un mod ușor de utilizat. Obținerea informațiilor direct din nucleu este complexă și poate fi plină de probleme de securitate; prin urmare, prezența unui HAL simplifică foarte mult dezvoltarea programelor care trebuie să știe despre hardware-ul computerului (de exemplu, că utilizatorul tocmai a deconectat o imprimantă sau a introdus o unitate flash USB). Deoarece HAL oferă informații în același format pe toate platformele, indiferent de sistemul de operare și versiunea kernelului, facilitează, de asemenea, dezvoltarea de software pe mai multe platforme . În plus, HAL a făcut posibilă crearea de acțiuni automate (montare automată a discurilor, autoconfigurare imprimante etc.) prin reguli.
HAL este licențiat sub Licența publică generală GNU și Licența gratuită academică și este software liber [2] .
HAL este depreciat și depreciat . Deciziile luate ca bază pentru proiectarea HAL s-au dovedit a fi ineficiente în practică, iar singura cale de ieșire a fost crearea unui nou subsistem și transferul funcționalității. udev [3] a devenit un astfel de sistem .
În prezent, suportul HAL a fost eliminat din kernel, iar distribuțiile majore ( Ubuntu [4] , Debian [5] și Fedora [6] ) au finalizat tranziția și au folosit Udev .
Principalul avantaj al noului subsistem udev (peste HAL) este că primul este bazat pe evenimente și are o integrare strânsă cu nucleul, în timp ce HAL, fiind implementat în spațiul utilizatorului ca un daemon , este forțat să interogheze periodic nucleul. Astfel, utilizarea udev determinată de evenimente reduce semnificativ sarcina sistemului și, prin urmare, consumul de energie. De asemenea, descrierile regulilor pentru dispozitive sunt realizate sub formă de fișiere de configurare simple și sunt mult mai simple și mai ușor de înțeles pentru utilizatori și dezvoltatori decât XML-ul folosit anterior în HAL. În cele din urmă, udev este proiectat dintr-o listă curată, bazată pe experiența anterioară și nu are cod învechit sau dezordonat.
Inițial, cea mai mare parte a logicii HAL a fost mutată în udev, iar regulile au fost mutate într-un nou modul numit DeviceKit (a nu fi confundat cu PolicyKit sau ConsoleKit ).
Cu toate acestea, schema udev+DeviceKit s-a schimbat oarecum în curând - dezvoltatorii au descoperit că cea mai mare parte a hardware-ului era deja controlată de diverse componente software și erau necesare doar reguli pentru discuri ( udisks ) [7] și putere ( upower ) [8] . Proiectul DeviceKit a fost împărțit în mai multe părți mai mici și nu mai este folosit sau menționat [9] .
Astfel, distribuțiile moderne folosesc doar Udev și regulile sale (discurile, upower fac parte din pachetul udev-extras). Cu toate acestea, din cauza inerției codului, multe programe necesită încă un HAL învechit (în principal pentru detectarea discurilor) și, prin urmare, distribuțiile sunt forțate să furnizeze un HAL, duplicând efectiv logica (de exemplu, Qt3 și proiectul Trinity care a întâlnit acest lucru). ).
Componente | ||
---|---|---|
Biblioteci | ||
Cadre |
| |
Întâlniri |
|