شما عضو سایت نیستید, لطفا از طریق این لینک برای ثبت نام اقدام نمایید. |
mantiscccam mantiscccam mantiscccam mantiscccam mantiscccam mantiscccam mantiscccam mantiscccam mantiscccam |
09-01-2016, 02:11 | #1 |
کاربر سایت تاریخ عضویت: Aug 2012
نوشته ها: 2,079
تشکر: 15 تشکر شده 63 بار در 49 ارسال | ساختار سیستم فایل لینوکس
دوستان عزیز این مقاله توسط سایت http://www.technotux.org/ نوشته شده است ، من فقط کمی تصحیح کردم برای آشنایی بیشتر شما با لینوکس مطالعه این مقاله بسیار مفید است ساختار سیستم فایل لینوکس و یونیکس سیستم فایل هر کامپیوتر امکان ذخیره سازی فایل* ها و اطلاعات را روی آن فراهم می*سازد. هنگامی که از داخل برنامه واژه پرداز خود ، سندی را ذخیره می*کنید ، این سیستم فایل است که تعیین *میکند سند چگونه و کجا ذخیره شود. ابزار های ذخیره سازی مانند فلاپی دیسک* ها، دیسک* های سخت، درایو های CD-ROM، درایو های Zip و... تا قبل از اینکه سیستم* عامل سیستم فایل را روی آنها تشکیل دهد، قابل استفاده نیستند. سیستم فایل های گوناگونی برای سیستم* عامل* های مبتنی بر یونیکس و لینوکس ارائه شده* اند که برخی از آنها عبارتند از ext2، ext3، xfs، reiserfs و ...این سیستم فایل*ها در جزئیات فنی دارای تفاوت هایی با هم هستند ولی از نظر ساختاری که ایجاد می*کنند مشابه بوده و تفاوت چندانی با هم ندارند. در این مقاله ما وارد جزئیات فنی هر نوع از سیستم فایل ها نشده و تنها ساختار آنها را بررسی خواهیم کرد. سیستم فایل یا درخت سیستم فایل سیستم* عامل* های مبتنی بر یونیکس و لینوکس به صورت یک درخت وارونه پیاده سازی شده است. در یونیکس و لینوکس دیگر شما چیزی به نام درایوهای A، C و ... ندارید. تمام ابزار ها و سیستم فایل ها شاخه* هایی از این درخت وارونه هستند. مرکز این درخت ریشه یا root نام دارد که بالاترین سطح سیستم فایل را تشکیل می*دهد. زیر ریشه، پوشه* هایی قرار دارند که سایر قسمت *های سیستم فایل را تشکیل می*دهند که اکنون درباره آنها توضیح می*دهم. تصویر ۱ سیستم فایل سیستم*های مبتنی بر یونیکس و لینوکس را نشان میدهد. همان طور که *میبینید سیستم فایل از تعداد زیادی پوشه تشکیل شده *است که این پوشه* ها تقریبا در تمامی سیستم *عامل *های مبتنی بر یونیکس و لینوکس مشترک هستند. اکنون به تشریح تک تک این شاخه* ها پرداخته و در میان آن توضیحات اضافه را به شما ارائه خواهم کرد. پارتیشن ها در سیستم فایل سیستم *عامل* های مبتنی بر لینوکس و یونیکس، دیسک های سخت می*توانند پارتیشن *های متعددی داشته باشند. در این صورت هر پارتیشن دارای یک نقطه اتصال یا mount point می*باشد که در آن نقطه به درخت سیستم فایل متصل میشود. مثلا میتوانید اطلاعات کاربران سیستم را در یک پارتیشن جداگانه ذخیره نموده و نقطه اتصال آن را home تعیین کنید که محل قرار گیری اطلاعات کاربران است و به همین ترتیب. طریقه نام گذاری پارتیشن ها لینوکس پارتیشن ها را با ترکیبی از حروف و اعداد نام گذاری میکند. اگر شما عادت کرده اید که پارتیشن اول خود را با Drive C بشناسید امکان دارد در لینوکس کمی گیج شوید. ولی روش لینوکس در نام گذاری انعطاف پذیرتر است و اطلاعات بیشتری در مورد هارد به ما میدهد. روش نام گذاری بر اساس فایل تنظیم شده و نام گذاری این فایلها به ترتیب زیر است. /dev/xxyN /dev/ نام دایرکتوری است که تمام فایل های مربوط به وسایل (Devices) آنجا هستند. از آنجایی که پارتیشن ها روی هارد دیسک قرار دارند و هارد دیسک یک وسیله ( Device ) محسوب میشود فایل هایی که به پارتیشن ها مربوط میشوند همه در این دایرکتوری قرار دارند. xx دو حرف اول نام پارتیشن ، نوع درایوی که پارتیشن روی آن قرار دارد را مشخص میکند. برای درایوهای IDE از دو حرف hd استفاده میشود و برای درایوهای SCSI از دو حرف sd . y این حرف نشان میدهد که پارتیشن روی کدام هارد دیسک قرار دارد. اگر شما فقط از یک هارد دیسک استفاده میکنید این حرف همیشه a خواهد بود. اگر از بیش از یک هارددیسک در کامپیوتر خود دارید حرف b به هارد دوم اشاره میکند و به همین ترتیب ادامه پیدا میکند. N شماره آخر نشان دهنده پارتیشن است. شماره های 1 تا 4 به پارتیشن هایی اطلاق میشود که از نوع Primary یا Extended باشند. پارتیشن های منطقی ( Logical Partitions ) شماره های 5 به بعد را میگیرند. به عنوان مثال /dev/hda3 سومین پارتیشن از نوع Primary یا Extended است که روی اولین درایو IDE قرار دارد. در مثال دیگر /dev/sdb6 به دومین پارتیشن منطقی روی دومین هارددیسک SCSI اشاره دارد. برای روشن تر شدن موضوع به مثال زیر توجه کنید. فرض کنید که من هارد دیسک IDE خود را در ویندوز به این صورت پارتیشن بندی کرده ام: حال تصمیم گرفته ام که لینوکس را روی درایو F: نصب کنم. برای این کار درایو F: را به سه پارتیشن دیگر تقسیم کرده ام: بعد از این کار اگر کامپیوتر خود را با ویندوز راه اندازی کنید دیگر درایو F: را نخواهید دید. ولی در محیط لینوکس میتوانید تمام درایو ها را مشاهده کنید. انواع فرمت پارتیشن ها همان طور که در ویندوز هر یک از پارتیشن های شما ممکن است از نوع FAT32 یا NTFS باشند در لینوکس هم هر پارتیشن میتواند دارای فرمتهای مختلف باشد. البته در لینوکس این تقسیم بندی قدری متنوع تر است و هر کدام برای منظور خاصی به کار میروند. هنگام نصب رد هت به شما توصیه میشود که حداقل سه پارتیشن ایجاد کنید. یکی برای حافظه مجازی با فرمت SWAP و دو پارتیشن دیگر برای ریشه و امور boot شدن با فرمت ext3 . SWAP این فرمت برای پارتیشنی به کار میرود که لینوکس برای ایجاد حافظه مجازی استفاده میکند. فرض کنید میخواهید از برنامه ای استفاده کنید که احتیاج به مقدار زیادی حافظه RAM دارد. لینوکس از این فرمت برای شبیه سازی RAM روی هارد دیسک استفاده میکند. البته این نمیتواند به عنوان جایگزینی برای RAM در نظر گرفته شود زیرا سرعت آن بسیار پایین تر از RAM است. ولی تا وقتی که شما RAM خود را افزایش دهید میتواند کار شما را راه بیندازد. اندازه این پارتیشن باشد باید به اندازه حافظه RAM ویا دوبرابر آن باشد. اگر فضای کافی روی هارد دیسک خود دارید پیشنهاد میشود فضایی معادل دو برابر RAM به این پارتیشن اختصاص دهید. البته باید توجه داشته باشید که این مقدار بدون توجه به مقدار حافظه ای که دارید باید بین 32MB تا 2GB باشد. به عنوان مثال اگر مقدار RAM شما 2GB است نمیتوانید 4GB به این پارتیشن اختصاص دهید. ext2 این فرمت برای زخیره اطلاعات معمولی که کاربر به طور روزمره با آن سروکار دارد به کار میرود. اما از رد هت 7.1 به بعد جای خود را به ext3 داد. ext3 این فرمت نسخه ارتقا یافته ext2 است که نسبت به نسخه قبل خود دارای چندین مزیت است. همان طور که میدانید قبل از اینکه کامپیوتر خود را خاموش کنید باید آن را Shut Down کنید. اگر به هر دلیلی این کار انجام نشود دفعه بعد که کامپیوتر را روشن میکنید درایو ها باید از نظر انسجام اطلاعات تست شوند. ولی در فرمت ext3 از روشی به نام Journaling استفاده میشود که این کار در مدت زمان بسیار اندکی صورت میگیرد و این ربطی به اندازه درایو شما ندارد. از نظر انسجام داده ها و سرعت دسترسی نیز این فرمت بهتر از نسخه قبلی خود عمل میکند. ضمنا تبدیل از ext2 به ext3 و بالعکس به آسانی بدون از دست دادن اطلاعات امکان پذیر است. vfat این نوع پارتیشن برای اشاره به درایوهایی است که در ویندوز به نام FAT32 شناخته میشوند. درایوهای اصلی لینوکس نمیتوانند با این فرمت پارتیشن بندی شده باشند، ولی امکان خواندن و نوشتن در این پارتیشن*ها بدون مشکل وجود دارد. RAID یا Redundant Array of Independent Disks فرض کنید که چند هارد دیسک با اندازه های کوچک دارید و میخواهید این هارد دیسکها به عنوان یک هارد دیسک بزرگ عمل کنند. این کار برای افزایش راندمان خواندن/نوشتن همچنین برای مواقعی که میخواهید در آن واحد اطلاعاتتان روی چند هارد دیسک نوشته شود استفاده میشود. این نوع پارتیشن بندی دارای انواع سخت افزاری و نرم افزاری است که هر کدام به سطوح مختلف تقسیم میشوند. LVM یا Logical Volume Manager از رد هت 8 به بعد فرمت جدیدی ارائه شد که با استفاده از آن میتوانید اندازه پارتیشن ها را بنا بر نیازتان تغییر دهید بدون اینکه احتیاج به پارتیشن بندی مجدد داشته باشید. حتا اگر هارد دیسک جدیدی خریداری کرده اید میتوانید آن را به پارتیشن های موجود اضافه کنید. جزییات فرمت های RAID و LVM از حوزه این مقاله خارج است و هر کدام مقاله جداگانه ای را طلب میکند. بخش*های درخت سیستم فایل تمامی شاخه* هایی که در بالا توضیح داده شد، میتوانند در پارتیشن های جداگانه قرار داده شوند. ولی ضرورتی ندارد.اکنون به بررسی تک تک شاخه*های سیستم فایل می*پردازیم. توجه داشته باشید که دسترسی به اکثر این شاخه *ها فقط توسط کاربر ریشه امکان پذیر است. شاخه 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 دیسک سخت سیستم با فایل *های آشغال پر میشود، این شاخه را در یک پارتیشن جداگانه قرار میدهند که در صورت قرار گیری تحت حمله و پر شدن احتمالی دیسک سخت، کل سیستم عامل دچار وقفه نگردد و آسیب به همان قسمت محدود شود. |
برچسب ها |
ساختار, سیستم, فایل, لینوکس |
| |