След като повече от две години разработка, версиите на проекта WinBtrfs 1.10, който развива драйвера за използване на файловата система Btrfs на платформата Windows, са публикувани. WinBtrfs не е основан на кода на Btrfs от ядрото на Linux, а е напълно нова алтернативна реализация. Поддържа работа с Windows XP и нови версии. Драйверът е включен в операционната система ReactOS и може да се използва за стартиране на Windows от раздел с Btrfs. Кодът е написан на C/C++ и се разпространява под лиценз LGPLv3.
WinBtrfs поддържа повечето функции на Linux версията на Btrfs, включително асинхронно четене и запис, използване на RAID0/1/10/5/6, кеширане, автоматично откриване на раздели, ACL, символични връзки, подкатегории, моментни снимки, твърди връзки, разредени файлове, предварително разпределение на пространство, компресия, балансировка, проверка на целостта на данните, добавяне и премахване на устройства, изпращане и получаване на подкатегории, промяна на размера на раздела, разширени контроли (xhash, sha256, blake2). Сред специфичните функции на драйвера е реализирането на алтернативни потокове данни и съпоставянето на идентификатори на потребители от Linux и Windows. Възможна е конверсия на съществуващи NTFS раздели в Btrfs.
Сред измененията в новата версия:
- Добавена е поддръжка за запис на битови карти с информация за свободното пространство.
- Реализирана е възможността за запазване на малки файлове в блокове с метаданни (inline) в компресирано състояние.
- Подобрена е работата с външни устройства. Поддръжката за създаване на RAID масиви на външни устройства е прекратена.
- Повишена е надеждността на възстановяване след грешки, причинени от недостига на оперативна памет (OOM) или изчерпване на свободното пространство на носителя (ENOSPC).
- Отстранени са авариите, които възникваха при преместване на файлове между подкатегории и при едновременна създаване на голям брой файлове.
- Отстранена е грешка, която водеше до повреждане на дървото на екстентите при запис на моментни снимки.
- Коригирана е взаимната блокировка при работа с твърди връзки.
- Извършен е рефакторинг на вътрешните структури и константи, за да се приближат до вариантите, използвани в Linux.
- При рецензирането на промените и анализа на грешки е използван AI асистентът Claude, но кодът както преди се създава изцяло ръчно.
Източник: opennet.ru
