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