stringtranslate.com

Форк (файловая система)

В файловой системе компьютера форк это набор данных, связанных с объектом файловой системы. Файловые системы без форков допускают только один набор данных для содержимого, в то время как файловые системы с форками допускают несколько таких содержимых. Каждый непустой файл должен иметь по крайней мере один форк, часто типа по умолчанию, и в зависимости от файловой системы файл может иметь один или несколько других связанных форков, которые в свою очередь могут содержать первичные данные, неотъемлемые от файла, или просто метаданные .

В отличие от расширенных атрибутов , аналогичной функции файловой системы, которая обычно имеет фиксированный размер, форки могут иметь переменный размер, возможно, даже больший, чем первичная форк данных файла. Размер файла — это сумма размеров каждой форки.

Популярные файловые системы, которые могут использовать форки, включают HFS+ от Apple и NTFS от Microsoft .

Альтернативы

В файловых системах без ветвей вместо этого можно использовать несколько отдельных файлов, связанных друг с другом, в частности, файлы sidecar для метаданных. Однако связь между этими файлами не сохраняется автоматически файловой системой и должна обрабатываться каждой программой, которая работает с файлами. Другой альтернативой является файл-контейнер , который хранит дополнительные данные в заданном формате файла, или файл-архив , который позволяет хранить несколько файлов и метаданных в файле (в пределах одной ветви). Это требует, чтобы программы обрабатывали файл-контейнер или файл-архив, а не файловая система обрабатывала ветви. Эти альтернативы требуют дополнительной работы программ, использующих данные, но выигрывают от переносимости в файловые системы, которые не поддерживают ветви.

Реализации

Яблоко

Ветви файловой системы связаны с иерархической файловой системой Apple (HFS). [1] HFS и оригинальная файловая система Apple Macintosh MFS позволяли объекту файловой системы иметь два вида веток: ветку данных и ветку ресурсов .

Ресурсная ветка была разработана для хранения нескомпилированных данных, которые будут использоваться графическим пользовательским интерфейсом системы (GUI), например, локализуемые текстовые строки, значок файла для использования Finder или меню и диалоговые окна, связанные с приложением. [2] Однако эта функция была очень гибкой, поэтому были найдены дополнительные применения, такие как разделение документа текстового процессора на содержимое и представление, а затем сохранение каждой части в отдельных ресурсах. Поскольку скомпилированный программный код также хранился в ресурсе, часто приложения состояли только из ресурсной ветки и не имели ветки данных.

Одной из самых неясных особенностей HFS+ является то, что файл может иметь произвольное количество пользовательских «именованных форков» в дополнение к традиционным форкам данных и ресурсов. Эта функция осталась в значительной степени неиспользованной, поскольку Apple никогда не добавляла ее поддержку в Mac OS 8.1 - 10.3.9 . Начиная с 10.4 , была сделана частичная реализация для поддержки расширенных встроенных атрибутов Apple . [3]

В Mac OS X до версии Mac OS X 10.4 пользователи, использующие утилиты командной строки Unix, такие как tar, рисковали потерей данных, поскольку утилиты не были обновлены для обработки вилок ресурсов файлов. [4]

Новелл

Начиная с 1985 года Novell NetWare File System (NWFS) и ее преемник Novell Storage Services (NSS) были разработаны с нуля для использования различных методов хранения метаданных файла. Некоторые метаданные находятся в Novell Directory Services (NDS), некоторые хранятся в структуре каталогов на диске, а некоторые хранятся, как это называет Novell, в «множественных потоках данных» вместе с самим файлом. Множественные потоки данных также позволяют клиентам Macintosh подключаться к серверам NetWare и использовать их.

Майкрософт

NTFS , файловая система, представленная в Windows NT 3.1 , поддерживает ответвления файловой системы, известные как альтернативные потоки данных (ADS). [5] ReFS , новая файловая система, представленная в Windows Server 2012 , изначально не поддерживала ADS, [6] [7] [8] но в Windows 8.1 64-bit и Server 2012 R2 в ReFS была добавлена ​​поддержка ADS длиной до 128 КБ. [9]

