Journal exFAT dans le noyau Linux ? Microsoft a (enfin) dit oui !

Posté par . Licence CC by-sa.
38
28
août
2019

La gestion du système de fichiers exFAT est en cours d’intégration dans le noyau Linux.

Notamment utilisé comme système de fichiers par de nombreux appareils (appareils photo, caméscopes, clefs USB, etc.), le successeur du « vénérable » FAT32, faisant au passage sauter un bon nombre de limitations hérité de son aîné, aura connu quelques péripéties pour en arriver là !

FUSE-exFAT

Ceci n’est pas une révolution ! Il était déjà possible d’utiliser le système de fichiers exFAT sous GNU/Linux, BSD et macOS en espace utilisateur via FUSE. Les outils de vérification du système de fichiers et de formatage étant eux aussi disponibles.

Samsung exFAT

Une implémentation via FUSE ne convenant pas à ses usages, Samsung a écrit une implémentation native du système de fichiers pour l’embarquer notamment dans ses téléphones Android. Cette implémentation avait par la suite fuité sur GitHub.

À la suite de cette fuite et des plaintes concernant la violation par ce pilote de la licence du noyau Linux (GPL v2), Samsung avait décidé de libérer officiellement son implémentation sur son portail Open Source Release Center. Bien que sous licence libre, ce pilote n’exonérait en revanche pas les distributeurs de cette solution de s’acquitter des droits liés aux brevets détenus par Microsoft sur exFAT.

exFAT dans le noyau

C’est en cela que Theodore Ts’o, (M. ext2/3/4, pour les intimes) s’inquiétait sur la LKML des problématiques légales relatives à l’inclusion du pilote exFAT dans le noyau Linux. Ajoutant par la même, qu’il ne voyait pas pourquoi il fallait faciliter la diffusion de cette technologie tout en prenant le risque de se voir réclamer des droits d’utilisation par Microsoft pour ses brevets.

Cette discussion a visiblement fait mouche, puisque Microsoft vient d’annoncer sur son blog, la disponibilité des spécifications du système de fichiers exFAT et qu’il allait aussi permettre aux membres de l’Open Invention Network et aux utilisateurs de pouvoir utiliser exFAT gratuitement.

C'est sans tarder que le pilote exFAT de Samsung devrait intégrer la branche « staging » du noyau Linux.

Comme quoi parfois, il suffit de demander !

