Indietro

ⓘ Hardware abstraction layer




Hardware abstraction layer
                                     

ⓘ Hardware abstraction layer

Hardware Abstraction Layer o strato di astrazione dallhardware è un insieme di funzioni di I/O il più possibile generiche e semplici, il cui compito è di tenere conto di tutte le differenze fra dispositivi fisici diversi al posto del programma che lo userà, nascondendogli la vera identità e natura di essi: per esempio il programma, invece di aprire personalmente un file chiederà allHAL di farlo per lui e lHAL, appena esaudita la richiesta, gli passerà un riferimento al file per la lettura.

Dotando un programma di un HAL se ne migliora la portabilità su altri tipi di computer/sistemi operativi e la funzionalità con dispositivi diversi, perché eventuali modifiche e adattamenti vanno fatti solamente nellHAL senza toccare il codice del programma stesso; inoltre è relativamente facile aggiungere, alloccorrenza, una sezione allHAL per gestire un dispositivo che non era stato inizialmente previsto.

I moderni sistemi operativi sono dotati di uno o più livelli di HAL. La HAL viene utilizzata normalmente per separare i programmi dai sistemi di comunicazione. Quindi i programmi non accedono mai alla memoria della scheda grafica quando devono modificare limmagine mostrata sullo schermo. I programmi comunicano al sistema operativo le operazioni da compiere e il sistema operativo provvede a effettuare le modifiche necessarie. Questo consente di modificare lhardware preposto alla visualizzazione senza dover modificare tutti i programmi. Basta modificare lo strato che accede allhardware, questo comunemente viene chiamato driver.

La HAL può essere utilizzata per emulare componenti non presenti nel sistema operativo o nellhardware. Per esempio le moderne schede grafiche non gestiscono nativamente le modalità CGA, EGA o VGA. Queste modalità vengono emulate dallHAL che provvede a tradurre le istruzioni che gestiscono queste modalità in comandi comprensibili dalla scheda grafica. Lemulazione utilizzando una HAL viene utilizzata in molti sistemi per consentire la retro compatibilità con applicazioni arcaiche.