ROS File Systems
Файловые системы в ReactOS
Данная статья частично является переводом официальной вики.
Эта страница содержит информацию о файловых системах, которые будут поддерживаться ReactOS.
FAT32
FAT32 — файловая система, разработанная корпорацией Microsoft. Появилась в августе 1996 года, вместе с Windows 95 OSR2. Она проста и легка для понимания по сравнению с другими распространенными файловыми системами. FAT поддерживается различными операционными системами, в т.ч. GNU/Linux, FreeBSD, BeOS, Mac OS X, и FreeDOS. Это делает FAT32 эффективной файловой системой для обмена файлами между операционными системами. Также широко используется на флэш-носителях и внешних жестких дисках.
Статус
ReactOS в настоящее время имеет возможность форматирования и установки на FAT раздел. Драйвер файловой системы в значительной степени выполнен, но содержит много вопросов. В настоящее время он переписывается для использования библиотеки FastFAT.
- с ревизии 63696 доступно полное форматирование HDD при установке ReactOS.
- в ревизии 64836 исправлены все проблемы с переименованием файлов.
Разработка
NTFS
NTFS — еще одна файловая система, разработанная корпорацией Microsoft. Была введена в линейке операционных систем NT, заменив FAT в качестве предпочтительной файловой системы.
Статус
Должна появиться в ReactOS 0.5.0. Поддержка NTFS планируется, но не является приоритетной. Первой целью в этой области, является дать возможность использовать драйвер, включенный в Windows XP, который обеспечивал бы в ReactOS поддержку NTFS.
На текущий момент, Пьер Швейцер (Pierre Schweitzer) пытается добавить в ReactOS поддержку NTFS. Стоит подчеркнуть, что код NTFS-3G в этом деле не особо полезен из-за довольно значительных различий в архитектурах IFS-драйвера режима ядра и драйвера пользовательского режима. [1]
На 2 ноября 2014 реализована поддержка чтения NTFS.
22 марта 2016 года в баг-трекере ReactOS был опубликован патч CORE-10998 начальной реализации записи NTFS (см. подробнее отчет).
Ext/2
Second Extended File System (дословно: «вторая расширенная файловая система»), сокращённо ext2 (иногда ext2fs) — файловая система ядра Linux. Была представлена в апреле 1992 года, в качестве замены для расширенной файловой системы (Ext). Т.к. Microsoft не предоставляет поддержку Ext/2, драйвер будет реализован сторонним разработчиком.
Статус
Уже реализована возможность форматирования раздела в ext2, на первой стадии установки, но в настоящее время отключена. Сам драйвер ext2 достаточно развит и может быть использован. Тем не менее, инфраструктура поддержки ФС (в частности, диспетчер кэша) нуждается в дальнейшем развитии, прежде чем ext2 можно будет использовать.
Переписывание
28 сентября 2015 года было решено переписать драйвер ext/2 с использованием драйвера ext2fsd.
- 12 октября в ревизии 69509 драйвер был добавлен в транк.
Если у вас при загрузке livecd или RAM-образа из-за ext2 драйвера не загружается система (CORE-10402) измените iso образ, удалив файл reactos\system32\drivers\ext2fs.sys.
BtrFs
BtrFs — свободная файловая система, разрабатываемая при поддержке компании Oracle, основанная на структурах B-деревьев. Распространяется по лицензии GPL. Одной из первоначальных целей разработки данной файловой системы было обеспечение достойной конкуренции популярной ZFS. Btrfs будет избавлена от многих недостатков, присущих другим современным файловым системам для Linux.
В 2016 году на github-е Mark Harmstone опубликовал драйвер BtrFs для Windows. На основе опубликованного кода разработчики системы добавили поддержку данной файловой системы в ReactOS.
ReiserFS
ReiserFS — журналируемая файловая система, разработанная специально для Linux компанией Namesys под руководством Ганса Рейзера.
Система поддерживает конфигурируемое блочное перераспределение — возможность упаковки нескольких небольших файлов в один блок во избежание фрагментации и потери дискового пространства. Также реализовано несколько режимов журналирования.
На основе опубликованного кода разработчики добавили поддержку данной файловой системы в ReactOS в ревизии 71057.
UFS
UFS (Unix File System) — файловая система, созданная для операционных систем семейства BSD и используемая в переработанном и дополненном виде на данный момент как основная в операционных системах-потомках (FreeBSD, OpenBSD, NetBSD).
В ReactOS планируется добавить (CORE-11040) FFS-драйвер, который позволит системе получить доступ к UFS-разделам.
UDF
UDF — (Universal Disk Format) формат записи CD-RW, который позволяет «отформатировать» диск и работать с ним как с обычной большой дискетой, позволяющей чтение/запись/удаление/изменение данных. Объём таких UDF-форматированных дисков равен примерно 530 Мбайт, в отличие от обычных 700 Мбайт при записи одной сессией на весь диск.
В ReactOS планировалось добавить поддержку UDF. На 17 июня 2015 года были исправлены проблемы, возникающие при сборке драйвера, однако он не работает. [2]
Отчеты:
Другие файловые системы
- Согласно реестру Windows NT почти все части сетевых служб, исполняющихся в режиме ядра, являются драйверами файловых систем, а именно:
- MSFS — файловая система почтовых ящиков
- NPFS — файловая система именованных каналов. Впервые введена в 0.0.18. Это дало возможность полного чтения/записи именованных каналов в ReactOS 0.0.19
- Файловые системы компакт-дисков
- CDFS (ISO-9660)
- NFS (Network File System) — протокол сетевого доступа к файловым системам. Позволяет подключать (монтировать) удалённые файловые системы через сеть. Возможно будет поддерживается в будущем, в настоящее время отсутствует.
- MUP
- SMBFS — файловая система для использования Samba (доступ к разделяемым ресурсам Windows)
- XFS — высокопроизводительная журналируемая файловая система, созданная компанией Silicon Graphics. Отличается от других файловых систем тем, что она изначально была рассчитана для использования на дисках большого объёма (более 2 терабайт). Выпущена под GPL.
Итог
- В настоящее время ReactOS поддерживает файловые системы FAT(12/16/32), NTFS (только чтение), BtrFs, ReiserFS, CDFS, NPFS, и MSFS.
- Когда-нибудь, когда ядро ReactOS cможет с этим справиться, появится возможность использования драйвера NTFS из Windows, но ReactOS никогда не будет рекомендовать это по различным правовым причинам.
- Когда-нибудь будут поддерживаться другие, менее распространенные файловые системы. Сейчас у проекта нет свободных разработчиков, чтобы написать драйвера на 20 файловых систем.
- Наиболее приоритетными файловыми системами, на данный момент, являются FAT, NTFS и Ext2/Ext3.