À lire aussi le fil Twitter lié à cette annonce où Microsoft répond à quelques questions de la communauté.

  • # Oops, I did it again.

    Posté par . Évalué à 1 (+0/-0). Dernière modification le 28/08/19 à 23:04.

    -Le support du système de fichier de exFAT
    +Le support du système de fichier exFAT

    Probablement pas mal de fautes aussi :(

    • [^] # Re: Oops, I did it again.

      Posté par . Évalué à 10 (+10/-0).

      J'ajoute que le terme "utiliser exFAT librement" est peut-être un peu trompeur "utiliser exFAT gratuitement" serait plus adapté. Car cela ne rêgle apparement pas le cas des non-membres de l'OIN et d'une implementation sous BSD par exemple. Desolé pour la relecture post-publication.

      • [^] # Re: Oops, I did it again.

        Posté par . Évalué à 1 (+0/-0).

        et aussi "C'est sans tarder que le pilote exFAT de Samsung devrait intégrer la branche..". Car Linus n'a pas encore mergé le patch.

      • [^] # Re: Oops, I did it again.

        Posté par (page perso) . Évalué à 2 (+1/-1).

        On s'en fou de la licence BSD ;-)

        À partir du moment ou les spec sont libres, il devient beaucoup plus facile d'en écrire une implémentation, surtout si on a une version GPL à coté. En cas de soucis, suffit de demander à une autre personne comment s'en sors la version GPL.

        De plus, comme beaucoup de driver noyau, il y a de forte chance que le code soit diffuser sous double licence au final.

        • [^] # Re: Oops, I did it again.

          Posté par . Évalué à 10 (+8/-0).

          Je pense que tu ne comprends pas le problème:

          L'implémentation Libre existait déjà, mais n'était pas intégrée au noyau à cause de brevets!
          MS n'a pas retiré le brevet, juste autorisé les membres de l'OIN à l'utiliser gratuitement au lieu de réclamer des royalties.

          Si tu n'es pas membre de l'OIN, tu peux toujours implémenter exFAT, avec du code Libre ou non. Mais MS peut venir réclamer des royalties aux éditeurs et/ou utilisateurs sur la base des brevets suivant la loi locale.

          • [^] # Re: Oops, I did it again.

            Posté par (page perso) . Évalué à 4 (+2/-0). Dernière modification le 29/08/19 à 20:49.

            Cela dit, les brevets ne sont pas valables en Europe alors tu fais ton implémentation sous licence BSD et la diffuse sur un serveur en Europe.

            Faut arrêter de se mettre sous juridiction USA a tout bout de champs ;-)

            • [^] # Re: Oops, I did it again.

              Posté par . Évalué à 4 (+1/-0).

              Sans vouloir te manquer de respect, je pense que tu lis vraiment trop vite:

              Mais MS peut venir réclamer des royalties aux éditeurs et/ou utilisateurs sur la base des brevets suivant la loi locale.

    • [^] # Re: Oops, I did it again.

      Posté par . Évalué à 10 (+8/-0).

      -Le support du système de fichier de exFAT
      +Le support du système de fichier exFAT

      Probablement pas mal de fautes aussi :(

      J’aurais aussi pensé mettre plusieurs fichiers dessus…

      ¯ : macron (typographie), petit signe diacritique, qui prétend ne pencher ni à gauche ni à droite, mais se place nettement au dessus des vraies lettres, qu’il considère avec mépris.

  • # Oui mais

    Posté par . Évalué à 10 (+14/-5).

    Ok d'accord, mais c'est quoi le rapport avec les polices de caractères ?

    • [^] # Re: Oui mais

      Posté par . Évalué à -3 (+2/-6).

      :rofl:

      "Gentoo" is an ancient african word, meaning "Read the F*ckin' Manual". "Gentoo" also means "I am what I am because you all are freaky n3rdz"

  • # Alternatives ?

    Posté par . Évalué à 7 (+5/-0).

    Sans entrer dans le débat pour ou contre exFat dans linux, quelles alternativent existent aujourd'hui ?
    J'utilise un support externe pour lequel FAT ne me convient pas (à cause de ses nombreuses limitations) et qu'il m'arrive d'utiliser sur des machines ou mon uid est différent.
    Pour l'instant il est en ext4 et je bidouille pour m'en sortir, mais je pense sincèrement qu'un système de fichier sans gestion des utilisateur serait plus pratique pour ce genre de support.

    Est ce que des personnes ici ont le même soucis ? et si oui, quelle est leur solution ?

    • [^] # Re: Alternatives ?

      Posté par . Évalué à 2 (+0/-0).

      Pareil, je galère avec ext4.

    • [^] # Re: Alternatives ?

      Posté par . Évalué à 6 (+6/-1).

      UDF marche bien.

      • [^] # Re: Alternatives ?

        Posté par . Évalué à 2 (+2/-0).

        Et yaffs ? A-t'il un intérêt ? (c'est une vrai question)

        • [^] # Re: Alternatives ?

          Posté par (page perso) . Évalué à 5 (+3/-0).

          Alors, oui, mais pas pour ça.

          Yaffs est un système de fichier prévu pour les cas ou on a accès directement à la mémoire NAND flash, qui a besoin:
          - De "wear leveling": s'assurer de ne pas écrire trop souvent aux mêmes endroits dans la mémoire car elle finit par s'user
          - De gestion des "bad blocks": stockage de bits supplémentaires permettant de vérifier l'intégrité de chaque secteur et de corriger les erreurs de quelques bits qui se produisent régulièrement sur ce type de mémoire.

          Si tu utilises une clé USB, elle a déjà un contrôleur qui s'occupe de tous ces détails en interne, donc YAFFS ne sert à rien. En plus, il a besoin d'accéder aux données "OOB" de la flash: des bits "en plus" dans chaque bloc qui sont prévus pour stocker des métadonnées sur la flash elle-même, et qui ne sont pas accessibles sur une clé USB. Donc il ne sera même pas utilisable.

      • [^] # Re: Alternatives ?

        Posté par (page perso) . Évalué à 2 (+0/-0).

        Et surtout c'est un vrai standard ouvert, avec les spécifications disponibles chez l'ECMA sans payer et sans avoir besoin d'être membre de l'Open Invention Network: https://www.ecma-international.org/publications/standards/Ecma-167.htm

      • [^] # Re: Alternatives ?

        Posté par (page perso) . Évalué à 3 (+0/-0).

        J'avais exploré cette piste : https://tanguy.ortolo.eu/blog/article93/usb-udf

        Malheureusement, à l'usage, ce n'est pas vraiment parfait. Pour un raison que j'ignore, les transferts de fichiers vers un système de fichier UDF sont lents, très lents. Le pilote UDF de Linux doit être assez limité, et ne semble pas très maintenu. Il n'y a pas d'outil de vérification de système de fichiers non plus. Bref, ce n'est pas fantastique, mais ça aurait pu l'être, c'est dommage.

    • [^] # Re: Alternatives ?

      Posté par . Évalué à 3 (+1/-0). Dernière modification le 29/08/19 à 11:06.

      À une époque j'ai utilisé l'UDF comme filesystem vaguement¹ universel. Les droits POSIX sont utilisés par contre il me semble. Pas fait de benchmark pour savoir si il était plus lent ou plus rapide que du fat32 ou du NTFS, encore moins exFAT dont soit j'ignorais encore l'existence, soit il n'existait pas encore.

      Mais bon je pense que ton problème n'a rien à voir avec l'utilisation de tel ou tel système de fichier, tu dois juste apprendre à utiliser umask.

      ¹ Je dis vaguement parce qu'il fallait encore faire gaffe dans quelle version on le formattait pour qu'il soit visible sur un "ancien windows" comme windows XP.

      • [^] # Re: Alternatives ?

        Posté par . Évalué à 2 (+0/-0).

        Pour la performance, du moment que ça n'est pas catastrophique, c'est pas très grave pour mon cas d'utilisation.

        après, pour le umask, je n'ai pas formécement envie de changer celui par défaut de mon utilisateur (si c'est bien ce que tu proposais, sinon je veux bien plus d'infos), ce que je fais, c'est monter moi même le périphérique avec un mapping d'uid.

        il faudrait que je teste si, en mettant ces options dans mon fstab, le montage de périphérique externe depuis mon environement de bureau les utilise correctement.
        Et même dans ce cas, cela ne marchera que sur les machines ou je suis admin et ou je peux modifier le fstab, pour les autres, ça ne m'avance pas vraiment.

        • [^] # Re: Alternatives ?

          Posté par . Évalué à 2 (+0/-0). Dernière modification le 29/08/19 à 13:32.

          après, pour le umask, je n'ai pas formécement envie de changer celui par défaut de mon utilisateur (si c'est bien ce que tu proposais, sinon je veux bien plus d'infos)

          J'avais dans l'idée que tu changes ton umask avant de copier quoique ce soit.

          Sinon un horrible chmod -R 777 /point_de_montage avant chaque démontage. Si ton appareil usb ne contient pas des millions de fichiers c'est normalement rapide (faut y penser par contre).

          • [^] # Re: Alternatives ?

            Posté par . Évalué à 1 (+1/-1).

            Sinon un horrible chmod -R 777 /point_de_montage avant chaque démontage. Si ton appareil usb ne contient pas des millions de fichiers c'est normalement rapide (faut y penser par contre).

            Astuce, il vaut mieux faire chmod -R a=rwX pour ne pas rendre exécutable tous les fichiers du périphérique.

            • [^] # Re: Alternatives ?

              Posté par . Évalué à 3 (+1/-0).

              Juste, c'est tellement un truc de dev :-) une mauvaise pratique de tout mettre en accès complet que je n'ai même pas pensé à ça.

          • [^] # Re: Alternatives ?

            Posté par . Évalué à 2 (+0/-0).

            J'avais dans l'idée que tu changes ton umask avant de copier quoique ce soit.

            Je n'ai pas pensé à cela, c'est vrai. le défaut de cette solution, c'est qu'elle ne marche que quand je fais des copies depuis un terminal, et que pour les copies. (j'ai 2 repos git sur ma clé usb, je ne sais pas si le push gère le umask)

            Sinon un horrible chmod -R 777 /point_de_montage avant chaque démontage. Si ton appareil usb ne contient pas des millions de fichiers c'est normalement rapide (faut y penser par contre).

            C'est aussi une solution, par rapport à celle de mon mapping d'uid, elle à l'avantage de fonctionner sur une machine où je n'ai pas de compte admin pour monter la clé comme je veux.
            Mais c'est peut être très con(tradictoire), vu que je suis pret à ne pas avoir de gestion de droits sur le FS de ma clé, mais j'ai du mal avec cette solution, je ne la trouve pas jolie du tout.

  • # Open Invention Network ?

    Posté par (page perso) . Évalué à 7 (+5/-1).

    il allait aussi permettre aux membres de l’Open Invention Network et aux utilisateurs de pouvoir utiliser exFAT gratuitement

    Et si on n'en est pas membre? On le droit de recompiler le kernel ?

    Incubez l'excellence sur https://linuxfr.org/board/

  • # Open source?

    Posté par (page perso) . Évalué à 7 (+6/-0).

    Vu chez développez.com: « Microsoft rend son système de fichiers exFAT open source ». On leur explique?

    Un LUG en Lorraine : https://enunclic-cappel.fr

    • [^] # Re: Open source?

      Posté par . Évalué à 4 (+3/-0).

      Je suis effaré par le niveau de certains articles sur developpez.com
      Le dernier qui m'a bien fait rire : Les dangers de MySQL et MariaDB

      • [^] # Re: Open source?

        Posté par . Évalué à 3 (+1/-0).

        La forme est risible… mais y'a quand même du vrai sur les grosses lacunes de MySQL par rapport aux autres grands SGBDR.
        Après, c'est quand même cocasse de la part d'un DBA SQL Server. Je me demande s'il s'était mis en nolock pendant la rédaction de l'article… (je vois des DBAs de l'autre côté de la boite, je suis bien content avec mes Pg quand je vois leurs échanges)

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.