صفحه اصلی

جستجو

خلاصه

فهرست مطالب

Download کل مقاله


پیشگفتار

مقدمه

سیستم فایل

بررسی عمیق تر NTFS

نسخه های NTFS

فهرست مراجع


قبلی
صفحه اصلی
عنوان بالاتر
بعدی


Get Firefox!
Get Thunderbird!


4-13- پیوندهای سخت و نقاط انشعاب (Hard Links and Junctions)

اگر با اینترنت کار کرده باشید، دیده اید که با استفاده از پیوند (link) ها می توان از یک صفحه به صفحات دیگر راه یافت. در حقیقت هر پیوند (مبدأ) در صفحه، حاوی URL یک صفحه دیگر (مقصد) است که با کلیک کردن بر روی پیوند، صفحه ی این URL در خواست می شود.

در ویندوز هم مفهومی شبیه به این، با نام فایل پیوند یا میان بُر (shortcut - با پسوند.pif یا .lnk) وجود دارد. این فایل، تنها در برگیرنده مسیر (path) یک فایل دیگر است. بسیاری از فایل های روی میزکار ویندوز یا برنامه های منوی شروع ، پیوندی به فایل ها، پوشه ها و برنامه های اصلی هستند. به این صورت کپی های یک فایل اینجا و آنجا پخش نمی شوند و دسترسی به برنامه ها از هرجایی ممکن است. به فایل پیوند، مبدأ (link source) و به فایلی که پیوند به آن اشاره می کند، مقصد (link target) گفته می شوند.

هرچند همه اینها خوب است ولی پیوندها یک خصوصیت پشتیبانی شده در سطح برنامه کاربردی (application-level feature) است. یعنی پیوندها از دید سیستم فایل، با سایر فایل ها فرقی ندارند و فضا (هرچند ناچیز) اشغال می کنند. از دید سیستم عامل، پیوندها فایل های کاربری هستند که برای اجرا، کمی کار اضافی می طلبند. نمی توان مستقیما فایلی را از طریق پیوندِ آن ویرایش کرد؛ بلکه پیوند، برنامه را به فایل مقصد هدایت می کند و فایل در مسیر اصلی خود ویرایش می شود. یا وقتی از طریق یک پیوند به پوشه ای می روید مسیرتان به مسیر پوشه تغییر می کند و با برگشتن به پوشه ی بالایی، به پوشه ی در برگیرنده ی پوشه ی مقصد برده می شوید و نه پوشه ی در برگیرنده ی پیوند. تازه اگر فایل مقصد را جابجا یا پاک کنید یا تغییر نام دهید، ویندوز هیچ کاری برای شما نمی کند و بسادگی همه پیوندها به آن فایل، اعتبار خود را از دست می دهند و باید بصورت دستی اصلاح شوند [1].

پیوندهای سخت (Hard links) تجلی ایده پیوندها در سطح سیستم (system-level feature) است. وقتی یک پیوند سخت به فایلی می سازید، نه یک فایل جدید ساخته اید و نه اطلاعات دسترسی مربوط به یک فایل را در جای دیگر تکرار کرده اید. آن فایل دست نخورده باقی می ماند و تنها یک نام جدید و یک مسیر دسترسی جدید برای آن درست می شود. چون همه ی این نام ها به یک محتوای واحد اشاره دارند، با ایجاد تغییر بر روی یکی از مبدأها، این تغییر بلافاصله از طریق تمام پیوندهای دیگر قابل مشاهده است. هر فایل حداقل یک پیوند به محتوای فیزیکی خود دارد. هرگاه تعداد پیوندها به یک فایل صفر شد، بطور فیزیکی از سیستم فایل حذف می شود.

پیوندهای سخت، علاوه بر اینکه عملا فضایی بر روی دیسک اشغال نمی کنند، همیشه به محتوای فیزیکی درستی اشاره می کنند. اگر یکی از نام ها تغییر کند یا جابجا و حتی پاک شود، روی سایر نام ها تأثیری نمی گذارد.

  • هر چند با ایجاد تغییر در محتوای فایل، این تغییر بلافاصله از طریق تمام پیوندها قابل مشاهده است ولی تاریخ های فایل و خصوصیات ظاهری آن، فقط در پیوندی که تغییر را انجام داده به روز می شود و هر پیوندی، Directory Entry مربوط به خود را دارد.
  • فشرده سازی، رمزنگاری یا ساختن جریان های ثانویه، چون بر محتوای فیزیکی اثر می کند، از طریق هر کدام از مبدأها که انجام شده باشد، در سایرین هم اِعمال می شود.
  • مقصد یک پیوند سخت، اولا باید یک فایل باشد (و نه پوشه) ثانیا باید در همان درایوی باشد که پیوند (مبدأ) قرار دارد. (جدول3)
جدول3 – نمونه های درست و نادرست برقراری پیوند سخت
  پیوند سخت به اصلی اصلی
درست C:\folderb\folderc\hello.txt C:\foldera\file1.txt
نادرست C:\folderb C:\foldera
D:\folderb\folderc C:\foldera
D:\folderb\folderc\hello.txt C:\foldera\file1.txt

نظر بدهید:

4-13-1- نقاط انشعاب

یک نقطه انشعاب (Junction) یا پیوند نرم (Soft Link) هم همانند پیوند سخت است و با این تفاوت که مقصد آن یک پوشه است که این پوشه می تواند بر روی یک درایو دیگر از همین کامپیوتر قرار داشته باشد. از سایر نظرها، نقاط انشعاب با پیوندهای سخت فرقی ندارند و در سطح سیستم پشتیبانی شده اند [2].

  • تنها مشکل بر سر راه استفاده از پیوندهای سخت یا نقاط انشعاب، پشتیبانی ضعیف از سوی پوسته یا رابط کاربر ویندوز است. مثلا با اینکه در سطح سیستم فایل، فایل هایی که همه به یک محتوای فیزیکی اشاره می کنند قابل تشخیص هستند [3] و نیز هر فایل، تعداد پیوندهای موجود به خود را می داند، با استفاده از آن نمی توان فهمید که چند پیوند به یک فایل وجود دارد یا اینکه چه فایل هایی، همگی پیوندهایی به یک محتوای فیزیکی هستند.
  • حواستان باشد؛ ممکن است یک فایل با وجود پاک کردن همه پیوندها به آن، بازهم از دیسک پاک نشود چون هنوز پیوندهایی به آن در سطل آشغال ویندوز مانده است.

برای اطلاع از چگونگی ایجاد یک پیوند سخت همچنین شکستن یک نقطه ی انشعاب، به راهنمای ویندوز (دستور fsutil.exe برای ساختن پیوند سخت به بخش hardlink و برای شکستن نقطه ی انشعاب به بخش reparsepoint) مراجعه کنید.

برنامه ی فوق، تنها، امکانِ ساختن یک پیوند سخت را به کاربر می دهد و اجرا کردن آن هم مستلزم داشتنِ حقوق مدیریت سیستم است. بعلاوه این برنامه رابط گرافیکی ندارد و کارکردن با آن مشکل است. در مورد ساختنِ نقاط انشعاب هم برنامه ی خاصی پیش بینی نشده است. ولی با جستجو در اینترنت، می توانید برنامه های مفیدی برای مدیریت پیوندهای سخت و نقاط انشعاب بیابید. برنامه های Hard Link Magic (http://www.hlm.inc.ru/) و Junction Link Magic (http://www.rekenwonder.com/linkmagic.htm) می توانند به ترتیب برای مدیریت پیوندهای سخت و نقاط انشعاب بکار گرفته شوند.

برای مطالعه بیشتر به [3.a] و [3.h] مراجعه کنید.

نیز مراجعه کنید به بخش

نظر بدهید:


[1] البته این مطلب در مورد پیوندهایی که به فایل های روی درایوهای NTFS برقرار شده صدق نمی کند. برای اطلاعات بیشتر به بخش ردگیری توزیع شده ی پیوندها (Distributed Link Tracking) مراجعه کنید.

[2] در NTFS نقاط انشعاب با استفاده از قابلیت Reparse Points ساخته می شوند و یک پوشه واقعی هستند که موقع بازکردن، محتویات یک پوشه دیگر را نمایش می دهند برای اطلاعات بیشتر به بخش Reparse Points مراجعه کنید.

[3] همه ی این فایل ها، Object Identifier (که یک شناسه ی منحصر به فرد است که در سیستم فایل به هر فایل نسبت داده شده) یکسانی دارند.