Architettura dei sistemi operativi real-time
I sistemi operativi real-time fornisco alle applicazioni un’astrazione dell’hardware (Hardware Abstraction Layer, HAL). L’Hardware Abstraction Layer mette a disposizione delle applicazioni una serie di servizi (primitive real-time). E’ 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 li 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 al file per la lettura (o lo leggerà per lui).
I programmi comunicano al sistema operativo real-time le operazioni da compiere e il sistema operativo provvede a effettuare le modifiche necessarie. Questo consente di modificare l’hardware deposto alla visualizzazione senza dover modificare tutti i programmi. Basta modificare lo strato che accede all’hardware!
L’Hardware Abstraction Layer può essere utilizzato 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 sfruttando un HAL viene utilizzata in molti sistemi per consentire la retro compatibilità con applicazioni arcaiche.