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]

Ext/2

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

Статус

Уже реализована возможность форматирования раздела в ext2, на первой стадии установки, но, начиная с ревизии r62766, отключена. Сам драйвер 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. Позже, в rr71412-71417 была добавлена полная поддержка данной файловой системы.

UFS

UFS (Unix File System) — файловая система, созданная для операционных систем семейства BSD и используемая в переработанном и дополненном виде на данный момент как основная в операционных системах-потомках (FreeBSD, OpenBSD, NetBSD).

25 мая 2016 года в ревизиях rr7142371430 в ReactOS был добавлен FFS-драйвер, позволяющий системе получить доступ к UFS-разделам.

UDF

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

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

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 [4]

[WIP]

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

  • Согласно реестру 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, 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