Що таке точка повторного аналізу і чому його так називають?


10
  • Що це?

    згідно з документами MSDN , у файловій системі NTFS існує концепція під назвою "точка перезапуску" і:

    Коли файлова система відкриває файл з точкою повторного аналізу ...

    З цього рядка видно, що reparse pointце лише деякі метадані, що зберігаються у файловому об’єкті NTFS.

    але ця популярна відповідь говорить інакше:

    Точка повторного розбору - це те, що Linux називає символічним посиланням.

    яка правильна відповідь?


  • Чому його так називають?

    Інша річ, яка мене спантеличує, - це називання такої концепції, я переглянув це документальне оформлення, але не бачачи нічого щодо походження, чи хтось має поняття для цього? Я б здогадався, що ім'я містить "синтаксичний аналіз", оскільки він включає використання фільтра файлової системи для розбору структури даних, але чому це "точка повторного розбору", а не просто "точка розбору" ?


"Подивіться ще раз, тому що ваші дані не там, де ви думаєте, що це є."
Мокубай

Відповіді:


6

Точка повторного розбору - це те, що Linux називає символічним посиланням.

Це в основному, але не зовсім правильно. Точки повторного аналізу не обов'язково є посиланнями; вони "будівельний блок", на якому можуть бути реалізовані різні типи посилань.

Так, вони можуть бути використані для реалізації символічних посилань - дійсно, як традиційні стики NTFS, так і новіші посилання Win10 "Unix-подібні" є двома різними видами точок повторного розбору.

Однак вони можуть бути використані для реалізації функцій, які зовсім не діють як символічні посилання. Наприклад, точки "точки кріплення гучності" для Windows (де ви додаєте диск до папки замість літери диска), також є пунктами повторного розбору. У статті Вікіпедії перелічено ще кілька типів - наприклад, дедупільовані файли або "офлайн" файли, які викликають пошук із резервного копіювання стрічки.

Чому його так називають?

Його називають "точкою повторного аналізу ", оскільки він перериває процес аналізу шляху .

Якщо у вас є такий шлях C:\Documents and Settings\Application Data\Microsoft, ви можете уявити, як його розбирають так:

  1. Знайдіть перший компонент C:- це буква диска. Доступ до накопичувача.
  2. Подивіться на другий компонент Documents and Settings- це точка перегляду. Прочитайте метадані точки повторного аналізу та перезапустіть аналіз звідти. Ви закінчите о C:\Users.
  3. Подивіться на 3-й компонент Application Data- знову точка перегляду; прочитати його метадані та перезапустити аналіз звідти . Ви закінчите о AppData\Roaming.
  4. Подивіться ...

Якщо у вас є Linux, ви можете побачити подібну візуалізацію, запустивши namei /a/long/path/to/something, особливо якщо шлях містить символьні посилання.


Мені цікаво, чи ви маєте на увазі символічні посилання Linux, які використовує WSL ( IO_REPARSE_TAG_LX_SYMLINK), коли ви посилаєтесь на новіші символічні посилання Win10 "Unix-подібні" ?! Якщо ви маєте на увазі символічні посилання NTFS, то вони існували ще з часів Windows Vista та драйвера фільтра , щоб доопрацювати точну функцію на старіші версії ОС.
0xC0000022L

2

Від Microsoft: Reparse Points

Файл або каталог можуть містити точку повторного розбору, що представляє собою набір визначених користувачем даних. Формат цих даних розуміється додатком, який зберігає дані, і фільтром файлової системи, який ви встановлюєте для інтерпретації даних та обробки файлу. Коли програма встановлює точку повторного аналізу, вона зберігає ці дані, плюс тег перезавантаження, який однозначно ідентифікує дані, які вона зберігає. Коли файлова система відкриває файл з точкою повторного аналізу, вона намагається знайти фільтр файлової системи, пов'язаний з форматом даних, ідентифікованим тегом повторного аналізу. Якщо фільтр файлової системи знайдений, фільтр обробляє файл, як вказується за даними повторного аналізу. Якщо фільтр файлової системи не знайдений, операція відкриття файлу закінчується.

Отже файл, що зберігається, аналізується файловою системою, зазначає, що він містить спеціальні дані і повинен бути перекомпонований фільтром файлової системи для правильного вирішення. Оскільки для успішного відкриття файлу потрібні дві окремі дії розбору, цілком ймовірно, що саме це породжує назву " точка повторного розбору".

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

Це не означає, що точка повторного розбору не є символічним посиланням. Це може бути просто блок даних, на якому написано "Перегляньте цей файл", коли його переглянули.


@TwistyImpersonator Це те, що я намагався сказати у своєму абзаці нижче цитати. Якщо я можу якось краще це сформулювати, я відкритий для пропозицій.
Мокубай
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.