Подтвердить что ты не робот

Почему так мало файловых систем версий?

Я провел некоторое исследование литературы по файловым системам версий. Версии уже были обычной практикой в ​​самых ранних операционных системах, таких как влиятельная, но почти забытая система несовместимых тайм-панелей (ITS) и TENEX. OpenVMS, преемник TENEX, по-прежнему используется в специальных приложениях и по-прежнему поддерживает управление версиями. Я нашел ряд экспериментальных и исторических файловых систем с версиями (см. ext3cow FAQ). Но ни одна из основных операционных систем (Linux, Windows, Mac OS) не поддерживает версию по умолчанию.

Почему современные операционные и файловые системы не поддерживают функцию, доступную 40 лет назад? Конечно, вы можете каким-то образом взломать версии в свои системы, но это должно поддерживаться на самом базовом уровне, прозрачном для приложений. Просто уточнить: средства журналирования и моментального снимка (например, Apple TimeMachine) не совпадают. Версии на уровне файловой системы означают: каждый процесс, который модифицирует файл, автоматически запускает создание новой версии, с которой вы можете напрямую обращаться к следующим словам (например, для отмены процесса). Вы можете реализовать это дешево с копированием на запись.

Единственное современное приложение файловой системы версий, которое я нашел, - это версия в Amazon S3, которую они представили несколько месяцев назад. Почему так мало файловых систем версий? Что случилось с развитием компьютерных систем? Неужели версия вообще плохой идеей?

4b9b3361

Ответ 1

Не могу дать окончательный ответ, но рассмотрим эти 2 пункта:

  • Эта функция мало используется для основного пользователя (98% всех пользователей?), поэтому зачем ее применять, если никто ее не использует.
  • В прошлом пространство для хранения было дорогим, поэтому зачем тратить его на функцию, которую почти никто не будет использовать?

Ответ 2

Если у меня есть вещи, требующие управления версиями, есть много способов сделать это (локальный репозиторий git, сетевые системы контроля версий и т.д.). Я полагаю, что было беспокойство в том, что если вы создадите новую версию КАЖДЫЙ раз, когда файл будет изменен, рано или поздно ваш диск будет просто заполнен различиями, которые вам могут или не нужны (файлы temp/swap и т.д.). Снэпшоты, такие как машина времени, представляют собой среднюю площадку - они позволяют вам вернуться назад, но не тратьте много места на резервное копирование (возможно) ненужного "оттока".

Ответ 3

Версии обычно не используются в большинстве случаев, когда речь идет о записи диска. Происходит множество изменений, которые должны быть односторонними, и никто никогда не заботится о том, что было в предыдущей версии.

Плюс, его трудно. Реализация файловой системы для управления версиями по своей сути сложнее, чем создание файловой системы, которая этого не делает. Просто нет реального стимула для создания файловой системы, которая делает это. Новые системы (zfs, ntfs, btrfs) могут сделать это, потому что есть новое состояние конкуренции, основанное на функциях, поэтому они все пытаются вписать как можно больше функций в свои проекты FS.

Большинство людей с удовольствием используют VCS в файлах, на которых они действительно заботятся, а не теряют пространство при версировании FS.

Ответ 4

Согласно Дарвину, эволюционные черты, которые на самом деле не используются, как правило, отбираются. Если бы для этого была настоящая и широко распространенная потребность, основные операционные системы включили бы ее в качестве значения по умолчанию.

Я использовал VMS за несколько лет до появления ПК. У меня было десятки копий всего, что я сделал, нравится это или нет. Я понятия не имел, что большинство из них, и все равно. Они быстро стали беспорядочными. Очевидно, что файловые системы версий - это еще одна из тех вещей, которые "Это казалось хорошей идеей в то время"...

Ответ 5

Большинство проектов файловой системы сегодня взяты из разработки операционных систем Unix (например, Unix имеет иерархическую FS перед VMS), поскольку Unix становится более популярным, тогда его FS становится основным потоком. Затем эти понятия были перенесены на другие ОС. У Unix не было версий файлов.

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

Итак, если кто-то думает о поддержке версий, лучше делать снимки (так как многие файловые системы поддерживают их и, конечно, все современные системы хранения).

Итак, эта полезная функция умерла вместе с такими операционными системами, как OpenVMS (сегодня почти мертв)