poyan
02-14-2011, 01:46 PM
سیستم فایل هر کامپیوتر، امکان ذخیره سازی فایل ها و اطلاعات را روی آن فراهم می سازد. هنگامی که از داخل برنامه واژه پرداز خود سندی را ذخیره می کنید، این سیستم فایل است که تعیین می کند سند چگونه و کجا ذخیره شود.
ابزارهای ذخیره سازی مانند فلاپی دیسک ها، دیسک های سخت، درایوهای CD-ROM، درایوهای Zip و... تا قبل از اینکه سیستم عامل سیستم فایل را روی آنها تشکیل دهد، قابل استفاده نیستند.
سیستم فایلهای گوناگونی برای سیستم عامل های مبتنی بر یونیکس و لینوکس ارایه شده اند که برخی از آنها عبارتند از ext2، ext3، xfs، reiserfs و غیره. این سیستم فایل ها در جزییات فنی دارای تفاوت هایی با هم هستند ولی از نظر ساختاری که ایجاد می کنند مشابه بوده و تفاوت چندانی باهم ندارند. در این مقاله ما وارد جزییات فنی هر نوع از سیستم فایلها نشده و تنها ساختار آنها را بررسی خواهیم کرد.
● سیستم فایل یا درخت؟
سیستم فایل سیستم عامل های مبتنی بر یونیکس و لینوکس بصورت یک درخت وارونه پیاده سازی شده است. در یونیکس و لینوکس دیگر شما چیزی به نام درایوهای A، C و ... ندارید. تمام ابزارها و سیستم فایلها شاخه هایی از این درخت وارونه هستند. مرکز این درخت ریشه یا root نام دارد که بالاترین سطح سیستم فایل را تشکیل می دهد. زیر ریشه، پوشه هایی قرار دارند که سایر قسمت های سیستم فایل را تشکیل می دهند که اکنون درباره آنها توضیح می دهم. تصویر 1 سیستم فایل سیستم های مبتنی بر یونیکس و لینوکس را نشان می دهد.
همانطور که می بینید سیستم فایل از تعداد زیادی پوشه تشکیل شده است که این پوشه ها تقریبا در تمامی سیستم عامل های مبتنی بر یونیکس و لینوکس مشترک هستند. اکنون به تشریح تک تک این شاخه ها پرداخته و در میان آن توضیحات اضافه را به شما ارایه خواهم کرد.
● پارتیشن ها
در سیستم فایل سیستم عامل های مبتنی بر لینوکس و یونیکس، دیسک های سخت می توانند پارتیشن های متعددی داشته باشند. در این صورت هر پارتیشن دارای یک نقطه اتصال یا mount point می باشد که در آن نقطه به درخت سیستم فایل متصل می شود. مثلا می توانید اطلاعات کاربران سیستم را در یک پارتیشن جداگانه ذخیره نموده و نقطه اتصال آنرا home تعیین کنید که محل قرارگیری اطلاعات کاربران است و به همین ترتیب.
▪ بخش های درخت سیستم فایل
اکنون به بررسی تک تک شاخه های سیستم فایل می پردازیم. توجه داشته باشید که دسترسی به اکثر این شاخه ها فقط توسط کاربر ریشه امکان پذیر است.
- شاخه bin:
در این شاخه، دستورات سیستم عامل که برای تمام کاربران قابل دستیابی هستند و برخی دستورات مدیریتی سیستم قرار می گیرند.
- شاخه boot:
این شاخه که می تواند در یک پارتیشن جداگانه بوده و به پوشه boot متصل شده باشد، حاوی برنامه راه نداز بوت سیستم عامل می باشد. مانند Grub و Lilo.
- شاخه dev:
محل قرارگیری نقطه دسترسی های ابزارهای سخت افزاری است. مثلا تمام پورت ها، پارتیشن ها و... در اینجا دارای یک فایل هستند. برای مثال فایل dev/fd0 نشاندهنده فلاپی درایو سیستم است و به همین ترتیب. بسیاری از برنامه های کاربردی از این فایلهای دسترسی برای خواندن و نوشتن داده ها بر روی ابزار مورد نظرشان استفاده می کنند. مثلا یک برنامه کاربردی فایل dev/fd0 را باز کرده و در آن می نویسد. در حقیقت اطلاعات روی درایو فلاپی و دیسکی که در آن قرار دارد، نوشته خواهد شد.
- شاخه etc:
در این شاخه فایل های پیکربندی برنامه های سرویس دهنده و برخی فایلهای سیستمی دیگر قرار می گیرند. مثلا فایل پیکربندی سرویس دهنده وب آپاچی در سیستم های دبیان در etc/apache/http.conf قرار دارد و به همین ترتیب.
- شاخه home:
در این شاخه دایرکتوری های خانگی کاربران سیستم و اطلاعات آنها قرار می گیرد. بهتر است این شاخه در یک پارتیشن جداگانه قرار گرفته و متصل شود. این کار حفاظت از داده های کاربران را بالاتر خواهد برد. ضمنا در صورت نیاز به فرمت و نصب مجدد سیستم، اطلاعات کاربران دست نخورده باقی مانده و پس از نصب مجدد، کلیه تنظیمات شخصی و اطلاعات آنها بدون تغییر باقی خواهند ماند.
- شاخه lib:
این شاخه همانطور که از نام آن پیداست، محل قرار گیری فایل های کتابخانه برنامه ها است. این کتابخانه ها توسط برنامه های کاربردی و ابزارهای برنامه نویسی بکار گرفته می شوند.
- شاخه mnt:
این شاخه معمولا دارای زیرشاخه هایی مانند floppy و cdrom بوده و محل اتصال سنتی درایوهای فلاپی و CD-ROM می باشد. همچنین پارتیشن ها دیگر دیسک سخت را نیز می توانید در این شاخه متصل نمایید. البته اجباری به این کار وجود ندارد. مثلا در سیستم های مبتنی بر دبیان، درایوهای فلاپی و CDROM در شاخه های floppy و cdrom که در زیر ریشه قرار دارند، متصل می شوند. اتصال و برداشتن اتصال پارتیشن ها و درایوها با استفاده از دستور mount صورت می گیرد. اشتراکات شبکه را نیز می توانید در این شاخه متصل نمایید.
- شاخه proc:
این شاخه یک سیستم فایل مجازی است که برخی اطلاعات مربوط به سیستم و هسته از آن قابل دستیابی می باشد. مثلا فایل version در این شاخه حاوی اطلاعات هسته سیستم عامل مانند نسخه آن و ... می باشد.
- شاخه sbin:
دستورات و برنامه های مدیریتی سیستم در این شاخه قرار می گیرند که مخصوص کاربر root است.
- شاخه tmp:
محل قرارگیری برخی فایلهای موقتی برنامه های کاربردی است.
- شاخه usr:
بسیاری از برنامه های کاربردی در این شاخه نصب می شوند. مثلا Xwindow در این شاخه قرار دارد. همچنین برخی دستورات و دستورات مدیریتی نیز در مسیرهای usr/bin و usr/sbin قرار می گیرند.
- شاخه var:
این شاخه که معمولا در کامپیوترهای سرویس دهنده در یک پارتیشن جداگانه قرار می گیرد، مخصوص برنامه های سرویس دهنده ای مانند وب و FTP و بانکهای اطلاعاتی است. مثلا فایل های مربوط به یک وب سایت می توانند در var/www قرار گیرند. به دلیل اینکه در برخی از حملات DOS دیسک سخت سیستم با فایل های آشغال پر می شود، این شاخه را در یک پارتیشن جداگانه قرار می دهند که در صورت قرارگیری تحت حمله و پرشدن احتمالی دیسک سخت، کل سیستم عامل دچار وقفه نگردد و آسیب به همان قسمت محدود شود.
تمامی شاخه هایی که در بالا توضیح داده شد، می توانند در پارتیشن های جداگانه قرار داده شوند. ولی ضرورتی ندارد.
● پارتیشن swap
هنگام نصب لینوکس، پارتیشنی به نام swap می سازید. کاربرد این پارتیشن چیست؟ این پارتیشن که تحت ساختار سیستم فایل جایی متصل نمی شود، محل قرارگیری swapping file لینوکس که همان حافظه مجازی روی دیسک سخت است، می باشد. بهتر است حجم آنرا برابر یا 2 برابر حافظه سیستم خود تعیین نمایید.
technotux
ابزارهای ذخیره سازی مانند فلاپی دیسک ها، دیسک های سخت، درایوهای CD-ROM، درایوهای Zip و... تا قبل از اینکه سیستم عامل سیستم فایل را روی آنها تشکیل دهد، قابل استفاده نیستند.
سیستم فایلهای گوناگونی برای سیستم عامل های مبتنی بر یونیکس و لینوکس ارایه شده اند که برخی از آنها عبارتند از ext2، ext3، xfs، reiserfs و غیره. این سیستم فایل ها در جزییات فنی دارای تفاوت هایی با هم هستند ولی از نظر ساختاری که ایجاد می کنند مشابه بوده و تفاوت چندانی باهم ندارند. در این مقاله ما وارد جزییات فنی هر نوع از سیستم فایلها نشده و تنها ساختار آنها را بررسی خواهیم کرد.
● سیستم فایل یا درخت؟
سیستم فایل سیستم عامل های مبتنی بر یونیکس و لینوکس بصورت یک درخت وارونه پیاده سازی شده است. در یونیکس و لینوکس دیگر شما چیزی به نام درایوهای A، C و ... ندارید. تمام ابزارها و سیستم فایلها شاخه هایی از این درخت وارونه هستند. مرکز این درخت ریشه یا root نام دارد که بالاترین سطح سیستم فایل را تشکیل می دهد. زیر ریشه، پوشه هایی قرار دارند که سایر قسمت های سیستم فایل را تشکیل می دهند که اکنون درباره آنها توضیح می دهم. تصویر 1 سیستم فایل سیستم های مبتنی بر یونیکس و لینوکس را نشان می دهد.
همانطور که می بینید سیستم فایل از تعداد زیادی پوشه تشکیل شده است که این پوشه ها تقریبا در تمامی سیستم عامل های مبتنی بر یونیکس و لینوکس مشترک هستند. اکنون به تشریح تک تک این شاخه ها پرداخته و در میان آن توضیحات اضافه را به شما ارایه خواهم کرد.
● پارتیشن ها
در سیستم فایل سیستم عامل های مبتنی بر لینوکس و یونیکس، دیسک های سخت می توانند پارتیشن های متعددی داشته باشند. در این صورت هر پارتیشن دارای یک نقطه اتصال یا mount point می باشد که در آن نقطه به درخت سیستم فایل متصل می شود. مثلا می توانید اطلاعات کاربران سیستم را در یک پارتیشن جداگانه ذخیره نموده و نقطه اتصال آنرا home تعیین کنید که محل قرارگیری اطلاعات کاربران است و به همین ترتیب.
▪ بخش های درخت سیستم فایل
اکنون به بررسی تک تک شاخه های سیستم فایل می پردازیم. توجه داشته باشید که دسترسی به اکثر این شاخه ها فقط توسط کاربر ریشه امکان پذیر است.
- شاخه bin:
در این شاخه، دستورات سیستم عامل که برای تمام کاربران قابل دستیابی هستند و برخی دستورات مدیریتی سیستم قرار می گیرند.
- شاخه boot:
این شاخه که می تواند در یک پارتیشن جداگانه بوده و به پوشه boot متصل شده باشد، حاوی برنامه راه نداز بوت سیستم عامل می باشد. مانند Grub و Lilo.
- شاخه dev:
محل قرارگیری نقطه دسترسی های ابزارهای سخت افزاری است. مثلا تمام پورت ها، پارتیشن ها و... در اینجا دارای یک فایل هستند. برای مثال فایل dev/fd0 نشاندهنده فلاپی درایو سیستم است و به همین ترتیب. بسیاری از برنامه های کاربردی از این فایلهای دسترسی برای خواندن و نوشتن داده ها بر روی ابزار مورد نظرشان استفاده می کنند. مثلا یک برنامه کاربردی فایل dev/fd0 را باز کرده و در آن می نویسد. در حقیقت اطلاعات روی درایو فلاپی و دیسکی که در آن قرار دارد، نوشته خواهد شد.
- شاخه etc:
در این شاخه فایل های پیکربندی برنامه های سرویس دهنده و برخی فایلهای سیستمی دیگر قرار می گیرند. مثلا فایل پیکربندی سرویس دهنده وب آپاچی در سیستم های دبیان در etc/apache/http.conf قرار دارد و به همین ترتیب.
- شاخه home:
در این شاخه دایرکتوری های خانگی کاربران سیستم و اطلاعات آنها قرار می گیرد. بهتر است این شاخه در یک پارتیشن جداگانه قرار گرفته و متصل شود. این کار حفاظت از داده های کاربران را بالاتر خواهد برد. ضمنا در صورت نیاز به فرمت و نصب مجدد سیستم، اطلاعات کاربران دست نخورده باقی مانده و پس از نصب مجدد، کلیه تنظیمات شخصی و اطلاعات آنها بدون تغییر باقی خواهند ماند.
- شاخه lib:
این شاخه همانطور که از نام آن پیداست، محل قرار گیری فایل های کتابخانه برنامه ها است. این کتابخانه ها توسط برنامه های کاربردی و ابزارهای برنامه نویسی بکار گرفته می شوند.
- شاخه mnt:
این شاخه معمولا دارای زیرشاخه هایی مانند floppy و cdrom بوده و محل اتصال سنتی درایوهای فلاپی و CD-ROM می باشد. همچنین پارتیشن ها دیگر دیسک سخت را نیز می توانید در این شاخه متصل نمایید. البته اجباری به این کار وجود ندارد. مثلا در سیستم های مبتنی بر دبیان، درایوهای فلاپی و CDROM در شاخه های floppy و cdrom که در زیر ریشه قرار دارند، متصل می شوند. اتصال و برداشتن اتصال پارتیشن ها و درایوها با استفاده از دستور mount صورت می گیرد. اشتراکات شبکه را نیز می توانید در این شاخه متصل نمایید.
- شاخه proc:
این شاخه یک سیستم فایل مجازی است که برخی اطلاعات مربوط به سیستم و هسته از آن قابل دستیابی می باشد. مثلا فایل version در این شاخه حاوی اطلاعات هسته سیستم عامل مانند نسخه آن و ... می باشد.
- شاخه sbin:
دستورات و برنامه های مدیریتی سیستم در این شاخه قرار می گیرند که مخصوص کاربر root است.
- شاخه tmp:
محل قرارگیری برخی فایلهای موقتی برنامه های کاربردی است.
- شاخه usr:
بسیاری از برنامه های کاربردی در این شاخه نصب می شوند. مثلا Xwindow در این شاخه قرار دارد. همچنین برخی دستورات و دستورات مدیریتی نیز در مسیرهای usr/bin و usr/sbin قرار می گیرند.
- شاخه var:
این شاخه که معمولا در کامپیوترهای سرویس دهنده در یک پارتیشن جداگانه قرار می گیرد، مخصوص برنامه های سرویس دهنده ای مانند وب و FTP و بانکهای اطلاعاتی است. مثلا فایل های مربوط به یک وب سایت می توانند در var/www قرار گیرند. به دلیل اینکه در برخی از حملات DOS دیسک سخت سیستم با فایل های آشغال پر می شود، این شاخه را در یک پارتیشن جداگانه قرار می دهند که در صورت قرارگیری تحت حمله و پرشدن احتمالی دیسک سخت، کل سیستم عامل دچار وقفه نگردد و آسیب به همان قسمت محدود شود.
تمامی شاخه هایی که در بالا توضیح داده شد، می توانند در پارتیشن های جداگانه قرار داده شوند. ولی ضرورتی ندارد.
● پارتیشن swap
هنگام نصب لینوکس، پارتیشنی به نام swap می سازید. کاربرد این پارتیشن چیست؟ این پارتیشن که تحت ساختار سیستم فایل جایی متصل نمی شود، محل قرارگیری swapping file لینوکس که همان حافظه مجازی روی دیسک سخت است، می باشد. بهتر است حجم آنرا برابر یا 2 برابر حافظه سیستم خود تعیین نمایید.
technotux