Nuovi modelli di CPU spesso permettono anche nuove istruzioni, che tipicamente significa saper fare operazioni complesse più velocemente chiamando l’istruzione specifica della CPU piuttosto che via software e le istruzioni base.
Forse ricorderete ancora l’enorme campagna pubblicitaria per le estensioni MMX alla fine degli anni ’90, oppure qualche polemica sulle istruzioni AVX-512 recentemente introdotte da Intel – e contro cui si è scagliato Linus.
Un sistema operativo deve interfacciarsi con l’hardware, primo fra tutti la CPU. Del resto, qualunque programma compilato non è altro che una serie di istruzioni alla CPU, e poter chiamare o no certe istruzioni – ovvero, essere ottimizzato – può avere un certo impatto sulle performance. Pertanto, selezionare quale è l’insieme di istruzioni utilizzabili è importante: per poter sfuttare al meglio le CPU moderne si diventa incompatibili con quelle più vecchiotte.
Phoronix già a marzo 2020 aveva intuito che la prossima versione di Red Hat Enteprise Linux (RHEL), la 9, potrebbe girare solo su CPU (x86 a 64 bit) relativamente recenti. Infatti il sito stesso conferma la notizia riprendendo un post apparso nel blog degli sviluppatori di Red Hat.
Nel post viene prima spiegato il concetto di livello di micro-architettura, poi vengono esposti i livelli esistenti e viene infine raccomandato il livello x86-64-v2, che possiamo dire essere compatibile con le CPU prodotte nell’ultimo decennio, ma non (sempre) con quelle antecedenti.
Ovviamente la scelta è dovuta allo stare al passo coi tempi, per permettere le migliori prestazioni sull’hardware più probabilmente disponibile: in effetti è improbabile Red Hat 9 dovrà girare su macchine vecchie una quindicina d’anni. Ma la scelta è delicata soprattutto per l’uso in macchine virtuali – il caso più diffuso ormai.
Spesso, infatti, il software di virtualizzazione (hypervisor) simula una CPU più meno avanzata di quella reale, non esponendo (e di fatto bloccando l’uso) di alcune istruzioni avanzate. La necessità è quello della portabilità e compatibilità: una macchina virtuale creata su un sistema deve poter essere fatta girare su un altro sistema, quindi le istruzioni della CPU disponibili devono essere le stesse.
Red Hat ha allo studio altre tecniche per poter garantire prestazioni migliori, come poter selezionare la libreria ottimizzata per la CPU su cui gira il sistema operativo, o poter compilare i programmi perché possano scegliere di volta in volta (runtime) l’insieme di istruzioni migliore in quel momento, ma questa decisione influenzerà di sicuro la possiblità di usare Red Hat e derivati similari (CentOS) per recuperare e usare macchine da considerare, altrimenti, semplicemente vecchie.
Ho coltivato la mia passione per l’informatica fin da bambino, coi primi programmi BASIC. In età adulta mi sono avvicinato a Linux ed alla programmazione C, per poi interessarmi di reti. Infine, il mio hobby è diventato anche il mio lavoro.
Per me il modo migliore di imparare è fare, e per questo devo utilizzare le tecnologie che ritengo interessanti; a questo scopo, il mondo opensource offre gli strumenti perfetti.
Lascia un commento