Deprecated: Creation of dynamic property Timber\Site::$pingback is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Site.php on line 180

Deprecated: Creation of dynamic property Timber\User::$name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/User.php on line 118

Deprecated: Creation of dynamic property Timber\Post::$has_disclaimer is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_lock is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_last is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$os_meta is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_category is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_blz_affiliation_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_content_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_speciali is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskw is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_metadesc is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_linkdex is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_content_score is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskeywords is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_keywordsynonyms is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_estimated-reading-time-minutes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_thumbnail_id is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$os_previous_publish_date is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$os_notification_id is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_indexnow_last_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_date_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$ping_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_password is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$to_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$pinged is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_content_filtered is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$guid is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$menu_order is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_mime_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_count is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$filter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71
Linux, GNU Coreutils 9.11 accelera cat fino a 15 volte: che cosa cambia

Linux, GNU Coreutils 9.11 accelera cat fino a 15 volte: che cosa cambia

La versione 9.11 delle GNU Coreutils introduce ottimizzazioni rilevanti su Linux: il comando cat diventa fino a 15 volte più veloce. Com'è possibile.

Chi lavora quotidianamente su sistemi Unix-like tende a dare per scontati strumenti come cat, cp o ls. Eppure dietro a questi comandi apparentemente banali si nasconde una parte critica dell’infrastruttura software: le GNU Coreutils. Ogni miglioramento a quello livello “basico” si riflette direttamente su milioni di sistemi Linux, dai server enterprise alle immagini dei container più minimali. Il rilascio della versione 9.11 del pacchetto GNU Coreutils mette in evidenza un dato interessante: anche strumenti considerati ormai maturi continuano a evolversi, spesso in modo sorprendente.

Un salto prestazionale inatteso: il caso cat

Tra le novità più discusse della versione 9.11 c’è l’ottimizzazione del comando cat, che in alcuni scenari può risultare fino a 15 volte più veloce rispetto alle versioni precedenti.

Il comando cat legge uno o più file e ne stampa il contenuto nello standard output: serve per visualizzare o concatenare dati. Ad esempio, cat file.txt mostra il contenuto di un file, mentre cat file1.txt file2.txt > merged.txt unisce più file in uno solo. Può anche essere usato in pipeline, come cat file.txt | grep error, per filtrare rapidamente informazioni utili.

Un balzo prestazionale di 15 volte può sembrare eccessivo per un’utility così semplice, ma ha una spiegazione precisa: il collo di bottiglia non era tanto l’I/O in sé, quanto la gestione interna dei buffer e delle chiamate di sistema (syscall).

Le modifiche introdotte sul comando cat lavorano principalmente su due fronti: il codice evita letture/scritture frammentate e sfrutta meglio le dimensioni dei blocchi del filesystem. Il risultato si nota soprattutto quando l’output viene reindirizzato verso file o pipe, mentre è meno evidente nei terminali interattivi, dove la latenza del rendering resta dominante.

Va detto però che il miglioramento dipende fortemente dal carico e dal tipo di storage: su unità NVMe o RAM disk il guadagno diventa tangibile, mentre su unità di memorizzazione più lente il vantaggio si attenua. In altre parole, l’ottimizzazione non cambia la natura del comando, ma ne elimina le inefficienze storiche che su hardware moderno risultavano evidenti.

Compatibilità e comportamento POSIX

Nonostante i miglioramenti introdotti per aumentare l’efficienza, le Coreutils continuano a rispettare in modo rigoroso lo standard POSIX (Portable Operating System Interface, un insieme di regole che garantisce la compatibilità tra sistemi Unix), offrendo funzionalità aggiuntive che possono essere abilitate tramite specifiche variabili d’ambiente (impostazioni configurabili a livello di sistema o utente). Mantenere questo equilibrio è complesso: ottimizzare le prestazioni senza modificare il comportamento visibile dei programmi richiede verifiche e test molto accurati.

Ogni modifica al comportamento di utility come cat, cp o mv può avere effetti a catena su script legacy. Per questo motivo, molte ottimizzazioni sono introdotte senza cambiare l’interfaccia o il comportamento delle opzioni offerte.

Curiosità: il nome cat deriva dal termine inglese “concatenate“, cioè concatenare: la funzione originale del comando era unire più file e inviarli in output come un unico flusso continuo. Con il tempo è diventato uno strumento rapido anche per visualizzare file singoli, ma il nome è rimasto legato alla sua funzione primaria.

Il confronto con le alternative moderne

Negli ultimi anni progetti come uutils, riscritti in Rust, hanno messo pressione sul progetto GNU introducendo implementazioni alternative delle stesse utility. L’obiettivo è duplice: sicurezza della memoria e prestazioni migliori.

La risposta del progetto GNU non passa da una riscrittura completa, ma da un’evoluzione incrementale del codice C esistente. La versione 9.11 dimostra che, con interventi mirati, è possibile ottenere miglioramenti notevoli anche senza cambiare linguaggio.

Va detto però che il confronto resta aperto: Rust offre vantaggi strutturali, soprattutto nella prevenzione di bug legati alla memoria. D’altra parte, il codice C delle Coreutils ha decenni di test sul campo e una compatibilità praticamente totale con qualsiasi sistema Unix-like.

Per chi gestisce sistemi Linux, aggiornare le Coreutils non rappresenta quasi mai una priorità. Tuttavia, miglioramenti come quelli introdotti nella 9.11 possono avere effetti concreti in scenari specifici: flussi di lavoro incentrati sui dati, elaborazioni batch, gestione di grandi volumi di file. Il risultato è una riduzione dei tempi e, in alcuni casi, un minor consumo di risorse.

Ti consigliamo anche

Link copiato negli appunti