Apa itu Reparse Point, dan mengapa disebut demikian?

10
  • Apa itu?

    menurut MSDN Documents , Dalam Sistem File NTFS, ada konsep yang disebut "titik reparse", dan:

    Ketika sistem file membuka file dengan titik reparse ...

    dari baris ini tampaknya reparse pointhanya beberapa metadata yang disimpan dalam objek file NTFS.

    tetapi jawaban populer ini mengatakan sebaliknya:

    Titik reparse adalah apa yang disebut linux sebagai tautan simbolik.

    mana jawaban yang benar?


  • Mengapa dinamai demikian?

    Hal lain yang membingungkan saya adalah penamaan konsep seperti itu, saya telah melihat dokumentasinya tetapi tidak melihat apa-apa tentang asal, apakah ada yang punya petunjuk untuk ini? Saya kira namanya berisi "parse" karena melibatkan penggunaan filter sistem file untuk mengurai struktur data, tetapi mengapa "RE-parse point", bukan hanya "parse point" ?

Sajuuk
sumber
"Lihat lagi karena data kamu tidak sesuai dengan yang kamu pikirkan."
Mokubai

Jawaban:

6

Titik reparse adalah apa yang disebut linux sebagai tautan simbolik.

Ini sebagian besar, tetapi tidak sepenuhnya benar. Poin berulang tidak harus berupa tautan; mereka adalah "blok bangunan" tempat berbagai tipe tautan dapat diimplementasikan.

Ya, mereka dapat digunakan untuk mengimplementasikan tautan simbolik - memang, baik persimpangan NTFS tradisional dan yang lebih baru Win10 "Unix-like" symlink adalah dua jenis titik reparse yang berbeda.

Namun, mereka dapat digunakan untuk mengimplementasikan fitur yang tidak bertindak seperti tautan simbolik sama sekali. Misalnya, "volume mountpoints" Windows (tempat Anda memasang drive ke folder, alih-alih ke huruf drive) juga merupakan titik reparse. The artikel Wikipedia daftar beberapa jenis yang lebih - misalnya, file deduplicated, atau "offline" file yang memicu pengambilan dari backup tape.

Mengapa dinamai demikian?

Ini disebut "titik reparse" karena mengganggu proses parsing path .

Ketika Anda memiliki jalur seperti C:\Documents and Settings\Application Data\Microsoft, Anda bisa membayangkannya diurai seperti ini:

  1. Cari komponen pertama C:- ini adalah huruf drive. Akses drive.
  2. Cari komponen ke-2 Documents and Settings- ini adalah titik reparse. Baca metadata titik berulang, dan mulai ulang penguraian dari sana. Anda akan berakhir di C:\Users.
  3. Cari komponen ke-3 Application Data- lagi-lagi titik reparse; baca metadata-nya dan restart path parsing dari sana . Anda akan berakhir di AppData\Roaming.
  4. Lihat...

Jika Anda memiliki Linux, Anda dapat melihat visualisasi yang sama dengan menjalankan namei /a/long/path/to/something, terutama jika path berisi symlink.

pengguna1686
sumber
Saya bertanya-tanya apakah maksud Anda tautan simbolis Linux yang digunakan oleh WSL ( IO_REPARSE_TAG_LX_SYMLINK) ketika Anda merujuk ke symlink Win10 "mirip-mirip" yang lebih baru ?! Jika Anda maksud tautan simbolis NTFS, mereka ada sejak Windows Vista dan driver filter ada untuk retrofit fitur yang tepat ke versi OS yang lebih lama.
0xC0000022L
2

Dari Microsoft: Poin Reparse

File atau direktori dapat berisi titik reparse, yang merupakan kumpulan data yang ditentukan pengguna. Format data ini dipahami oleh aplikasi yang menyimpan data, dan filter sistem file, yang Anda instal untuk menginterpretasikan data dan memproses file. Ketika suatu aplikasi menetapkan titik reparse, ia menyimpan data ini, ditambah tag reparse, yang secara unik mengidentifikasi data yang disimpannya. Ketika sistem file membuka file dengan titik reparse, ia mencoba untuk menemukan filter sistem file yang terkait dengan format data yang diidentifikasi oleh tag reparse. Jika filter sistem file ditemukan, filter memproses file seperti yang diarahkan oleh data berulang. Jika filter sistem file tidak ditemukan, operasi buka file gagal.

Jadi file atau data yang disimpan diuraikan oleh sistem file, mencatat bahwa itu berisi data khusus dan harus diulang oleh filter sistem file agar dapat diselesaikan dengan benar. Karena memerlukan dua tindakan parsing yang terpisah untuk berhasil membuka file, kemungkinan inilah yang menimbulkan nama " re parse point."

Data tidak hanya diurai satu kali. Data yang ditemukan di parse pertama mendapat re diurai oleh beberapa ekstensi aplikasi untuk menyelesaikan arti sebenarnya dari data.

Itu tidak berarti bahwa titik reparse bukanlah tautan simbolis. Itu bisa saja berupa blok data yang bertuliskan "Lihat di file ini" ketika telah diurai.

Mokubai
sumber
@TwistyImpersonator Itulah yang ingin saya katakan di paragraf saya di bawah kutipan. Jika saya bisa mengatakannya dengan lebih baik maka saya terbuka untuk saran.
Mokubai