Close Menu
    DevStackTipsDevStackTips
    • Home
    • News & Updates
      1. Tech & Work
      2. View All

      Sunshine And March Vibes (2025 Wallpapers Edition)

      May 13, 2025

      The Case For Minimal WordPress Setups: A Contrarian View On Theme Frameworks

      May 13, 2025

      How To Fix Largest Contentful Paint Issues With Subpart Analysis

      May 13, 2025

      How To Prevent WordPress SQL Injection Attacks

      May 13, 2025

      This $4 Steam Deck game includes the most-played classics from my childhood — and it will save you paper

      May 13, 2025

      Microsoft shares rare look at radical Windows 11 Start menu designs it explored before settling on the least interesting one of the bunch

      May 13, 2025

      NVIDIA’s new GPU driver adds DOOM: The Dark Ages support and improves DLSS in Microsoft Flight Simulator 2024

      May 13, 2025

      How to install and use Ollama to run AI LLMs on your Windows 11 PC

      May 13, 2025
    • Development
      1. Algorithms & Data Structures
      2. Artificial Intelligence
      3. Back-End Development
      4. Databases
      5. Front-End Development
      6. Libraries & Frameworks
      7. Machine Learning
      8. Security
      9. Software Engineering
      10. Tools & IDEs
      11. Web Design
      12. Web Development
      13. Web Security
      14. Programming Languages
        • PHP
        • JavaScript
      Featured

      Community News: Latest PECL Releases (05.13.2025)

      May 13, 2025
      Recent

      Community News: Latest PECL Releases (05.13.2025)

      May 13, 2025

      How We Use Epic Branches. Without Breaking Our Flow.

      May 13, 2025

      I think the ergonomics of generators is growing on me.

      May 13, 2025
    • Operating Systems
      1. Windows
      2. Linux
      3. macOS
      Featured

      This $4 Steam Deck game includes the most-played classics from my childhood — and it will save you paper

      May 13, 2025
      Recent

      This $4 Steam Deck game includes the most-played classics from my childhood — and it will save you paper

      May 13, 2025

      Microsoft shares rare look at radical Windows 11 Start menu designs it explored before settling on the least interesting one of the bunch

      May 13, 2025

      NVIDIA’s new GPU driver adds DOOM: The Dark Ages support and improves DLSS in Microsoft Flight Simulator 2024

      May 13, 2025
    • Learning Resources
      • Books
      • Cheatsheets
      • Tutorials & Guides
    Home»Operating Systems»Linux»Linus Torvalds critica duramente i file system che non distinguono tra maiuscole e minuscole!

    Linus Torvalds critica duramente i file system che non distinguono tra maiuscole e minuscole!

    April 26, 2025
    Linus Torvalds critica duramente i file system che non distinguono tra maiuscole e minuscole!

    Linus Torvalds ha recentemente espresso con la sua consueta franchezza un forte disappunto riguardo ai file system che implementano il supporto per il case-folding, ovvero la gestione di nomi di file e cartelle senza distinzione tra lettere maiuscole e minuscole.

    Il contesto di queste osservazioni nasce da un problema riscontrato nel file system Bcachefs, che ha evidenziato un malfunzionamento nel supporto al case-folding nella sua implementazione. Per questo motivo, è stata presentata una richiesta di correzione da integrare nella versione del kernel Linux 6.15, la prossima versione stabile. Torvalds ha quindi pubblicato un lungo messaggio sulla mailing list ufficiale del kernel Linux (LKML), dove ha illustrato le sue opinioni critiche su questa funzionalità.

    Il problema del case-folding nei file system Linux non è nuovo. In passato si sono verificati problemi legati alla gestione di caratteri Unicode speciali, come le emoji, che complicano ulteriormente il corretto confronto dei nomi di file e cartelle senza distinzione tra maiuscole e minuscole.

    Il case-folding è un metodo utilizzato per trattare le lettere maiuscole e minuscole come equivalenti, consentendo ad esempio di riconoscere “File.txt” e “file.txt” come lo stesso nome di file. Questa funzionalità, diffusa in diversi file system, semplifica alcune operazioni, ma può anche introdurre complicazioni e rischi per la sicurezza, soprattutto in contesti che richiedono una gestione precisa e rigorosa dei nomi dei file.

    Le opinioni di Linus Torvalds sul case-folding dei file system

    Nel suo intervento su LKML, Linus Torvalds ha dichiarato senza mezzi termini che chi si occupa di sviluppo di file system non impara mai dai propri errori. Secondo lui, l’adozione di nomi case-insensitive (cioè che non distinguono tra maiuscole e minuscole) è un errore grave e non avrebbe dovuto essere implementata.

    Tra i punti chiave del suo discorso:

    • Il problema non è la mancanza di test, ma il fatto stesso di aver implementato questa funzionalità.
    • Tentare di gestire il case-folding “in modo corretto” è impossibile, perché non esiste un modo universalmente giusto per farlo; questo porta a interpretazioni arbitrarie di byte casuali nei nomi dei file.
    • I test effettuati finora sono falliti nel coprire tutti i casi problematici, in particolare quelli che possono causare vulnerabilità di sicurezza negli ambienti utente.
    • Alcuni programmi in modalità utente verificano che i nomi dei file non corrispondano a pattern sensibili per motivi di sicurezza, ma il file system case-insensitive può comunque far corrispondere questi pattern ignorando caratteri non stampabili o altri dettagli, esponendo così i programmi a rischi di inganno.
    • Torvalds cita esempi di commit (modifiche al codice) che tentano di gestire questi casi, ma che dimostrano la complessità e i problemi insiti nel case-folding.
    • Un esempio concreto riguarda i caratteri Unicode ❤ e ❤, che differiscono solo per punti di codice ignorabili. Il primo è un semplice cuore (U+2764), mentre il secondo include un modificatore di stile (U+2764 U+FE0F), che lo rende un’emoji. Chi vuole che questi 2 caratteri siano considerati uguali finisce per far sì che altri file con punti di codice ignorabili vengano trattati allo stesso modo, con conseguenze potenzialmente pericolose.
    • Molti programmi che effettuano controlli di sicurezza sui percorsi dei file possono essere ingannati da questa gestione errata del case-folding.
    • Per Torvalds, la distinzione tra maiuscole e minuscole non è un problema da risolvere, ma una caratteristica fondamentale e la sua assenza rappresenta un vero e proprio bug.
    • Egli critica chi continua a considerare il case-folding una funzionalità da implementare, paragonandolo a un tentativo di ricreare i limiti del vecchio file system FAT, noto per le sue carenze.

    Questa posizione di Torvalds è coerente con la sua storica attenzione alla robustezza e sicurezza del kernel Linux e dei file system associati e non dovrebbe rappresentare una novità. Del resto mi sembra chiaro quando scrive:

    Dammit. Case sensitivity is a BUG. The fact that filesystem people *still* think it’s a feature, I cannot understand. It’s like they revere the old FAT filesystem _so_ much that they have to recreate it – badly.

    Dannazione. La distinzione tra maiuscole e minuscole è un BUG. Il fatto che chi si occupa di file system *ancora* la consideri una funzionalità, non riesco a capirlo. È come se venerassero così tanto il vecchio file system FAT da dover ricrearlo, e alla grande.

    Perché la distinzione tra maiuscole e minuscole è importante nei file system GNU/Linux

    Nei sistemi GNU/Linux, la distinzione tra lettere maiuscole e minuscole nei nomi di file e cartelle è una caratteristica fondamentale. Ad esempio, “Documento.txt” e “documento.txt” sono considerati 2 file distinti. Questo comportamento deriva dalla filosofia Unix di mantenere un controllo preciso e rigoroso sui nomi dei file, evitando ambiguità.

    I file system più comuni su GNU/Linux, come ext4, rispettano questa distinzione, garantendo così una gestione coerente e sicura dei dati. Al contrario, file system come FAT o NTFS (tipici di Windows) sono case-insensitive, cioè non distinguono tra maiuscole e minuscole, il che può portare a problemi di compatibilità e sicurezza quando si usano in ambienti GNU/Linux.

    Il problema del case-folding diventa ancora più complesso quando si considerano i caratteri Unicode, che includono simboli, emoji e caratteri speciali. La gestione corretta di questi caratteri richiede una normalizzazione e un confronto preciso, che spesso non è possibile realizzare in modo affidabile con il case-folding.

    Implicazioni per gli sviluppatori e gli utenti di GNU/Linux

    Le osservazioni di Linus Torvalds mettono in guardia sviluppatori e utenti riguardo all’adozione di file system con supporto case-insensitive o case-folding, specialmente in ambienti GNU/Linux dove la distinzione tra maiuscole e minuscole è la norma.

    Gli sviluppatori di file system sono invitati a considerare attentamente le implicazioni di sicurezza e compatibilità prima di implementare funzionalità di questo tipo. Gli utenti, invece, devono essere consapevoli delle differenze tra i vari file system e scegliere quelli più adatti alle proprie esigenze, tenendo presente che la gestione dei nomi di file senza distinzione tra maiuscole e minuscole può comportare rischi e comportamenti inattesi.

    Novità in Bcachefs versione 6.15

    Le distribuzioni GNU/Linux stanno per ricevere la versione 6.15 del kernel Linux, che includerà una correzione per il supporto case-folding nel file system Bcachefs. Questa correzione mira a risolvere i problemi di funzionamento riscontrati nella gestione dei nomi di file e cartelle senza distinzione tra maiuscole e minuscole. Tuttavia, come evidenziato da Linus Torvalds, la correzione non elimina le problematiche di fondo legate al case-folding, che rimane una funzionalità controversa e fonte di potenziali vulnerabilità di sicurezza.

    Fonte: https://lore.kernel.org/lkml/CAHk-=wjajMJyoTv2KZdpVRoPn0LFZ94Loci37WLVXmMxDbLOjg@mail.gmail.com/
    Fonte: https://www.phoronix.com/news/Linus-Torvalds-Anti-Case-Fold

    Source: Read More

    Facebook Twitter Reddit Email Copy Link
    Previous ArticleRilasciata Archcraft 2025.04.24: la distribuzione GNU/Linux minimalista e moderna basata su Arch Linux
    Next Article CVE-2025-2101 – Edumall WordPress Local File Inclusion Vulnerability

    Related Posts

    News & Updates

    This $4 Steam Deck game includes the most-played classics from my childhood — and it will save you paper

    May 13, 2025
    News & Updates

    Microsoft shares rare look at radical Windows 11 Start menu designs it explored before settling on the least interesting one of the bunch

    May 13, 2025
    Leave A Reply Cancel Reply

    Continue Reading

    LWiAI Podcast #169 – Google’s Search Errors, OpenAI news & DRAMA, new leaderboards

    Artificial Intelligence

    ehh – CLI tool to help remember commands

    Linux

    CVE-2025-4468 – SourceCodester Online Student Clearance System File Upload Vulnerability

    Common Vulnerabilities and Exposures (CVEs)

    Want to save your old computer? Try these 5 Linux distributions

    Development

    Highlights

    How to insert data into MySQL database using Laravel 11

    January 29, 2025

    To insert data into a MySQL database using Laravel 11, you have to follow the…

    14 Best Free and Open Source CLI Tools to Find and Delete Duplicate Files

    December 17, 2024

    Leaked Black Basta Chats Suggest Russian Officials Aided Leader’s Escape from Armenia

    March 19, 2025

    Can’t Create a New Folder on Windows 11? Try These Quick Fixes

    January 3, 2025
    © DevStackTips 2025. All rights reserved.
    • Contact
    • Privacy Policy

    Type above and press Enter to search. Press Esc to cancel.