Hardware abstraction layer: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Aggiunto il collegamento a "I/O" nell'introduzione
m Aggiunto il collegamento a "Scheda grafica" nell'introduzione
 
(2 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1:
{{F|sistema operativo|febbraio 2013}}
'''Hardware Abstraction Layer''' ('''HAL''') o '''strato di astrazione dall'hardware''' è 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à all'HAL di farlo per lui e l'HAL, appena esaudita la richiesta, gli passerà un [[Riferimento (informatica)|riferimento]] al file per la lettura (o lo leggerà per lui).
 
Dotando un programma di un HAL se ne migliora la portabilità su altri tipi di [[computer]]/[[sistema operativo|sistemi operativi]] e la funzionalità con dispositivi diversi, perché eventuali modifiche e adattamenti vanno fatti solamente nell'HAL senza toccare il codice del programma stesso; inoltre è relativamente facile aggiungere, all'occorrenza, una sezione all'HAL 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 l'immagine 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 l'[[hardware]] preposto alla visualizzazione senza dover modificare tutti i programmi. Basta modificare lo strato che accede all'hardware, questo comunemente viene chiamato [[driver]].
 
La HAL può essere utilizzata per emulare componenti non presenti nel sistema operativo o nell'hardware. Per esempio le moderne schede grafiche non gestiscono nativamente le modalità CGA, EGA o VGA. Queste modalità vengono emulate dall'HAL che provvede a tradurre le istruzioni che gestiscono queste modalità in comandi comprensibili dalla scheda grafica. L'emulazione utilizzando una HAL viene utilizzata in molti sistemi per consentire la retro compatibilità con applicazioni arcaiche.