Приведенные Юэ Чжаном Мо данные свидетельствуют о том, что выигрыш в производительности на практике может оказаться многократным. Так, в проведенном им тесте удаление файла размером 80 ГБ с использованием исходной версии драйвера exFAT занимало почти пять минут, а после оптимизации кода этот показатель упал до менее чем двух секунд.
Другой полезный коммит
Правки к драйверу exFAT, предложенные Юэ Чжаном Мо, приняты в ядро Linux не в первый раз. В декабре 2022 г. в состав Linux 6.2 была включена оптимизированная программистом Sony версия соответствующего драйвера, в которой был сокращен повторный обход записей каталога в файловой системе, что позволило добиться повышения производительности exFAT – за счет снижения нагрузки на центральный процессор.
Благодаря набору исправления Юэ Чажана Мо существенно возросла скорость создания файлов и каталогов, в особенности при использовании «слабых» процессоров. В тестах, проведенных разработчиком на платформе NPX i.MX6 с MicroSD-картой четвертого класса, прирост составил от 14,40% до 57,42%, в зависимости от количества создаваемых файлов.
Что такое exFAT и зачем она нужна
exFAT (Extended FAT, «расширенная FAT») – проприетарная файловая система, разработанная Microsoft и предназначенная для SD-карт и USB-накопителей. Максимальный теоретический размер файла в ней по сравнению с предшественницей – FAT32 – был расширен с 4 ГБ до 16 ЭБ (эксабайт). Кроме того, было устранено ограничение на максимальный размер раздела в 32 ГБ.
Впервые exFAT была представлена в ОС Windows Embedded CE 6.0 для встраиваемых устройств, а позднее заработала в настольных версиях Windows (Vista SP 1 и XP SP2).
В 2009 г. Microsoft начала лицензировать exFAT для сторонних компаний. Производители потребительской электроники в зависимости от типа выпускаемого устройства должны были либо выплатить корпорации разовый взнос в размере $300 тыс., либо выплачивать отчисления с каждого проданного устройства, использующего данную файловую систему. Среди компаний, лицензировавших exFAT: Canon, Sandisk, Samsung, Sony, Sanyo и Sharp и многие другие (всего более сотни).
Полноценная официальная поддержка exFAT в Linux на тот момент не могла быть реализована ввиду проприетарного характера файловой системы. Поэтому пользователям приходилось загружать сторонние драйверы, чтобы иметь возможность подключать флеш-накопители большой емкости к своим ПК.
Драйвер exFAT для Linux существовал в виде патча ядра, однако он обеспечивал поддержку файловой системы исключительно в режиме чтения. Помимо этого, существовала реализация драйвера для подсистемы FUSE (позволяет монтировать файловые системы непривилегированным пользователям).
В августе 2013 г. собственную реализацию драйвера под свободной лицензией GPL опубликовала компания Samsung, однако ее код не был включен в состав ядра Linux в связи с опасениями относительно возможных патентных претензий со стороны Microsoft.
В августе 2019 г. Microsoft опубликовала спецификации на файловую систему exFAT на своем официальном сайте и пообещала поспособствовать добавлению соответствующего драйвера в ядро Linux.
После этого в ноябре 2019 г. в Linux 5.4 появилась начальная поддержка exFAT, а в Linux 5.7, который вышел весной 2020 г., она стала полноценной.
Источник
Комментарии 7
Это - что ни на есть - экслкюзивная осоенность нового ядра Linux, которые, к слову, выходят с завидной периодичностью.
Так к чему таки павсные названия и преамбулы?
Зачем вводить человеков в заблуждение?
Пиар?
А по концу - всё так же.
Видимо всё остальное - также, ... к сожалению.
И да, в Лине копирование на флэхи и т.п. - тот ещё квест.
Ну, что есть, то есть.
...
Я всё-таки рекомендую поиграться с кэшем (в файле /etc/sysctl.conf):
#изменить_строки:
vm.dirty_bytes = 2097152
vm.dirty_background_bytes = 2097152
#или
vm.dirty_bytes = 4194304
vm.dirty_background_bytes = 4194304
#остальное_закоментить.
Моя любимая прога.
У меня на на вентоевской флэхе лежит 20 исошников.