Корейский разработчик Пак Чжу Хён, специализирующаяся на портировании прошивок Android на различные устройства, представила новую версию драйвера для файловой системы exFAT:exfat-линукс, который является ответвлением драйвера sdFAT, разработанного Samsung.
В настоящее время, Драйвер exFAT от Samsung уже добавлен во временную ветку ядра из Linux, но он основан на кодовой базе ветки контроллера выше (1.2.9). В настоящее время Samsung использует в своих смартфонах совершенно другую версию драйвера «sdFAT» (2.2.0), одним из которых была разработка Пак Джу Хёна.
Помимо перехода на текущую кодовую базу, предлагаемый драйвер exfat-linux отличается удалением специфичных для Samsung модификаций, например наличие кода для работы с FAT12 / 16/32 (данные ФС в Linux поддерживаются отдельными драйверами) и встроенного дефрагментатора.
Удаление этих компонентов позволило нам сделать контроллер портативным и адаптировать его для обычного ядра Linux, а не только для ядер, используемых в прошивке Samsung Android.
Я только что понял, что эти промежуточные драйверы exfat основаны на драйверах exFAT 1.x от Samsung.
Я работал над тем, чтобы новый драйвер Samsung (теперь называемый «sdFAT») лучше подходил для обычных пользователей Linux, и я думаю, что он может обеспечить лучшую основу для работы сообщества (и, надеюсь, он лучше соответствует кодированию основной строки. ) стандарт).
В будущем, планируется держать драйвер в актуальном состоянии, перенос изменений из основной кодовой базы Samsung и перенос ее на новые версии ядра.
В настоящее время, драйвер протестирован при компиляции с ядрами начиная с 3.4 и заканчивая 5.3-rc на платформах x86 (i386), x86_64 (amd64), ARM32 (AArch32) и ARM64 (AArch64).
Автор новой версии драйвера предложил разработчикам ядра рассмотреть возможность включения нового драйвера во временную ветвь в качестве основы для обычного драйвера ядра exFAT, а не для недавно добавленной устаревшей версии.
Проведенные тесты производительности показали увеличение скорости операции записи при использовании нового драйвера.
При размещении раздела на RAM-диске: 2173 МБ / с против 1961 МБ / с для последовательного ввода / вывода, 2222 МБ / с против 2160 МБ / с при произвольном доступе и при размещении раздела в NVMe: 1832 МБ / с против 1678 МБ 1885 МБ / с против 1827 МБ / с.
Скорость чтения увеличилась в тесте последовательного чтения на ramdisk (7042 МБ / с против 6849 МБ / с) и случайного чтения на NVMe (26 МБ / с против 24 МБ / с).
Я призываю основных разработчиков изучить эту базу драйверов и посмотреть, стоит ли ее менять, поскольку это первые дни разработки exfat.
Скорее всего, вы можете сразу начать использовать exFAT, перейдя по ссылке выше. Он был протестирован на всех основных ядрах LTS в диапазоне от 3.4 до 4.19, а также на тех, которые Canonical использует для Ubuntu.
Разработчик также поработал над упрощением установки драйверов. Пользователи Ubuntu могут установить его из репозитория PPA, а для остальных дистрибутивов вам просто нужно будет загрузить код и скомпилировать его.
Вы также можете собрать контроллер с ядром Linux, например, при подготовке прошивки для Android.
Как установить драйвер exfat-linux?
Те, кто заинтересован в возможности установить этот драйвер в своих системах, могут сделать это, следуя инструкциям, которые мы приводим ниже.
Как уже упоминалось, есть PPA для пользователей Ubuntu и его производных. Чтобы добавить этот репозиторий просто откройте терминал (можно сделать это комбинацией клавиш Ctrl + Alt + T) и в нем мы наберем:
sudo add-apt-repository ppa:arter97/exfat-linux -y sudo apt update
Теперь, чтобы установить драйвер, просто введите:
sudo apt install exfat-dkms
Тем, кто предпочитает компилировать код, достаточно ввести в терминал следующее:
git clone https://github.com/arter97/exfat-linux cd exfat-linux make sudo make install
Наконец, чтобы проверить, что контроллер работает, мы просто набираем:
sudo modprobe exfat