ROS File Systems

Материал из Русский WINE
Перейти к: навигация, поиск

Файловые системы в 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.

Первую крупную попытку добавления NTFS в ReactOS сделал Пьер Швейцер (Pierre Schweitzer). При этом, NTFS-3G ему не очень пригодился, из-за довольно значительных различий в архитектурах IFS-драйвера режима ядра и драйвера пользовательского режима. [1]

На 2 ноября 2014 реализована поддержка чтения NTFS.

22 марта 2016 года в баг-трекере ReactOS был опубликован патч CORE-10998 начальной реализации записи NTFS (см. подробнее отчет).

Летом 2016 года, в рамках GSoC, была реализована перезапись существующих файлов.

Летом 2017 года, в рамках GSoC, планировалась реализация создания и удаления файлов.[2] Однако, была реализована только поддержка создания.[3]

10 декабря 2017 Thomas Faber добавил наработки GSoC в транк.

На конец августа 2017 года:

  • поддержка записи по-умолчанию отключена (для предотвращения потери данных, включается через реестр)
  • добавлена поддержка создания файлов и папок
  • Windows видит все файлы и папки, созданные в ReactOS. Протестировано до 700 файлов (текущий предел тестера)
  • все файлы, созданные в ReactOS, имеют правильное содержимое при чтении в Windows.
  • chkdsk не сообщает о каких-либо проблемах после создания файлов и папок в ReactOS
  • выявлены и исправлены многочисленные ошибки

Что планируется еще сделать:

  • удаление и переименование файлов и каталогов
  • кэширование
  • поддержка файла подкачки
  • поддержка асинхронного I/O
  • поддержка отображения файла в память

Нереализованные возможности, необходимые для загрузки:

  • добавление поддержки форматирования
  • обновление инсталлятора для использования NTFS
  • создание загрузчика для NTFS и использование/исправление поддержки NTFS в freeldr
  • ? что-то еще

Не до конца реализованные функции:

  • редкие файлы
  • именованные потоки
  • файловые записи, которые имеют или требуют атрибут $ ATTRIBUTE_LIST

Не поддерживаемые функции:

  • поддержка дисков и файлов с более чем с 2^32 кластерами
  • сжатие файлов
  • шифрование файлов
  • логирование[4]

Ext/2

Second Extended File System (дословно: «вторая расширенная файловая система»), сокращённо ext2 (иногда ext2fs) — файловая система ядра Linux. Была представлена в апреле 1992 года, в качестве замены для расширенной файловой системы (Ext). Т.к. Microsoft не предоставляет поддержку Ext/2, драйвер будет реализован сторонним разработчиком.

Статус

Уже реализована возможность форматирования раздела в ext2, на первой стадии установки, но, начиная с ревизии r62766, отключена. Сам драйвер ext2 достаточно развит и может быть использован. Тем не менее, инфраструктура поддержки ФС (в частности, менеджер кэша) нуждается в дальнейшем развитии, прежде чем ext2 можно будет использовать.

Переписывание

28 сентября 2015 года было решено переписать драйвер ext/2 с использованием драйвера ext2fsd.

  • 12 октября в ревизии 897634c (r69509) драйвер был добавлен в транк.

Если у вас при загрузке livecd или RAM-образа из-за ext2 драйвера не загружается система (CORE-10402) измените iso образ, удалив файл reactos\system32\drivers\ext2fs.sys.

  • CORE-14235 - Установка ReactOS на Ext2

BtrFs

BtrFs — свободная файловая система, разрабатываемая при поддержке компании Oracle, основанная на структурах B-деревьев. Распространяется по лицензии GPL. Одной из первоначальных целей разработки данной файловой системы было обеспечение достойной конкуренции популярной ZFS. Btrfs будет избавлена от многих недостатков, присущих другим современным файловым системам для Linux.

В 2016 году на github-е Mark Harmstone опубликовал драйвер BtrFs для Windows. На основе опубликованного кода разработчики системы добавили поддержку данной файловой системы в ReactOS.

В 2018 году, в рамках GSoC, планируется реализация загрузки с BtrFs.

UDF

UDF — (Universal Disk Format) формат записи CD-RW, который позволяет «отформатировать» диск и работать с ним как с обычной большой дискетой, позволяющей чтение/запись/удаление/изменение данных. Объём таких UDF-форматированных дисков равен примерно 530 Мбайт, в отличие от обычных 700 Мбайт при записи одной сессией на весь диск.

В ReactOS планировалось добавить поддержку UDF. На 17 июня 2015 года были исправлены проблемы, возникающие при сборке драйвера, однако он не работает. [5]

4 июня 2017 года была добавлена поддержка чтения UDF.

Отчеты:

  • CORE-4375 — ReactOS не поддерживает UDF
  • CORE-9816 — ReactOS не загружается с UDF-драйвером

