загрузка...

Публикация в сообществе "Интересные новости"

c366c76c8f3bee0fbeae8f4fc4799e5a.jpgВ драйвер файловой системы exFAT для операционных систем семейства Linux внесены правки, позволившие значительно повысить скорость удаление данных с разделов накопителя, которые размечены с ее использованием.

Патч к драйверу подготовлен сотрудником Sony Юэ Чжан Мо (Yuezhang Mo) и уже принят в основную ветку разрабатываемой версии ядра Linux 6. 15, релиз которого ожидается в конце мая – начале июня 2025 г.

Наиболее серьезный прирост производительности благодаря патчу будет заметен в работе с файлами большого размера – в несколько десятков гигабайт и более. При этом раздел с exFAT должен быть примонтирован с параметром “discard”.

Применение параметра монтирования “discard” сообщает Linux о том, что ему следует допускать выполнение команды “trim” по запросу файловой системы. Эта команда, в свою очередь, позволяет принудительно очистить ячейки памяти накопителя, которые ранее были отведены под теперь уже удаленные данные, а не только исключить ссылки на них в таблице размещения файлов, как это делается обычно.

Ранее актуальный драйвер exFAT для Linux отправлял запросы “discard” накопителям на каждый подлежащий освобождению кластер стираемого с накопителя файла, что могло приводить к снижению скорости выполнения операции удаления и временному повышению времени отклика на команды пользователя. Набор изменений, принятых в Linux 6. 15, заставляет обрабатывать кластеры группами, что благоприятно сказывается на производительности работы файловой системы.

Приведенные Юэ Чжаном Мо данные свидетельствуют о том, что выигрыш в производительности на практике может оказаться многократным. Так, в проведенном им тесте удаление файла размером 80 ГБ с использованием исходной версии драйвера exFAT занимало почти пять минут, а после оптимизации кода этот показатель упал до менее чем двух секунд.

Правки к драйверу exFAT, предложенные Юэ Чжаном Мо, приняты в ядро Linux не в первый раз. В декабре 2022 г. в состав Linux 6. 2 была включена оптимизированная программистом Sony версия соответствующего драйвера, в которой был сокращен повторный обход записей каталога в файловой системе, что позволило добиться повышения производительности exFAT – за счет снижения нагрузки на центральный процессор.

Благодаря набору исправления Юэ Чажана Мо существенно возросла скорость создания файлов и каталогов, в особенности при использовании «слабых» процессоров. В тестах, проведенных разработчиком на платформе NPX i. MX6 с MicroSD-картой четвертого класса, прирост составил от 14,40% до 57,42%, в зависимости от количества создаваемых файлов.

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 г. , она стала полноценной.

Дмитрий Степанов

https://www.cnews.ru/news/top/2025-04-02_programmist_sony_odnim_patchem

Источник: www.cnews.ru/news/top/2025-04-02_programmist_sony_odnim_patchem

Link