Interfacce in informatica

Completato

Un'interfaccia di sistema (o sottosistema) viene definita come un set di chiamate di funzione, che consente agli utenti di sfruttare le funzionalità del sistema sottostante senza doverne conoscere i dettagli. Le due interfacce più diffuse nei sistemi sono API (Application Programming Interface) e ISA (Instruction Set Architecture). Un'altra interfaccia meno nota ma importante (soprattutto per la virtualizzazione) è l'interfaccia ABI (Application Binary Interface). Il video seguente descrive le interfacce API, ISA e ABI.

Come illustrato nel video, un'API viene usata dai programmatori che usano un linguaggio ad alto livello per richiamare alcune funzionalità di librerie o del sistema operativo. Un'interfaccia API include tipi di dati, strutture di dati, funzioni e classi di oggetti, per citare alcuni degli elementi. Un'API consente di trasferire facilmente le applicazioni conformi (tramite ricompilazione) in qualsiasi sistema che supporta la stessa API. Un'API definisce un'interfaccia a livello software, ad esempio da e nel codice sorgente. Un'ABI, invece, definisce un'interfaccia a livello binario. In altre parole, l'ABI è essenzialmente una versione compilata dell'API. Di conseguenza, l'interfaccia ABI si trova a livello di linguaggio macchina. Con l'interfaccia ABI le funzionalità di sistema sono accessibili tramite chiamate di sistema del sistema operativo. Le chiamate di sistema del sistema operativo forniscono un set specifico di operazioni che il sistema operativo può eseguire per conto dei programmi utente. Un codice sorgente compilato per un'interfaccia ABI specifica può essere eseguito senza modifiche solo in un sistema con lo stesso sistema operativo e la stessa architettura ISA. Infine, ISA definisce un set di risorse di archiviazione (ad esempio, registri e memoria) e un set di istruzioni che eseguono operazioni aritmetiche, controllano l'esecuzione del programma e consentono la modifica dei dati contenuti nelle risorse di archiviazione. ISA si trova al confine tra hardware e software. Come illustrato più avanti nell'unità, le interfacce ABI e ISA sono importanti per la definizione dei tipi di macchine virtuali.

Verificare le conoscenze

1.

La definizione delle risorse di memoria e le istruzioni per modificarle sono documentate nell'interfaccia:

2.

I meccanismi effettivi di comunicazione tra il sistema operativo e l'hardware sottostante per eseguire i servizi richiesti e le decisioni relative alla gestione delle risorse sono inclusi nell'interfaccia: