ReactOSFastFAT_new


FastFAT_new — это новая реализация файловой системы FAT для ReactOS, основанная на библиотеке FullFAT. Она заменит старый FAT в ReactOS-е. В скором времени в FullFAT будет реализация журналирования, но это не повлияет на совместимость с обычным FAT-ом. Для примера можно привести ext3, которая отличается от ext2 только журналированием. Эти две файловые системы можно конвертировать между собой без форматирования и потери данных. Активно ведут разработку файловой системы Алексей Брагин (Fireball) и создатель FullFAT — Джеймс Уолмсли.
Недавно библиотека FullFAT была упомянута на форуме ReactOS и затем представлена вниманию разработчиков при помощи канала IRC. Эта платформо-независимая библиотека для доступа к разделам FAT12/16/32 написана Джеймсом Уолмсли (James Walmsley). Существует мнение, что новый драйвер IFS может быть написан с её использованием. Текущий драйвер FAT был создан для использования со старым, менее NT-совместимым ядром и изначально никогда тщательно не проверялся на Windows, что стало причиной многочисленных проблем со стабильностью работы операционной системы, по этой причине подыскивалась альтернатива данному драйверу. Джеймс принял и поддержал идею, но имел лишь небольшой опыт в написании драйверов NT IFS, поэтому Алексей Брагин решил помочь ему с драйвером. Потребовалось приблизительно два дня, чтобы получить опытный образец, способный смонтировать том и прочесть оттуда файлы.

В то время, как библиотека FULLFAT обеспечивает необходимые функции доступа к файлу, все функции учёта должны быть произведены драйвером. Одна из них включает в себя информационные запросы о файлах, такие, например, как длина файла. Другой функцией может быть захват файлов. Алексей в настоящее время реализует и тестирует их на Windows 2003, а не на ReactOS. Мы надеемся, что когда драйвер будет закончен, то он сможет послужить источником открытого кода для будущих изысканий в написании драйверов NT IFS для обеспечения ReactOS стабильной файловой системой FAT.

FullFAT — это высокопроизводительная и потоко-безопасная реализация файловой системы FAT (поддерживающая FAT12/16 и FAT32) для встраиваемых устройств. Также можно включить опциональную поддержку длинных имен файлов при помощи настроек компиляции. FullFAT очень хорошо оптимизирован, и может быть использован даже на устройствах с малым количеством оперативной памяти.

К сожалению FastFAT_new не будет готов к выходу ReactOS 0.3.11, так как не реализован необходимый функционал. Поэтому следует ожидать его в 0.4.

Интерестные ссылки:
Письмо Джеймса Уолмсли
Тема обсуждения FastFAT_new
Исходные коды FastFAT_new
Файловая система (википедия)
  • +9
  • eReS
  • 01 ноября 2009, 21:29

Комментарии (29)

FullFAT — это высокопроизводительная и поктоко-безопасная

судя по всему, «потоко-безопасная»
длинных имен файловов при помощи

«файлов»
Будьте любезны, поправьте опечатки.

Такие вещи лучше в личку. Или используйте кнопку Дополнить.
Учту, спасибо.
спасибо, поправил :)
Своя собсвеннаяфайловаясистема FastFAT_new — это, конечно, хорошо. Но всё-таки я, как пльзователь, жду в первую очередь совмести с сущесуществующими файловыми системами и драйверами.
Чую, проекту нужна более твёрдая организация, иначе так и будет лет через много версия 0.3.127
жду в первую очередь совмести с сущесуществующими файловыми системами
А FAT32 разве несуществующая файловая система? :-)
Чую, проекту нужна более твёрдая организация
А что не так с организацией? Приходят новые разработчики, исправляются ошибки, добовляется новый функционал, релизы раз в несколько месяцев, дружный коллектив, открытый процесс разработки. По моему, проект может служить блестящим примером организации OpenSource-разработки.
Перефразирую.
В первую очередь мне, как пользователю, нужна поддержка прочих существующих фс (в частности, NTFS), а не расширение функционала того, что уже и так работает. Вот когда будет хотя бы бета-версия, тогда и можно браться за добавление своего.
А с организацией — я, конечно, не в курсе отношений внутри сообщества разработчиков, но… Планы обычно пишут для того, чтобы их перегонять, а не отставать от них.
fog, да я добрый, я же хочу когда-нибудь этой системой пользоваться.
Кстати, www.reactos.org/ru/about_roadmap.html у меня ошибка 404
существующих фс (в частности, NTFS), а не расширение функционала того, что уже и так работает
Нормальная поддержка NTFS не может быть обеспечена. Причина — отсутствие спецификаций. Я лучше буду использовать FAT32, чем использовать NTFS и знать, что могу в любую секунду потерять все мои данные.

То, как сейчас ROS работает с FAT можно назвать «работой» с большой натяжкой. Драйвер был написан давно, с того времени очень много в ядре переписали и драйвер FAT нужно тоже переписывать. Поэтому FullFAT — это не расширение функционала, а замена «кривого велосипеда» на уже существущий открытый проект.
я же хочу когда-нибудь этой системой пользоваться.
А сколько ты патчей отослал? Нисколько? Вот и не гунди тогда на тех, кто хотя бы что-то делает.
Могу, конечно, понять такое отношение с эмоциональной точки зрения, вполне аргументировано. И всё-таки «не гунди» — грубовато. Потому как это то единственное, чем я могу помочь. Высказываться, критиковать и привлекать внимание.
дык, как там было:«Shut up and hack!»
Я не хотел грубить. :-) Извини. Просто считаю, что критика немного необъективна, поэтому такой жесткий ответ.
Поверь, ты не только этим можешь помочь ;)
Почитай вот это, либо напиши fogу в личку. Тем больше людей в команде — тем скорее выйдет 0.5.0, и тем скорее мы все сможем ней пользоваться :)
Что же в гну/линуксе то ntfs работает на ура без всяких на то спецификаций?
В винду практически не захожу, работаю исключительно под линуксом с несколькими терабайтами данных на ntfs и проблем никаких не имею, зато вот системный раздел на ext3 потерять удалось весьма успешно.
Что же в гну/линуксе то ntfs работает на ура
В линуксе ситуация ничуть не лучше — я сам потерял с NTFS достаточно важные данные при работе из под линукса. Код работы ROS с NTFS будет взят из NTFS-3G (для этого нужно кое-что дописать в ядре ROS) и я хочу напомнить, что этот драйвер был объявлен полностью стабильным меньше года назад (что не обозначает, что его разработчики гарантируют сохранность всей информации).

Кроме того, разработчики ROS коммитили код в проект Captive NTFS, так что обвинять их в бездействии (в плане поддержки NTFS) немного несправедливо.
а почему именно FAT? чем плоха поддержка ext2, насколько я знаю, он не так уж и сложен.

ответ себе же: не хватает программистов…
ext2 не журналируемая FS (позапрошлый век), и для нее уже есть драйвер под винду — он должен заработать и в ROS. Но проблема в том, что пользователи просят совместимость с виндовыми ФС (чтобы из под винды видеть диски ROS), а тут выбор не большой…
Нет, просто ext2(3/4) — это ФС для не-винды. Т.е. под Windows есть только драйвера для доступа (неполноценного, без всякого журналирования) к этой ФС.

FAT тоже нежурналируемая, просто она поддерживается везде (без преувеличения). Поэтому она и взята за основу. NTFS тоже будет поддержана, как сказал фог через библиотеку NTFS-3g. Над этим проектом работает Ged Murphy.
От чего же не для винды? И кто мешает драйвера написать полноценные? Это же не ntfs, спецификации открыты.
Ну начать хотя бы с того, что загрузчик винды не поддерживает такой файловой системы (загрузчик реактоса поддерживает по идее, так что мечту винда-на-екст2 можно осуществить). Практическая значимость сего чуда стремится к нулю.
Так вроде и не про винду речь. Зачем реактос городить какой-то гроб на основе fat32? Или сейчас мода такая, каждой операционке по своей ФС?
Да и потребность работать с другими ФС никуда не исчезала, пусть даже саму систему на них поставить нельзя.
Кстати, умные люди сильно ругаются даже на ext3/4, поэтому не думаю, что изобретение очередного велосипеда принесет что-то хорошее.
Хренасебе. А FAT32 только у нас чтоли применяется?

А то, что ругаются на ext3/4 — да потому, что она такая же тупая, как FAT. Но FAT — поддерживается абсолютно всеми, а ext в данном случае велосипед.
1. FAT поддерживается, ИМХО, только потому, что она принята как стандарт на сменных носителях.
2. В ext проблемы не только в архитектуре, но и в реализации.
3. Вот вы собираетесь накрутить на FAT журналирование, и что из этого выйдет? Загрузится какой-нибудь линукс или та же винда, радостно увидит FAT и поработает с ним на славу, журнал можно выкидывать на помойку. А если вы собираетесь проставить новой ФС новый маркер в таблице разделов, то нафиг она такая нужна кому-то, с таким же успехом можно сконвертировать FAT в любую другую ФС и назад, просто процесс будет немного более сложным (а часто ли пользователи меняют тип ФС, чтобы простота конвертации была так важна?!).
Загрузится какой-нибудь линукс или та же винда, радостно увидит FAT и поработает с ним на славу, журнал можно выкидывать на помойку

Бывает, что ext3 открывают как ext2 и работают с ней так — после этого разве все данные на помойку? Нет, просто отсутствует журналирование.

Вообще, это только предполагаемая экспериментальная фича. Которую просто интересно было бы сделать, и её будет делать Джеймс в качестве научного проекта в универе.
Необязательно же так всё просто и тупо предполагать — естественно обратно совместимо с обычным фатом! Иначе это нафиг ненужно.
Правильно. Отсутствует журналирование, но журнал то физически существует и не факт, что работа с файловой системой была завершена корректно как перед загрузкой ОС не поддерживающей журналирование, так и после ее работы. Конечно, можно проверить, и корректность завершения работы, и валидность журнала, но это долго и не имеет большого смысла.
Причина кроется в фразе «бывает, что ext3 открывают как ext2». Вот именно, что бывает, и очень редко, как правило в целях восстановления данных, и еще реже, когда какому-то очень старому линуксу нужно получить доступ к ext3. Причем пользователь сам знает, что он делает, и его чаще всего предупреждают о последствиях.
В вашем же случае вы продвигаете возможность работы с новым фатом из любых операционок как основную фишку, т.е. это будет происходить регулярно и без всяких предупреждений для пользователя.

P.S. В качестве научного проекта имеет право существовать что угодно, т.к. подавляющее большинство таких проектов не имеет никакого практического смысла. Жаль только затраченных на эти проекты сил, которые можно было направить на что-то более актуальное.
Алексей Брагин отличный организатор! Помню когда он был в отпуске — работа утихла, когда пришел — пошла полным ходом! 10-30 коммитов каздый день, подготовка к 0.3.11, начали писать новую файловую систему, количество поддерживаемых программ значительно увеличилась (смотрите тесты ревизий 43ххх), пришло в команду 2 навых разработчика — Лукас Саггс и Джеймс Уолмсли (и ето только за последний месяц). Даже новая игра будет в 0.3.11 :-D
Дела идут, форум растет! Ты можеш организовать лучше?
какая еще игра?
Кстати, о птичках, FAT который сейчас в Reactos разве не потоко-безопасный?
FAT который есть сейчас — ужасен. Особенно на запись, в реальной винде. Там отсутствует ряд необходимых вещей, добавлять которые мне уже нехочется — удобнее написать хороший новый фреймворк с подключаемыми библиотеками FullFAT и NTFS-3g.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.