Nei giorni scorsi abbiamo presentato uno strumento che consente di verificare quali processori non saranno compatibili con Windows 11 24H2, il primo e unico corposo feature update per il sistema operativo che Microsoft rilascerà in autunno. E avevamo sottolineato il fatto che l’azienda di Redmond sembra escludere tutte le CPU più vecchie che non supportano l’istruzione POPCNT.
Intendiamoci. Windows 11 non supporta ufficialmente nessun processore antecedente agli Intel Kaby Lake di ottava generazione (numero “8” come prefisso nella sigla del modello) e alle CPU AMD Ryzen 2000. Con alcuni semplici trucchi (alcuni peraltro supportati e documentati da Microsoft stessa…) è possibile installare Windows 11 su PC non compatibili. Queste “gabole” continueranno, a quanto pare, a funzionare anche nel caso di Windows 11 24H2 ma nel caso di alcuni vecchi processori la procedura d’installazione del sistema operativo si bloccherà evidenziando un comportamento anomalo.
È Microsoft a far luce sul mistero POPCNT, ma non aspettatevi un cambio di rotta per Windows 11 24H2
POPCNT è un’istruzione assembly che effettua il conteggio del numero di bit impostati su 1 in un dato registro. È comunemente utilizzata nella programmazione a basso livello per le operazioni come la manipolazione di maschere di bit, il calcolo della parità, l’ottimizzazione di algoritmi e in altre situazioni in cui è necessario contare il numero di bit attivi in una rappresentazione binaria di dati.
L’utilizzo di POPCNT può migliorare le prestazioni del codice in quanto fornisce un’implementazione hardware efficiente per la specifica esigenza precedentemente descritta. In questo modo, si può ridurre il tempo di esecuzione rispetto alle implementazioni software. La disponibilità dell’istruzione POPCNT, tuttavia, dipende dall’architettura del processore.
Con le estensioni SSE 4.2 (Streaming SIMD Extensions 4.2), nell’ormai lontano 2008, Intel ha introdotto anche l’istruzione POPCNT (processori della famiglia Nehalem), successivamente implementata anche da AMD nelle sue CPU. È quindi possibile far riferimento alle specifiche tecniche dei singoli processori per verificare la compatibilità SSE 4.2 e di conseguenza il supporto POPCNT.
Mancato supporto dell’istruzione che ha causato problemi lato software
L’assenza del supporto per l’istruzione POPCNT non impedirà soltanto l’installazione di Windows 11 sui sistemi dotati di vecchie CPU ma è la causa di messaggi d’errore come “File System Error (-2147219196)” che hanno interessato gli utenti delle app installate tramite Microsoft Store.
Sul problema, di primo acchito inspiegabile, hanno voluto far luce gli sviluppatori dell’azienda di Redmond con il team di sviluppo di Visual C++ che ha individuato la causa in un bug a livello di libreria (VCLibs).
A scoprire per primo il problema evidenziandone le possibili motivazioni è stato Masahiro Takegami che a novembre 2023 aveva ben documentato il comportamento di Visual Studio 17.8.0 su un suo PC basato su processore Intel Core 2 Quad Q6600. È proprio a partire da quella release di Visual Studio che sono iniziati i problemi con POPCNT.
Mahmoud G Saleh, ingegnere Microsoft, conferma adesso che il bug è già corretto con la pubblicazione di Visual Studio 2022, versione 17.9.1 e successive.
Fonte dell’immagine: Bob Pony (X).
Anche se l’intervento dovrebbe risolvere il problema del mancato funzionamento delle app Microsoft Store con i processori più vecchi, sembra improbabile che le CPU più datate tornino compatibili con Windows 11 24H2.
Come si vede nell’immagine riportata poco sopra, l’installazione di Windows 11 mostra il messaggio seguente in caso di incompatibilità: “Il processore di questo PC non supporta una funzionalità critica (PopCnt)” allorquando gli utenti tentino di installare la versione 24H2 sulle macchine che non supportano le estensioni SSE 4.2.
Microsoft, pur nelle condizioni di correggere il problema, potrebbe quindi aver colto la palla al balzo per “mettere fuori gioco”, definitivamente, le macchine più vecchie senza possibilità di appello.
Credit immagine di apertura: Microsoft Bing Image Creator.