Форк (файловая система)
В компьютерной файловой системе ветвь — это набор данных, связанных с объектом файловой системы. Файловые системы без разветвлений допускают только один набор данных для содержимого, тогда как файловые системы с разветвлениями допускают несколько таких содержимых. Каждый непустой файл должен иметь хотя бы одно ответвление, часто типа по умолчанию, и в зависимости от файловой системы файл может иметь одно или несколько других связанных ответвлений, которые, в свою очередь, могут содержать первичные данные, неотъемлемые от файла, или просто метаданные. .
В отличие от расширенных атрибутов , аналогичной функции файловой системы, которая обычно имеет фиксированный размер, ветки могут иметь переменный размер, возможно, даже больше, чем ветка основных данных файла. Размер файла — это сумма размеров каждой вилки.
Популярные файловые системы, которые могут использовать вилки, включают HFS+ от Microsoft от Apple и NTFS .
Альтернативы
[ редактировать ]В файловых системах без разветвлений вместо этого можно использовать несколько отдельных файлов, связанных друг с другом, особенно дополнительные файлы для метаданных. Однако соединение между этими файлами не сохраняется автоматически файловой системой и вместо этого должно обрабатываться каждой программой, работающей с файлами. Другой альтернативой является файл-контейнер , который хранит дополнительные данные в заданном формате файла, или файл-архив , который позволяет хранить несколько файлов и метаданных внутри файла (в пределах одного форка). Для этого необходимо, чтобы программы обрабатывали файл-контейнер или файл архива, а не развилки обработки файловой системы. Эти альтернативы требуют дополнительной работы программ, использующих данные, но выигрывают от переносимости на файловые системы, которые не поддерживают ответвления.
Реализации
[ редактировать ]Яблоко
[ редактировать ]Разветвления файловой системы связаны с Apple иерархической файловой системой (HFS). [1] HFS и исходная Apple Macintosh файловая система MFS позволяли объекту файловой системы иметь два типа ответвлений: ответвление данных и ответвление ресурсов .
Вилка ресурса была разработана для хранения некомпилированных данных, которые будут использоваться графическим пользовательским интерфейсом системы (GUI), таких как локализуемые текстовые строки, значок файла, который будет использоваться Finder, или меню и диалоговые окна, связанные с приложением. . [2] Однако эта функция была очень гибкой, поэтому были найдены дополнительные варианты использования, такие как разделение документа текстового редактора на содержание и представление с последующим сохранением каждой части в отдельных ресурсах. Поскольку скомпилированный код программного обеспечения также хранился в ресурсе, часто приложения состояли только из ответвления ресурса и без ответвления данных.
Одна из наиболее малоизвестных особенностей HFS+ заключается в том, что файл может иметь произвольное количество пользовательских «именованных ветвей» в дополнение к традиционным вилкам данных и ресурсов. Эта функция практически не использовалась, поскольку Apple никогда не добавляла ее поддержку в OS 8.1–10.3.9 Mac . Начиная с версии 10.4 Apple , была сделана частичная реализация для поддержки расширенных встроенных атрибутов . [3]
В Mac OS X до Mac OS X v10.4 пользователи, запускающие утилиты командной строки Unix, такие как tar, рискуют потерять данные, поскольку утилиты не были обновлены для обработки разветвлений ресурсов файлов. [4]
Новелл
[ редактировать ]Начиная с 1985 года, файловая система Novell NetWare (NWFS) и ее преемница Novell Storage Services (NSS) были разработаны с нуля для использования различных методов хранения метаданных файла. Некоторые метаданные находятся в службах каталогов Novell (NDS), некоторые хранятся в структуре каталогов на диске, а некоторые хранятся, как это называет Novell, в «множественных потоках данных» вместе с самим файлом. Несколько потоков данных также позволяют клиентам Macintosh подключаться к серверам NetWare и использовать их .
Майкрософт
[ редактировать ]NTFS , файловая система, представленная в Windows NT 3.1 , поддерживает ответвления файловой системы, известные как альтернативные потоки данных (ADS). [5] ReFS , новая файловая система, представленная в Windows Server 2012 , изначально не поддерживала ADS. [6] [7] [8] но в 64-разрядной версии Windows 8.1 и Server 2012 R2 в ReFS была добавлена поддержка ADS длиной до 128 КБ. [9]
Изначально ADS предназначалась для добавления совместимости с существующими операционными системами, поддерживающими форки. [ нужна ссылка ] Компьютерной программе можно указать открыть ADS, указав имя ADS после знака двоеточия (:) после пути к файлу. [10] Несмотря на поддержку, большинство программ, включая Проводник Windows и команду dir (до Windows Vista), игнорируют ADS. Проводник Windows копирует ADS и предупреждает, когда целевая файловая система их не поддерживает, а только вычисляет размер основного потока и не выводит список потоков файлов или папок. Начиная с Windows Vista , dir
команда поддерживает показ ADS. [11] Windows PowerShell v3.0 и более поздних версий поддерживает управление ADS. [12]
Использование
[ редактировать ]Windows 2000 использует ADS для хранения миниатюр в файлах изображений и для хранения сводной информации (например, названия и автора) в любом файле без изменения основного потока. [13] [14] В Windows XP Microsoft осознала, что ADS может быть потерян при перемещении содержащих их файлов с томов NTFS; таким образом, Windows XP сохраняет их в основном потоке всякий раз, когда формат файла поддерживает это. [13] Windows Vista вообще прекратила поддержку добавления сводной информации, поскольку Microsoft решила, что они слишком конфиденциальны для обработки ADS. [15] Но использование ADS в других целях не прекратилось. В пакете обновления 2 для Windows XP появилась служба выполнения вложений, которая хранит сведения о происхождении загруженных файлов в идентификаторе зоны ADS , чтобы защитить пользователей от загруженных файлов, которые могут представлять риск. [16] Internet Explorer и Windows 8 расширили эту функцию посредством SmartScreen . [17] Internet Explorer также использует ADS для хранения значков в ярлыков Интернета . файлах [10]
Солнце
[ редактировать ]Solaris версии 9 и более поздних версий позволяет файлам иметь ответвления. В Solaris ответвления называются расширенными атрибутами , хотя они не входят в обычное значение термина « расширенный атрибут ». Максимальный размер расширенного атрибута типа Solaris такой же, как максимальный размер файла, и они читаются и записываются так же, как файлы. Внутри они фактически хранятся и доступны как обычные файлы, поэтому их право собственности и разрешения могут отличаться от прав родительского файла. Подкаталоги административно [ нужны разъяснения ] отключены, поэтому их имена не могут содержать символы «/».
Расширенные атрибуты в сетевой файловой системе версии 4 аналогичны расширенным атрибутам в стиле Solaris.
Возможные риски безопасности и потери данных
[ редактировать ]Если файловая система поддерживает различные разветвления, приложения должны знать о них, иначе могут возникнуть угрозы безопасности. Разрешение устаревшему программному обеспечению доступа к данным без соответствующих прокладок является основной причиной таких проблем. [ нужна ссылка ]
Если различные системные утилиты (проводник дисков, антивирусное программное обеспечение, архиваторы и т. д.) не знают о различных разветвлениях, могут возникнуть следующие проблемы:
- Пользователь никогда не узнает ни о наличии альтернативного ответвления, ни об общем размере файла, а только об основном ответвлении данных.
- Компьютерные вирусы могут скрываться в альтернативных ветвях Windows и никогда не быть обнаруженными, если антивирусное программное обеспечение не знает о ветвлениях.
- Данные могут быть потеряны при отправке файлов по каналам, не поддерживающим форки, например, по электронной почте , через файловые системы без поддержки форков или даже при копировании файлов между файловыми системами с поддержкой форков, если программа, создавшая копию, не поддерживает форки или когда сжатие файлов с помощью программного обеспечения, не поддерживающего форки.
Ссылки
[ редактировать ]- ^ Яблоко (2 июля 1996 г.). «Файловые развилки» . Яблоко. Архивировано из оригинала 24 июля 2008 г. Проверено 18 ноября 2006 г.
- ^ Брюс Хорн. «Модель Великого Объединения (1) — Ресурсы» . Фольклор.org . Проверено 3 октября 2017 г.
- ^ Сиракузы, Джон (28 апреля 2005 г.). «Mac OS X 10.4 Тигр» . Арс Техника .
- ^ «Решения для резервного копирования с помощью командной строки в Mac OS X» . Яблоко. 29 октября 2005 г. Архивировано из оригинала 25 февраля 2008 года . Проверено 18 ноября 2006 г.
- ^ «Файлы и кластеры» . Майкрософт. 7 января 2021 г. Проверено 15 августа 2023 г.
- ^ Верма, Сурендра (16 января 2012 г.). Синофски, Стивен (ред.). «Создание файловой системы нового поколения для Windows: ReFS» . Сборка Windows 8 . Майкрософт. Блоги MSDN . Архивировано из оригинала 16 февраля 2013 года . Проверено 20 января 2013 г.
- ^ Фоли, Мэри Джо (16 января 2012 г.). «Microsoft публично раскрывает планы относительно своей новой файловой системы Windows 8» . ЗДНет . CBS Интерактив . Архивировано из оригинала 19 января 2012 года . Проверено 21 января 2013 г.
- ^ Мартин Лукас. «Windows Server 2012: заменяет ли ReFS NTFS? Когда мне следует ее использовать?» . ТехНет . Архивировано из оригинала 23 января 2013 года.
- ^ «Обзор устойчивой файловой системы» . Документы Майкрософт . Майкрософт . 13 января 2017 года . Проверено 15 августа 2023 г.
- ^ Jump up to: а б Ло, Эрик (7 сентября 2013 г.). «Развлечение с фавиконками» . Документы Майкрософт . Майкрософт . Проверено 15 августа 2023 г.
- ^ Барт Де Смет (13 июля 2006 г.). «Используйте команду DIR Vista для отображения альтернативных потоков данных» . Блог B# .NET . Архивировано из оригинала 27 сентября 2007 г. Проверено 7 июля 2007 г.
- ^ «Поставщик файловой системы (Windows PowerShell 3.0)» . ТехНет . Майкрософт . 9 августа 2012 г. Архивировано из оригинала 23 января 2015 г.
- ^ Jump up to: а б Чен, Раймонд (27 мая 2011 г.). «Почему пользовательские свойства, созданные в Windows 2000, теряются при просмотре файла в более новых версиях Windows?» . Старая новая вещь . Майкрософт . Проверено 10 июня 2020 г.
- ^ Microsoft (27 октября 2006 г.). «Служба индексирования добавляет потоки данных в файлы изображений» . Майкрософт . Проверено 18 ноября 2006 г.
- ^ Чен, Раймонд (1 мая 2012 г.). «Что случилось со сводной информацией, созданной в Windows 2000 и Windows XP?» . Старая новая вещь . Майкрософт . Проверено 10 июня 2020 г.
- ^ Барт Де Смет (19 августа 2005 г.). «Демо «Внутренних компонентов службы выполнения вложений» в Windows XP SP2 и Windows Server 2003 SP1» . Блог B# .NET. Архивировано из оригинала 23 февраля 2007 г. Проверено 18 ноября 2006 г.
- ^ Чен, Раймонд (4 ноября 2013 г.). «Управление идентификатором зоны для указания места загрузки файла» . Старая новая вещь . Майкрософт .