NFS

  • NFS (Network File System) — протокол сетевого доступа к файловым системам. Позволяет подключать (монтировать) удалённые файловые системы через сеть. Возможно будет поддерживается в будущем, в настоящее время отсутствует. В 2012 году был опубликован open source драйвер файловой системы NFS 4.1, который, в апреле 2017 года был использован Пьером Швейцером для реализации поддержки NFS в ReactOS.
    • Кроме NFS Пьер пишет поддержку RDBSS [6]

[WIP]

ISO

03.12.2017 Pierre Schweitzer добавил драйвер ISO-образов VCDROM.

Для его использования можно воспользоваться уже встроенной консольной утилитой vcdcli. В качестве GUI можно воспользоваться Virtual CD-ROM Control Panel.

Использование vcdcli

vcdcli - утилита командной строки, для монтирования дисков.

  • список устройств
vcdcli list
  • список подключенных устройств
vcdcli list /a
  • создание виртуального привода
vcdcli create
  • монтирование образа
vcdcli mount z c:\image.iso
  • извлечение образа
vcdcli eject z
  • переподключение образа
vcdcli remount z

VFD

VFD - Virtual Floppy Drive - драйвер виртуальных дискет. Был реализован 23-дек-2017 в rfc92142.

Другие файловые системы

  • Согласно реестру Windows NT почти все части сетевых служб, исполняющихся в режиме ядра, являются драйверами файловых систем, а именно:
    • MSFS — файловая система почтовых ящиков
    • NPFS — файловая система именованных каналов. Впервые введена ​​в 0.0.18. Это дало возможность полного чтения/записи именованных каналов в ReactOS 0.0.19
  • Файловые системы компакт-дисков
    • CDFS (ISO-9660)
  • MUP — Multiple UNC Provider (Многосетевой UNC) — драйвер, определяющий, к какой сети следует обратиться, когда приложение использует стандартный Win32 API ввода/вывода для открытия удаленных файлов (Mup.sys)
  • SMBFS — файловая система для использования Samba (доступ к разделяемым ресурсам Windows)
  • XFS — высокопроизводительная журналируемая файловая система, созданная компанией Silicon Graphics. Отличается от других файловых систем тем, что она изначально была рассчитана для использования на дисках большого объёма (более 2 терабайт). Выпущена под GPL. (CORE-11038)

Итог

  • В настоящее время ReactOS поддерживает файловые системы FAT(12/16/32), NTFS (только чтение), Ext2, BtrFs, ReiserFS, UFS, CDFS, UDF, NFS, ISO, NPFS, и MSFS.
  • Когда-нибудь, когда ядро ReactOS cможет с этим справиться, появится возможность использования драйвера NTFS из Windows, но ReactOS никогда не будет рекомендовать это по различным правовым причинам.
  • Наиболее приоритетными файловыми системами, на данный момент, являются FAT, NTFS и Ext2/Ext3.

См. так же

ReactOS
Search.png
Доклады
О ReactOSARWINSSЧеЗа
Информация Новости Выпуски новостейПереводы блоговНовости проектаВидеоReactOS на ХабреUSB от Вадима Галянта
Разработка Руководство по программированиюОтсутствующая функциональностьВетви разработкиКомпоненты системыReactOS и WineПлан работRoadmap ядра by VgalРазработчикиСовместимость с dll WindowsНаиболее значимые изменения за годИспользуемые проектыGoogle Summer of CodeИзвестные проблемы
Порты AMD64ARMXboxPowerPC
Компоненты Файловые системыРежим совместимостиОтчеты об ошибкахПечатьUSBЯдро
Загрузчик Восстановление MBRЗагрузка из GRUBПараметры загрузки
Прочее ARWINSSПриложения в ReactOSОформление ReactOSКоординаторы"Пасхальные яйца"Монетизация
Другое Типы ядерFreeWin95
Помощь
RAM-диск ReactOS по PXEс жесткого диска
Разработка Стиль написания кодаСтандарты RC-файловРабота с документациейВенгерская нотацияGNU Indent • [ Subversion : ветвислияниеиспользование TortoiseSVN ] • Основы переводаОтправка патчей
Репорты Отладка в VirtualBoxОтладка на экранДобавление программы в менеджер приложенийОтправка отчетов
Отладка Com0comGDBKdbgRossym.gdbRoswin.gdbWinDBGРуководство по WinDBGВключение трассировки ядраКоды DPRINTУдалённый отладчик ReactOS
Сборка CMakeRBuildФайлы RBuildАвтоматическое копирование файловСборка MINGW-w64Сборка модулейСреда сборки
Тестирование VirtualBoxVMwareQEMUHyper-VНеобходимый объём дискаПеренос файлов на виртуальный дискУстановка ReactOSУстановка драйверов
Сеть Общие папкиSambaNFS
Игры Установка DirectPlay
Обновление ReactOSЗагрузочная флешкаЧем можно помочь проектуСоздание нового пользователяЗвук и сеть в VirtualBoxСъемка и публикация видеоIRC-каналСторонние компонентыFAQReactOS как рабочая станцияReactOS и UEFI
Обзоры ОболочкаNTVDMWOWCommunity EditionИстория сайтаReactOS ServerКриптографияПО времен XP