ADS изначально предназначался для добавления совместимости с существующими операционными системами, которые поддерживают форки. [ необходима цитата ] Компьютерная программа может быть направлена ​​на открытие ADS, указав имя ADS после двоеточия (:) после пути к файлу. [10] Несмотря на поддержку, большинство программ, включая Windows Explorer и команду dir (до Windows Vista), игнорируют ADS. Windows Explorer копирует 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.

Возможные риски безопасности и потери данных

Когда файловая система поддерживает различные форки, приложения должны знать о них, иначе могут возникнуть риски безопасности. Разрешение устаревшему программному обеспечению получать доступ к данным без соответствующих шимов на месте является основным виновником таких проблем. [ необходима цитата ]

Если различные системные утилиты (проводник, антивирусное ПО, архиваторы и т. д.) не знают о различных форках, могут возникнуть следующие проблемы:

Ссылки

  1. ^ Apple (1996-07-02). "File Forks". Apple. Архивировано из оригинала 2008-07-24 . Получено 2006-11-18 .
  2. ^ Брюс Хорн. "The Grand Unified Model (1) - Resources". Folklore.org . Получено 2017-10-03 .
  3. Сиракузы, Джон (28 апреля 2005 г.). «Mac OS X 10.4 Тигр». Арс Техника .
  4. ^ "Решения для резервного копирования с командной строкой в ​​Mac OS X". Apple. 2005-10-29. Архивировано из оригинала 25 февраля 2008 года . Получено 2006-11-18 .
  5. ^ «Файлы и кластеры». Microsoft. 7 января 2021 г. Получено 15 августа 2023 г.
  6. ^ Verma, Surendra (16 января 2012 г.). Sinofsky, Steven (ред.). "Building the next generation file system for Windows: ReFS". Building Windows 8 . Microsoft. MSDN blogs . Архивировано из оригинала 16 февраля 2013 г. . Получено 20 января 2013 г. .
  7. Фоли, Мэри Джо (16 января 2012 г.). «Microsoft публикует планы по созданию новой файловой системы Windows 8». ZDNet . CBS Interactive . Получено 31 июля 2024 г. .
  8. ^ Мартин Лукас. «Windows Server 2012: ReFS заменяет NTFS? Когда мне следует его использовать?». TechNet . Архивировано из оригинала 23 января 2013 г.
  9. ^ "Обзор отказоустойчивой файловой системы". Microsoft Docs . Microsoft . 13 января 2017 г. . Получено 15 августа 2023 г. .
  10. ^ ab Law, Eric (7 сентября 2013 г.). «Fun with Favicons». Microsoft Docs . Microsoft . Получено 15 августа 2023 г. .
  11. ^ Барт Де Смет (2006-07-13). "Используйте команду DIR в Vista для отображения альтернативных потоков данных". Блог B# .NET . Архивировано из оригинала 2007-09-27 . Получено 2007-07-07 .
  12. ^ "FileSystem Provider (Windows PowerShell 3.0)". TechNet . Microsoft . 9 августа 2012 г. Архивировано из оригинала 23 января 2015 г.
  13. ^ ab Chen, Raymond (27 мая 2011 г.). «Почему пользовательские свойства, созданные в Windows 2000, теряются, когда я просматриваю файл из более новых версий Windows?». The Old New Thing . Microsoft . Получено 10 июня 2020 г. .
  14. ^ Microsoft (2006-10-27). "Служба индексирования добавляет потоки данных в файлы изображений". Microsoft . Получено 2006-11-18 .
  15. ^ Чен, Рэймонд (1 мая 2012 г.). «Что случилось с информацией Summary, созданной в Windows 2000 и Windows XP?». The Old New Thing . Microsoft . Получено 10 июня 2020 г. .
  16. ^ Барт Де Смет (2005-08-19). "Демонстрация "Внутренних компонентов службы выполнения вложений" в Windows XP SP2 и Windows Server 2003 SP1". Блог B# .NET. Архивировано из оригинала 2007-02-23 . Получено 2006-11-18 .
  17. ^ Чен, Рэймонд (4 ноября 2013 г.). «Манипулирование идентификатором зоны для указания того, откуда был загружен файл». The Old New Thing . Microsoft .

Внешние ссылки