شاخهگاه (سیستم فایلبندی)
در سیستم فایلبندی رایانه، یک شاخهگاه (به انگلیسی: fork) یک مجموعه است که شامل دادههای مرتبط با یک شیء سیستم فایلبندی میباشد. اگر سیستم فایل «شاخهگاه» نداشته باشد، آنوقت تنها یک مجموعهٔ داده برای محتوای آن مجاز میباشد، در حالیکه اگر در سیستم فایل بندی شاخهگاه موجود باشد، امکان وجود چندین نوع از همین محتواها وجود دارد. هر شاخهگاه میتواند برای فایل، تجمیع دادهٔ اولیه، یا فقط فراداده ایجاد کند.
برخلاف ویژگیهای تعمیم یافته، که یک ویژگی سیستم فایلبندی آشنا است و معمولاً اندازه (سایز) ثابت دارد، «شاخهگاه» ها میتوانند سایزهای متغیری داشته باشند، که حتی میتواند بزرگتر از «شاخهگاه داده» ی اصلی فایل باشد. سایز یک فایل، مجموع سایزهای هر شاخهگاه میباشد.
«شاخهگاههای منبع» معمولاً توسط اجراپذیرها استفاده میشوند.
یک مثال از شاخهگاهها برای اسناد تولید شده توسط واژه پردازها میباشد: تکه کردن یک سند پردازش کلمه به «محتوا» و «نمایش»، و سپس ذخیرهسازی هر قسمت در یک منبع مجزا.
راه کارهای پیادهسازی بدون شاخهگاه
- فایل سیستم بدون شاخهگاه: باید از چندین فایل مجزا استفاده کرد، که این فایلها به هم مرتبط هستند، مثلاً باید از فایلهای متصل رفیق استفاده کرد. در اینجا برنامه ای که روی فایلها کار میکند باید اتصال بین فایلها را اداره کند و نه فایل سیستم.
- راهکار استفاده از فایلهای بایگانی(Archive file): دادههای اضافی در یک قالب پروندهٔ از قبل معین شده، یا فایل بایگانی، ذخیره میشود. در این راهکار چندین فایل و فراداده در یک فایل (در یک شاخهگاه منفرد) ذخیره میشود. در اینجا برنامه باید فایل ظرفی یا فایل بایگانی را پردازش کند، نه آنکه فایل سیستم شاخهگاهها را اداره نماید.
ایراد اصلی فقدان شاخهگاه
- برنامهٔ استفادهکننده از داده باید کارهای اضافی انجام دهد.
اهمیت و هدف از ایجاد شاخهگاهها
شاخه گاه منبع برای سه هدف در سیستم فایلبندی مکینتاش استفاده میشود:
- برای ذخیرهٔ همهٔ دادههای گرافیکی روی دیسک، تا زمانیکه نیاز باشد، سپس بازیابی میشود، روی نمایشگر رسم میگردد، و سپس دور ریخته میشود. این نوع نرمافزاری حافظهٔ مجازی به اپل کمک کرد تا نیازمندیهای حافظه را از ۱ مگابایت در اپل لیزا به ۱۲۸ کلیو بایت در مکینتاش کاهش دهد.
- به دلیل آنکه همهٔ تصاویر و متنها به صورت مجزا در یک شاخهگاه منبع ذخیرهسازی میشوند، یک غیر برنامهنویس از آن استفاده میکند تا برای یک بازار خارجی یک برنامه را ترجمه کند. فرایندی که بینالمللیسازی و محلیسازی نام دارد.
- از شاخهگاه میتوان برای توزیع تقریباً همهٔ اجزای یک برنامه کاربردی در یک فایل منفرد استفاده کرد، که درهم و برهمی را کاهش میدهد و نصب و حذف برنامه کاربردی را ساده میسازد.
انواع شاخهگاه
- شاخه گاه منبع: برای ذخیرهسازی دادههای ساختیافته استفاده میشود.
- شاخه گاه داده: برای ذخیرهسازی دادههای بدون ساختار استفاده میشود.
اجزای یک شاخهگاه
یک شاخه گاه منبع اطلاعاتی را به روش بخصوصی ذخیرهسازی میکند، و شامل جزییاتی مثل
- نقشکها با فرمت bitmap
- شکلهای ویندوز
- تعاریف فهرستها (منوها) و محتوای فهرستها
- کدهای کاربردی (کد ماشین)
میشود.
یک فایل واژه پرداز میتواند:
- متن خود را در یک «شاخهگاه داده» ذخیره کند،
- در حالیکه هر تصویر جاسازی شده را در «شاخهگاه منبع» همان فایل ذخیرهسازی نماید.
شاخهگاههای منبع در همهٔ سیستمهای فایل بندی پیادهسازی شدهاست، و از آن برای سامانه رانها روی مکینتاش (MFS, HFS، و HFS Plus) استفاده میشود. وجود یک شاخهگاه امکان ذخیرهٔ انواع مختلفی از دادههای اضافی را ساده میسازد، مثلاً به سیستم امکان میدهد تا آیکون درست را برای یک فایل نمایش دهد، و آن را بدون نیاز به یک پسوند نام در نام یک فایل، باز کند.
نحوه دسترسی به شاخهگاهها
- در حالیکه دسترسی به «شاخهگاه داده» مشابه دسترسی به فایل در دیگر سیستم عاملها عمل میکند؛ یک فایل را بگیرید، یک آفست بایت را بگیرید، داده را بخوانید.
- دسترسی به یک «شاخهگاه منبع» بیشتر شبیه استخراج کردن رکوردهای ساختیافته از پایگاه داده کار میکند.
پیادهسازیهای شاخهگاهها
در اپل
شاخه گاههای سیستم فایل با سیستم فایل بندی سلسله مراتبی اپل (HFS) مرتبط میباشند. HFS اپل و سیستم فایل بندی مکینتاش اپل (MFS) اجازه میدهند تا یک شیی سیستم فایل بندی دارای دو نوع شاخه گاه باشند: شاخه گاه داده، و شاخه گاه منبع.
- شاخه گاه منبع برای ذخیرهٔ دادههای کامپایل نشده که توسط رابط کاربری گرافیکی سیستم استفاده میشود، طراحی شدهاست، مثل:
- رشته متنهای قابل محل دهی
- آیکون فایل که توسط یابنده استفاده میشود
- فهرست (منو)ها
- جعبههای گفتگو که با یک برنامه کاربردی مرتبط اند.
به دلیل آنکه کدهای کامپایل شدهٔ نرمافزاری نیز در یک منبع ذخیرهسازی میشوند، برنامههای کاربردی معمولاً شامل فقط یک «شاخهگاه منبع» هستند و «شاخهگاه داده» ندارند.
یکی از ویژگیهای بسیار مبهم و گنگ اچ اف اس پلاس آن است که یک فایل میتواند به تعداد دلخواهی «شاخه گاه نام دار» داشته باشد، علاوه بر شاخه گاههای منبع و داده. این ویژگی به صورت گسترده بدون استفاده ماندهاست؛ و اپل هیچگاه پشتیبانی از آن را در Mac OS 8.1-10.3.9 اضافه نکرد. با شروع ۱۰٫۴ یک پیادهسازی جزئی برای پشتیبانی از ویژگیهای برخز گسترش یافته اپل انجام گردید.
تا Mac OS X v10.4 کاربرانی که امکانات خط فرمان Unix را اجرا میکردند (مثل tar) که در Mac OS X نیز موجود است، در خطر از دست رفتن داده بودند، زیرا امکانات برای دستکاری شاخه گاههای منبع فایلها تا ورژن v10.4 به روز رسانی نشده بود.
در NTFS مایکروسافت
جریان دادههای متفاوت (Alternate data streams) امکان میدهد تا بیش از یک جریان داده با یک نام فایل مرتبط گردد (یک شاخه گاه) در اینجا باید از فرمت "filename:streamname" استفاده کرد (مثلاً "text.txt:extrastream").
انواع اصلی منبع
کدهای نوع زیر، به عنوان شناسانه نوع در شاخهگاهها، برای شناسایی مواردی غیر از خود شاخهگاههای منبع استفاده میشوند: مثلاً برای شناسایی خود فایلها، توصیف داده در کلیپ برد، و بسیاری موارد دیگر.
در اینجا طول نوع باید ۴ بایت باشند، بنابراین برای انواعی مثل snd و STR یک فاصله خالی (0x20) در انتهای آن میباشد.
نام نوع منبع | نام واقعی | توصیف |
---|---|---|
alis | نام مستعار
alias | یک نام مستعار برای یک فایل دیگر ذخیرهسازی میکند، در یک شاخهگاه منبع برای یک فایل که در آن ویژگی بیت «alias» تنظیم شدهاست. |
ALRT | هشدار
alert | توصیف کنندهٔ شکل جعبه هشدار یک برنامه کاربردی است. |
APPL | برنامه کاربردی
application | ذخیره کنندهٔ اطلاعات برنامه کاربردی است. |
BNDL | بسته
bundle | توصیف کنندهٔ دادههایی مثل نوع فایل آیکون استفاده شده در یک برنامه کاربردی است. |
cicn | رنگ آیکون
color icon | تعریف کنندهٔ رنگ آیکون استفاده شده در دادهاست. |
clut | جدول جستجوی رنگ
color look-up table | توصیف کننده یک جعبه رنگ نقاشی استفاده شده در دادهاست. |
CNTL | کنترل
control | تعریف کنندهٔ جزئیات یک پیکر پار (مولفه) موجود در یک پنجره است. |
CODE | کد منبع
code resource | کد منبع را برای برنامه ذخیره میکند. |
CURS | مکان نما
cursor | شکل یک مکان نمای تک رنگ را تعریف میکند (مربع ۸ بیت در ۸ بیت) |
DITL | لیست آیتم گفتگو
dialog item list | تعریف کنندهٔ یک مولفهٔ یک پنجره است. |
DLOG | گفتگو
dialog | شکل یک جعبه گفتگو را برای یک برنامه کاربردی تعریف میکند. |
FREF | ارجاع فایل
file reference | تعریف کنندهٔ یک نوع فایل اداره شده توسط یک برنامه کاربردی است. |
hfdr | آیکون کمک بالون
icon balloon help | برای بالون کمک محتوا و شکل را تعریف میکند، و موقعی که مکاننما روی فایل در یابنده میرود نمایش مییابد. |
icl8 | لیست آیکون بیت ۸
8 bit icon list | یک آیکون نمایش داده شده در یابنده را تعریف میکند. |
icns | لیست آیکون ۳۲ بیت
32 bit icon list | یک آیکون نمایش داده شده در یابنده را تعریف میکند. |
ICON | آیکون
icon | یک آیتم تک رنگ استفاده شده در داده را تعریف میکند. |
kind | توصیف فایل
file description | تعریف کنندهٔ توصیفی از یک نوع فایل است. |
MBAR | نوار منو
menu bar | برای یک برنامه کاربردی یک منو و یک نوار منو تعریف میکند. |
MDEF | تعریف منو
menu definition | یک منو برای یک برنامه کاربردی تعریف میکند. از آن میتوان برای تعریف منوهای با اشکال پیچیده، مثل جعبه رنگ استفاده کرد. |
MENU | منو
menu | آیتمهای یک منو را در یک برنامه کاربردی تعریف میکند. |
MooV | فیلم
movie | یک فیلم QuickTime را ذخیرهسازی میکند. |
open | باز
open | یک نوع فایل که برنامه کاربردی میتواند آن را باز کند را تعریف میکند. |
PICT | تصویر
picture | یک تصویر PICT موجود در فایل را ذخیرهسازی میکند. |
PREF | ارجحیت
preference | تنظیمات محیطی برای یک برنامه کاربردی را ذخیرهسازی میکند. |
snd | صدا
sound | صدای استفاده شده در فایل را ذخیرهسازی میکند. |
STR | رشته
string | یک رشته یا دادهٔ هگزادسیمال استفاده شده در فایل را ذخیرهسازی میکند. |
STR# | لیست رشته
string list | چندین رشتهٔ استفاده شده در فایل را ذخیرهسازی میکند. |
styl | سبک نگارش
style | اطلاعات سبک نگارش، مثل فونت، رنگ، و سایز متن را تعریف میکند. |
TEXT | متن
text | متن را ذخیره میکند. |
TMPL | الگو
template | فرمت را برای دادهٔ منبع تعریف میکند. |
vers | ورژن
version | ورژن یا محدودهٔ استفاده از فایل را تعریف میکند. |
WDEF | تعریف پنجره
window definition | یک پنجره برای برنامه کاربردی تعریف میکند. پنجرههای دارای شکل از قبل معین نشده نیز میتوانند تعریف شوند. |
WIND | پنجره
window | شکل یک پنجرهٔ برنامه کاربردی را تعریف میکند. |
منابع
- ↑ "Fork (file system)". Wikipedia (به انگلیسی). 2019-12-18.
- ↑ "Resource fork". Wikipedia (به انگلیسی). 2020-02-13.
- ↑ "NTFS". Wikipedia (به انگلیسی). 2020-02-26.