تاریخچه Linux

مقدمه

تاریخچه Linux
در سال ۱۹۹۱، یکی از دانشجویان دانشگاه هلسینکی به نام Linus Torvalds که از سیستم عامل موجود ناراضی بود به فکر افتاد که از سیستم عامل برای کارهای خود استفاده کند. Unix یک سیستم عامل قدرتمند محسوب می شد، ولی قیمت ان گران بود.بنابر این Torvalds به فکر نوشتن نسخه ای از Unix برای خود افتاد.این کار ساده بود. وی پس از تنظیم قسمت های اصلی برنامه، از طریق اینترنت مجموعه ای از برنامه نویسان با استعداد تشکیل داد و افراد این مجموعه به کمک هم سیستم عامل یا هسته ای به وجود اوردند که امروزه به Linux موسوم است.

یکی از مهمترین تصمیماتی که Torvalds در شروع کار گرفت، توزیع و اشتراک گذاری رایگان کد هسته لینوکس برای افرادی بود که مایل بودند در توسعه این سیستم عامل سهیم باشند.امروزه نیز لینوکس به صورت رایگان و عمدتا از طریق اینترنت توزیع می شود.

کدهای منبع ازاد (open source) برای عموم ساخته می شوند و هر فردی می تواند در ساخت و توسعه ان، بدون زیر پا گذاشتن قانون و تملک انحصاری ان شرکت داشته باشد.هر فردی می تواند کد منبع را مطابق میل خود، حتی برای سرگرمی ،تغییر داده و نسخه ای از ان را منتشر سازد. ولی انچه که افراد نمی توانند تغییر دهند، جلوگیری از هر شخص دیگر برای استفاده، تغییر و توزیع ان نسخه از نرم افزار است که شما ان را تغییر داده اید. اعمال این محدودیت که نمی تواند به طور انحصاری به شخص یا شرکتی تعلق داشته باشد باعث پیشرفت های حیرت انگیزی در این صنعت گردید.

در اوایل بهار ۱۹۹۴، اولین نسخه واقعی لینوکس (نسخه ۱٫۰) برای استفاده عموم عرضه گردید.حتی در ان زمان، این سیستم عامل، یک سیستم عامل خوب محسوب می شد و از ویژگی های رایگانی که در سیستم عامل های دیگر به قیمت صدها دلار به فروش می رسید برخوردار بود.

چرا Linux ؟
لینوکس یک نرم افزار رایگان قابل دسترس می باشد. کد منبع لینوکس که قلب و روح سیستم عامل محسوب می شود نیز در دسترس عموم می باشد.سازمان (Free Software Foundation (FSF در ساخت و تهیه بیشتر نرم افزار های کمکی جهت سهولت بخشیدن به کار و استفاده با لینوکس همکاری می کند.

شرکت .Red Hat, Inc سیستم عامل پایه لینوکس را با نرم افزار های دیگر (که ساخته شرکتهای دیگر و یا خود Red Hat می باشند) ادغام می کند و یک بسته نرم افزاری ارايه می دهد که گاهی اوقات ارزش ان بیش از کلیه نسخه های ارائه شده است. این مجموعه را distribution یا flavor لینوکس می نامند. لينوكس به خودي خود رايگان بوده و هست. كاري كه شرکت هایی مثل ردهت انجام می دهند، كامپايل كردن بخش ها و نرم افزارهاي مختلف و ارائه آن بصورت يك فرمت قابل توزيع همانند ساير سيستم عاملها است، تا مردم عادي نيز بتوانند از آن استفاده كنند. همچنین با رابطهاي گرافيكي كاربر مانند GNOME، توزيع هاي لينوكس در بين مردم بسيار گسترش يافته است.

امروزه در دنیایی متکی بر فناوری اطلاعات زندگی می‌کنیم و به خطر افتادن جریان اطلاعات در هر لحظه منجر به بروز خسارت‌های جبران ناپذیری خواهد شد. بر این اساس امنیت در بین سیستم های عامل از اهمیت زیادی برخوردار است .لینوکس در این زمینه بسیار قدرتمند است.
لینوکس از ابتدا برای محیط‌های شبکه‌ای و چند کاربره طراحی شده است و همین باعث رعایت مسائل امنیتی در ان شده است.

کاربرد های Linux
از Red Hat Linux می توان به عنوان یک ابزار میز کار، یک سرور شبکه و دروازه اینترنت، یک دیواره اتشین (Firewall)، پایگاه یک سیستم از پیش تعبیه شده (مانند یک VCR هوشمند یا یک ربات) و یا حتی به صورت یک سوپر کامپیوتر چند پردازنده ای استفاده کرد.
ابزار های پر مصرف میز کار : در Red Hat نرم افزار های دیگر مانند مجموعه برنامه های OpenOffice برای سهولت کار کاربران قرار داده شده است. مجموعه برنامه های OpenOffice شامل یک واژه پرداز کامل، صفحه های گسترده، برنامه نمایش محتویات، یک برنامه رسم گرافیک و ابزارهای ساخت صفحات وب می باشد. با نصب Red Hat Linux، مجموعه OpenOffice نصب شده و نشانه های مربوط به برنامه های ان برای سهولت دستیابی به انها در نوار منو قرار داده می شوند.

مطالب مربوط به چند رسانه ای ها: Red Hat Linux برای استفاده شما ابزار های متعدد چند رسانه ای را در یک بسته قرار داده است. به کمک این بسته می توان موسیقی پخش کرده و به منابع چند رسانه ای مانند ایستگاه های رادیو یی در اینترنت گوش داد.در لینوکس میتوان عکس و دیگر اقلام را از دوربین و دستگاه پخش MP3 به کامپیوتر منتقل کرد.
خدمات شبکه ای: Red Hat Linux به عنوان سرور مبتنی بر شبکه نیز به کار می رود.محبوبیت اولیه Linux مدیون ارائه خدمات وب و اشتراک گذاری پرونده ها و چاپگر به طور کامل است.

استفاده از ابزارها و خدمات شبکه ای
سرور وب Apache: بیشتر سرورهای وب در اینترنت، توسط سرور وب Open Source Apache اداره
می شوند. شما می توانید یک سرور وب ساده را با نصب نرم افزار Apache دایر کنید.

OpenSSH : نسخه منبع ازاد secure Shell امکان برقراری یک ارتباط امن در اینترنت را فراهم می سازد. secure Shell به مراتب امن تر از telnet می باشد. تحت OpenSSH می توانید بدون اینکه فرد دیگری قادر به شنیدن مکالمات شما باشد با دیگران ارتباط برقرار کنید.

VPN (Virtual Private Network) : VPN ارتباطات در یک شبکه نا امن، مثل اینترنت را در ساخت شبکه های شخصی، رمز نویسی می کند. وجود بسته های نرم افزار Red Hat Linux و ابزار های ان برای برقراری یک ارتباط امن بین دو کامپیوتر یا شبکه های خصوصی در اینترنت لازم می باشد.
دیواره های اتشین (Firewalls): برای دور نگه داشتن نفوذ گران، Red Hat Linux با ارائه ابزار های حفاظتی به شما امکان می هد تا بتوانید یک دیواره اتشین برای سیستم خود بسازید.از لحاظ اعمال این دیواره اتشین، Red Hat Linux از انعطاف پذیری کاملی بر خوردار است.
موارد فوق نمونه ای از کارهایی است که می توانید تحت Red Hat Linux انجام دهید.
توزیع (distribution)

گفتنی ها در باره لینوکس بسیار است.در این قسمت به مفهوم انواع توزیع ((distribution های لینوکس خواهیم پرداخت.
يكي از سوالات مطرح براي كاربراني كه قصد كار باسيستم عامل لينوكس را دارند، انتخاب توزيع است و اينكه چرا انواع مختلفي از لينوكس وجود دارد و كداميك مناسب تر است؟

توزيع چيست؟
سيستم عامل لينوكس به خودي خود يك سيستم عامل آزاد و رايگان است. لينوكس را هر كس مي تواند جمع آوري كرده و به نام خودش به رايگان عرضه كرده و به فروش برساند. علت چيست؟ سيستم هاي لينوكس از بخش هاي بسيار زيادي تشكيل شده كه هر بخش آن توسط عده اي خاص توسعه مي يابد كه هر كدام در يك نقطه از جهان قرار دارند. مي گويند لينوكس مانند هواپيمايي است كه هر قسمت آن را در يك كشور ساخته اند. (البته اين نكته نقطه قوت آن به شمار مي رود. ) در صورتي كه شما به عنوان يك كاربر بخواهيد يك لينوكس داشته باشيد، بايد تمام اين قطعات را جداگانه جمع آوري كرده و پس از كامپايل استفاده نماييد.

درصد كمي از مردم اين امكان و توانايي را دارند. بنابراين افراد و شركت هاي محدودي علاوه بر جمع آوري اين قطعات مجزا، براي مجموعه گردآوري شده توسط خود برنامه هايي نصب و مديريت نموده تا كاربران كار نصب و مديريت سيستم عامل به آساني انجام دهند. به اين مجموعه ها كه توسط افراد و شركت هاي مختلف گردآوري شده است، توزيع يا Distribution لينوكس مي گويند. به زبان ساده تر لينوكس يك نسخه‌ي اصل بيشتر ندارد: GNU/Linux. اين نسخه‌ي اصلي يا همان kernel است.تعدادی شركت يا دانشگاه يا هر گروه ديگری يك سري امکانات به این هسته اضافه مي‌كنند. مثل محيط گرافيكي و …. به هر كدام از اینها يك Distrbution از لينوكس يا اصطلاحا يك Distro می گویند.
علت تنوع توزيع ها چيست؟

هر يك از توزيع هاي لينوكس داراي ويژگي هاي خاصي است كه آن را از توزيع ديگر متمايز مي كند. مثلا ممكن است نصب آنها با هم تفاوت داشته باشند (االبته اصول نصب همه لينوكس ها يكسان است) و يا ابزارهاي مديريت گرافيكي تهيه شده با هم متفاوت باشند و يا نسخه برنامه هايي كه با يك توزيع خاص ارائه مي شوند جديدتر يا قديمي تر باشند، محل فايل هاي پيكربندي آنها متفاوت باشد و يا ممكن است توزيع هايي براي امور خاصي مانند سرويس دهنده، ايستگاههاي كاري، كامپيوترهاي قديمي، مديريت شبكه طراحي شده باشند. بنابراين هر فرد يا گروه خلاقي مي تواند توزيع مخصوص خود را ارائه نمايد.

مثلا برخي از توزيع ها براي نصب و پيكربندي آسان بهينه سازي شده اند. توزيع ها به دو صورت تجاري و رايگان ارائه مي شوند. يعني در ازاي دريافت برخي از آنها بايد پول پرداخت شود و برخي از آنها رايگان هستند. البته به هر حال شما در اكثر موارد قادريد تا يك توزيع لينوكس را چه رايگان و چه تجاري به تعداد نامحدود كپي و توزيع نماييد. اكثر توزيع هاي غير تجاري و برخي از توزيع هاي تجاري بصورت رايگان از سايت هاي مربوطه قابل دانلود هستند. در صورتي كه لينوكس را ياد بگيريد، مهم نيست از چه توزيعي استفاده كنيد. چون همه آنها ذاتا شبيه هم هستند و تمام اموري كه در يك توزيع انجام مي دهيد، در توزيع ديگر نيز قابل انجام خواهد بود (شايد به نحو ديگر). برخي از توزيع ها به دليل تغييرات و بهينه سازي در توزيع هاي ديگر ايجاد شده اند كه آنها توزيع هاي مبتني بر يك توزيع مي نامند. مثلا توزيع ليبرانت يك توزيع مبتني بر دبيان است. يا مثلا توزيع فارسي شبديكس يك توزيع مبتني بر كناپيكس است كه در آن امكانات فارسي اضافه شده است.

كدام توزيع؟
همانطوري كه در بالا اشاره كرديم، هر يك از توزيع ها داراي ويژگي هاي خاص خود هستند. به عنوان مثال مراحل نصب يك توزيع بسيار راحت است و توزيع ديگر از نظر پايداري و امنيت مطرح مي باشد.
انتخاب توزيع بستگي به شرايط زير دارد:
سطح علمي كاربر
مورد استفاده از لينوكس
ويژگي هاي توزيع

بازار
الف: سطح علمي كاربر: كاربراني كه داراي آشنايي كمتري با لينوكس هستند، جذب توزيع هایي مي شوند كه داراي ابزارهاي پيكربندي گرافيكي است كه آنها قادر مي سازد راحت تر سيستم شان را اداره و نصب نمايند. همچنين داراي نرم افزارهاي جديدي باشد كه به آنها حداكثر قابليت ها را ارائه نمايد. از توزيع هايي كه براي كاربران تازه كار بسيار مناسب هستند، مي توان فدورا، زوزه (SuSE)، ردهت (RedHat)، مندريك (Mandrake)، ليندوز (Lindows)، ليكوريس (Lycoris)، مپيس (Mepis) و XandarOS را نام برد. كاربراني كه پيشرفته تر هستند و ابزارهاي پيكربندي گرافيكي برايشان مهم نبوده، كيفيت و سرعت سيستم برايشان مهم تر است جذب توزيع هاي حرفه اي مانند دبيان (Debian)، جنتو (Gentoo) و اسلاكور

(Slackware) مي شوند. دبيان به سخت نصب شدن معروف بوده و اسلاكور هم هيچ ابزار پيكربندي گرافيكي ندارد. ولي در عوض هر دو اين توزيع ها بسيار با كيفيت و پايدار هستند.
ب: مورد استفاده از لينوكس: برخي از توزيع ها مخصوص نيازهاي خاصي طراحي شده اند. امروزه از اصلي ترين نيازها مي توان به سرويس دهنده ها و ايستگاه هاي كاري اشاره نمود.البته برخي از توزيع ها مانند ردهت و دبيان اين امكان را به شما مي دهند كه هنگام نصب، نوع مصرف آنها را تعيين كنيد و با توجه به انتخاب شما، نرم افزارهاي مربوط به آن نصب خواهند شد. برخي از توزيع تنها مخصوص يك نياز طراحي شده اند و داراي ابزارهاي مربوط به آن نياز مي باشند. مثلا لينوكس كناپيكس (Knoppix) كه يك توزيع روي ميزي است، تنها

داراي ابزارهايي است كه براي كاربران روي ميزي كاربرد دارد و يا لينوكس SOL وظايفي دارد كه تنها به درد يك سرويس دهنده مي خورد.
ج: ويژگي هاي توزيع: برخي اوقات يك توزيع داراي ويژگي هاي است كه آن را براي براي استفاده قابل انتخاب مي سازد. مثلا لينوكس اورالوكس (Oralux) داراي امكانات مخصوص نابينايان مي باشد. مانند شناسايي صفحه نمايش هاي بريل و يا مرور صوتي وب و پست الكترونيك. ويا يك لينوكس ممكن است سخت افزارهاي خاصي را به خوبي پشتيباني نمايد. و يا ممكن است سرعت وكيفيت يك توزيع يا آساني استفاده از آن ملاك انتخاب قرار گيرد.
د: بازار: ممكن است موجود بودن يك توزيع در بازار و يا نبود آن ملاك انتخاب باشد.

بالاخره كدام را انتخاب كنيم؟
خوب، در بازار ايران در مورد انتخاب توزيع محدوديت هاي فراواني وجود دارد. با توجه به توزيع هاي موجود در بازار، براي مصارف گفته شده توزيع هاي مقابل آن توصيه مي شوند:
مصرف ميزكار (Desktop)، ايستگاه كاري، كاربران تازه كار: زوزه (SuSE)، ردهت (Redhat)، ليبرانت (Libranet) ، فدورا (Fedora )
مصرف ميزكار(Desktop)، ايستگاه كاري، كاربران حرفه اي: دبيان (Debian)، اسلاكور (Slackware)، ليبرانت (Libranet) ، فدورا (Fedora )
مصرف سرويس دهنده: دبيان (Debian)، ردهت (Redhat)

ديسك هاي زنده: كناپيكس (knoppix)، شبديكس (Shabdix)
توضيح اينكه ديسك هاي زنده، لينوكس هايي هستند كه كاملا از روي CD اجرا مي شوند و نيازي به نصب آنها روي هارد ديسك سيستم نمي باشد. اين ديسك ها براي مصارف آموزشي، عيب زدايي و نمايشي مناسب مي باشند.

یک مقایسه اجمالی
قبل از بحث در باره مفاهیم کلی لینوکس گفتم شاید بد نباشه لینوکس رو با یکی دو تا سیستم عامل دیگر مقایسه کنیم، این جوری شاید بهتر بشه در مورد لینوکس قضاوت کرد!
متن زیر مقایسه بین لینوکس ،ویندوز ۲۰۰۰ و سیستم عامل Open Source دیگری به نام FreeBSD است که البته به نظر میاد نویسندش از طرفدارای سرسخت لینوکس باشه!
مقايسه اجمالي سيستم عاملهاي ويندوز ۲۰۰۰، لينوکس و FreeBSD :

قابلیت اطمینان
Windows 2000: تمام کاربران اين نرم افزار با صفحه آبی رنگ مرگ! در هنگام قفل کردن سيستم آشنا می باشند. قابليت اطمينان ضعيف يکی از عمده ترين معايب ويندوز است. برخي از اين ايرادات در ويندوز ۲۰۰۰ رفع گرديده اند. اما افزايش حجم کدها مشکلات بيشتری از نظر قابليت اطمينان را به وجود آورده است. ويندوز ۲۰۰۰ از منابع سيستمی زيادی استفاده مي کند و با توجه به معيوب شدن تدريجی حافظه و خراب شدن فايل های سيستمی، استفاده از سيستم برای بيش از چند ماه کار بسيار مشکلی است.
Linux: قابليت اطمينان Linux مشهور است، سرور ها غالبا برای سال ها فعال می مانند. اگرچه ورودی/خروجی ديسک در حالت پيش فرض ناهمگام می باشد که قابليت اطمينان کمتری برای عمليات مبتنی بر تعاملات دارد و ممکن است فايل سيستم را بعد از بروز اشکال در سيستم و يا قطع برق معيوب کند. اما در کل براي استفاده کنندگان Linux يک سيستم عامل قابل اطمينان محسوب می شود.

FreeBSD: FreeBSD بسيار قدرتمند است(سرور هاي فعال با دوره های عمر چند ساله دليل اين ادعا است). سيستم فايلی جديد Soft Updates ورودی و خروجی هاي ديسک را برای بهترين عملکرد بهينه مي کند و در عين حال قابليت اطمينان را براي کاربردهایی از قبيل پايگاه های داده که بر اساس تعاملات (Transactions) می باشند تضمين می کند.

کارایی
Windows 2000: ويندوز برای نرم افزارهای متداول و Desktop ها مناسب است اما قابليت تحمل بارهای سنگين شبکه را ندارد. تعداد محدودی از سازمان ها تلاش می کنند تا از آن به عنوان يک سرور اينترنت استفاده کنند. به عنوان مثال Barnesandnobel.Com که از ويندوز NT استفاده مي کند را مي توان با پيغامهای خطايی که سرور آنها معمولا توليد مي کند شناخت. حتي سايت Hotmail که متعلق به خود Microsoft (توليد کننده ويندوز) مي باشد مدتها از FreeBSD به عنوان سيستم عامل خود استفاده نمود.

Linux: Linux براي بسياری از کابران به خوبی کار می کند اما با اين وجود قابليت اجرايی تحت بار سنگين شبکه بهينه نيست. قابليت اجرايی شبکه تحت هسته لينوکس ۲٫۳ پايين تر از ظرفيت FreeBSD با سخت افزار مشابه می باشد. با عرضه شدن هسته لينوکس ۲٫۴ که يک حافظه مجازی جديد مشابه FreeBSD می باشد، وضعيت بهبود يافته است. از آنجاييکه هر دوی اين سيستم ها Open Source می باشند، صرفه اقتصادی بالايی دارند به همين دليل کارکرد Linux وFreeBSD به سرعت در حال همگرايی مي باشد.

FreeBSD: FreeBSD انتخاب برتر سيستم برای قابليت اجرايی بالای کاربردهای شبکه می باشد.FreeBSD از ساير سيستم هایی که روی سخت افزار يکسانی کار می کنند، بهتر و بيشتر کارایی دارد. يکی از بزرگترین و شلوغ ترين سرورهای اينترنتی به آدرس ftp://ftp.cdrom.com (ftp://ftp.cdrom.com/) از FreeBSD براي خدمات رسانی به بيش از ۱٫۲ تريليون بايت Download در روز استفاده می کند. بسياری از سرورها از FreeBSD به دليل توانایی آن در پشتيبانی از ترافيک سنگين شبکه با قابليت اطمينان و اجرای بالا به عنوان OS اصلی خود استفاده می کنند.

امنیت

Windows 2000: Microsoft ادعا مي کند که محصولاتش ايمن است اما هيچ تضمينی در اين مورد ارائه نمی کند. نرم افزار های آنها قابل بازنگری و بررسی توسط بقيه نمی باشد و از آنجاییکه ویندوز Close source می باشد هیچ راهی برای کاربران به منظور تشخیص و تغییر هیچ یک از مخاطرات امنیتی که معمولا درباره سیستم های ویندوز منتشر می شوند وجود ندارد.
Linux: طبیعت Open source لینوکس به هرکس این اجازه رامی دهد که امنیت کد را مورد بررسی قرار داده و آن را تغییر دهد، اما واقعیت این است که پایگاه کد لینوکس توسط برنامه نویسانی بی تجربه و در مدت زمانی کم تعریف شده است. هیچ سیاست بازنگری رسمی برای کد وجود ندارد و به همین علت لینوکس هر سال در لیست پيشنهادات CERT برای Unix قرار دارد. این مسئله با این واقعیت همراه است که شرکت هایی چون Redhat به ارایه خدماتی که به ناامنی مشهور می باشند، گرایش دارند. با اين وجود لینوکس نیز از سیستم دیوار آتش قدرتمند و ابزارهای تشخیص نفوذ فراوانی پشتیبانی می کند.

FreeBSD: FreeBSD برای چندین سال تحت تست مداوم بوده است. تمامی اجزای سیستم مورد چک و بازبینی مجدد قرار گرفته اند تا اشکالات مرتبط با امنیت کشف شوند. از آنجاییکه کل سیستم Open source می باشد، امنیت سیستم توسط دیگران قابل بررسی بوده است و این بررسی نیز به طور کامل انجام شده است. نصب اولیه FreeBSD هنوز از پیشنهاد امنیتی CERT در سال ۲۰۰۰ تبعیت می کند. FreeBSD همچنین سطوح امنيتی را در سطح هسته (Kernel) سیستم عامل پیاده سازی می کند که بسیار قدرتمند تر از پیاده سازی در سطح اجرا می باشد. FreeBSD شامل یک سیستم دیوار امنیتی (Firewall) بسیار قدرتمند و ابزارهای متعددی برای جستجوی نفوذها می باشد.

سیستم فایلی
Windows 2000: فایل سیستم FAT و NTFS متعلق به Microsoft هردو برای بیش از ۱۵ سال به دلیل عدم سازگاری با سیستم های فايلی PC-Based قدیمی تر دچار مشکل بوده اند. اين سیستم های فایلی برای باگ های زیاد و کاربردهای مخرب سرورهای امروزی طراحی نشده وحتی اعتقادی به طراحی شدن با سیستم عامل چند کاربره و یا شبکه ای نداشتند.

Linux: سیستم فایلیی که در لینوکس به کار می رود،کار خود را با یک روش الحاق سازی غیر همزمان خطرناک انجام می دهد که غالبا یک خرابی بزرگ در سیستم (crash)، سیستم را به طور دائمی تخریب می کند در حالی که در Solaris یا FreeBSD اشکال با میزان کمی از دست دادن اطلاعات تصحیح شده و سیستم قابل بازیابی می باشد.البته چندین نسخه جدید فایل سیستم برای لینوکس وجود دارد که قسمت های زیادی از این اشکالات را حل کرده اند.(مانند Ext3)

FreeBSD: FreeBSD از سیستم فایلی یونیکس (UFS) استفاده می کند که اندکی پیچیده تر از سیستم فایلی Ext2 لینوکس می باشد. این فایل سیستم (UFS) با گزینه Sofupdate، راهی بهتر برای اطمینان از بی نقص بودن و اطلاعات سیستم فایلی ارایه می دهد. این گزینه ورودی/خروجی همزمان را کاهش و ورودی/خروجی غیرهمزمان را افزایش می دهد. چرا که تغییرات برروی یک UFS بسته به ساختار سیستم فایلی و نه به صورت Sector basis (بخش گرا) هماهنگ می شود. این موضوع، هماهنگی همیشگی سیستم فایلی در فاصله دو به روز رسانی را تضمین می کند. سیستم فایلی FreeBSD همچنین نشانه هاي (Flags) فایلی که باعث محدودیت متجاوزان (شامل نفوذگرها یا کاربران ناخواسته يا …) در تراکنشها می شود را پشتیباني می کند. تعداد زيادی از این نشانه ها وجود دارند که می توان آنها را به یک فایل اضافه نمود.به عنوان مثال نشانه “غیر قابل تغییر” که هیچ گونه اجازه تغییر یا حذفی در فایل یا دایرکتوری را اجازه نمی دهد.نشانه های متداول دیگر عبارتند از “فقط افزودنی”، “غیر قابل حذف” و “آرشیو”. با تلفیق این امکانات با سطوح امنیتی سطح هسته (Kernel) یک سیستم غیر قابل نفوذ به دست می آید.

 

گردانندگان دستگاه جانبی
Windows 2000 :Microsoft ارتباط بسیار خوبی با تولید کنندگان درایور دارد.غالبا هنگام استفاده از یک درایور بین نسخه های مختلف ویندوز مشکلاتی پیش می آید اما به طور کلی کاربران Windows دسترسی بسیار عالی و سریع به درایور های دستگاه ها دارند.

Linux: جامعه لینوکس عمدا برای تشویق تولید کنندگان به تولید درایور های Open source انتشار درایور های باینری جدا را بر روی این سیستم عامل مشکل می کند.متاسفانه اکثر تهیه کنندگان علاقه ای به انتشار درایور خود به صورت Open source را ندارند و به همین خاطر برای کاربران لینوکس هرگونه استفاده از درایورهاي عرضه شده توسط تهیه کننده بسیار مشکل است.

FreeBSD: راه انداز(Bootloader) FreeBSD ، می تواند داریورهای باینری را در زمان راه اندازی بالا بیاورد. این به دیگر تولیدکنندگان درایور اجازه توزیع ماژولهای درایور باینری جدا که قابلیت بارگذاری روی سیستم شامل FreeBSD را دارند، را می دهد. براساس طبیعت متن باز FreeBSD ، ارتقاء درایور دستگاه برای سخت افزار جدید بسیار آسان است. اکثر تولید کنندگان فقط فایل های باینری سازگار با سیستم عامل ویندوز را منتشر می کنند. این بدان معنی است که از زمانیکه دستگاه به بازار می رسد تا زمانی که درایور آن رویFreeBSD در دسترس خواهد بود، ممکن است چند ماه طول بکشد.

نرم افزار های تجاری
Windows 2000: برای ویندوز نسبت به دیگر سیستم عاملها برنامه های کاربردی بسیار بیشتری در دسترس است. تقریبا تمامی برنامه های کامپیوترهای Desktop روی ویندوز و فقط روی ویندوز اجرا می شوند. اگر شما یک برنامه مهم دارید که تنها روی ویندوز اجرا می شود، هیچ راهی جز استفاده از ویندوز ندارید.
Linux: نرم افزارهای تجاری زيادی روی لینوکس موجود است که در حال زیادتر شدن نیز هست. متاسفانه لینوکس تنها فایلهای باینریی را می تواند اجرا کند که مخصوص خودش ساخته شده باشند و توانایی اجرای برنامه های دیگر سیستم عاملها را ندارد.

FreeBSD: تعداد نرم افزارهای تجاری روی FreeBSD به سرعت روبه گسترش است،اما هنوز بسیار پایین تر از آن چیزی است که در مورد ویندوز شاهد آن هستیم. علاوه بر نرم افزارهای موجود،FreeBSD قابلیت اجرای نرم افزارهای موجود روی لینوکس، SCOUnix و BSD/OS را نیز دارد.

نرم افزار های رایگان
Windows 2000: میزان نرم افزارهای رایگان ویندوز بسیار کمتر از آن چیزی است که برای Unix داریم. بسیاری از برنامه های کاربردی ویندوز به عنوان نرم افزار اشتراکی (shareware) بدون کد اصلی برنامه وجود دارند که به هیچ عنوان توسط کاربران قابل شخصی کردن(Customize) ، بهبود، توسعه و اصلاح نیستند.
Linux: تعداد بسیار زيادی از برنامه های رایگان برای لینوکس در دسترس می باشد. تمامی نرم افزارهای GNU روی FreeBSD و Linux قابل اجراست. برخی از برنامه های رایگان بسته به نوع آنها تغییراتی نسبت به نمونه های مشابه دارند چون لینوکس استاندارد مشخص پخش نرم افزاری ندارد.
FreeBSD: نرم افزارهای رایگان بسیار بسیار زيادی برای FreeBSD در دسترس می باشد. FreeBSD شامل هزاران بسته نرم افزاری و مجموعه پخش شده وسیعی می باشد که تمامی آنها همراه با کد اصلی برنامه (Source code) به طور کامل می باشند. بسیاری از مردم FreeBSD را در دسترس ترین و آسانترین کتابخانه قابل استفاده برای بسته های نرم افزاری رایگان می دانند.

 

محیط تولید برنامه
Windows 2000: Windows ابزارهای توسعه کمی داشته و بسیاری از مجموعه ابزار بسیار قدرتمند آن باید به صورت جداگانه خریداری شود و به ندرت قابل سازگاری با دیگر ابزارها می باشند. با این وجود اکثر تولیدکنندگان محیط های توسعه و تولید نرم افزار محصولات خود را برای ویندوز به طور جداگانه و کامل عرضه می کنند.
Linux: لینوکس تمامی ابزارهای تولید FreeBSD را به همراه تفسیرکنندگان ها زبان برنامه نویسی متداولی و تمامی برنامه های GNU از قبیل C/C++ قدرتمند GNU، ویرایشگر Emacs و دیباگر GDB در بر می گیرد. متاسفانه به علت طبیعت بسیار خرد شده (Splinted) لینوکس، برنامه هایی که روی یک سیستم (مثلا Redhat 7.2) می سازید امکان کارکردن روی سیستم ديگری از لینوکس (مثلا Slack ware) را ندارند.

FreeBSD: FreeBSD مجموعه بزرگی از ابزارهای تولید و توسعه برنامه را در بر دارد. سیستم توسعه کاملی از C/C++ (شامل ویرایشگر، و ابزارهای توسعه یونیکس برایJava، HTTP، Perl، Python، Tel/TK، Awk، Sed و …)را به طور رایگان دریافت می کنید که براساس FreeBSD نصب می شوند و تمامی اینها شامل کدهای امنيتی می باشند.

زیر ساخت محیط تولید نرم افزار
Windows 2000: نرم افزار ویندوز یک سیستم عامل Close source است که پاسخی به نیاز بازار بوده تا راه حل یک مسئله تکنیکی. تکنولوژیهای جدید در مقیاس زیاد به درون این سیستم عامل ریخته می شوند بدون اینکه طراحی آنها مناسب یا حتی کامل شده باشند. درباره زیرساخت توسعه نرم افزار چیز زيادی در دست نیست جز همان صفحه آبی رنگ مرگ! که پیام خودش را می دهد.

Linux: لینوکس یک هسته (Kernel) شبیه یونیکس است که باید با GNU ترکیب شود تا یک سیستم عامل کامل را بسازد. لینوکس هیچ سیستم کنترل نسخه ای را مورد استفاده قرار نمی دهد و به همین خاطر تمامی تصحیح خطاها (Bug-Fixes) و توسعه ها باید از طریق پست الکترونیکی و تماس با لیست پستی و در پایان با ارسال به فردی که مجاز به ارائه کد به برنامه اصلی می باشد، انجام پذیرد. بر اساس میزان زیادی کدی که نوشته می شود، امکان کنترل کیفیت تغییرات مربوط برای یک نفر وجود ندارد. به همین دلیل کد بسیار زیادی برای لینوکس وجود دارد که با عجله نوشته شده و هیچ وقت برای یک سیستم عملیاتی امن تر قابل قبول نمی باشد.

FreeBSD: FreeBSD یک سیستم عامل پیشرفته بر اساس یونیکس می باشد. کد منبع کل سیستم در یک پایگاه داده که تحت CVS اجرا می شود در دسترس می باشد. دسترسی به این پایگاه توسط یک گروه بزرگ(۲۰۰ نفر) از برنامه نویسان خبره و ارشد نوشته شد و برای هماهنگی عرضه و پخش بازبینی گرديد. FreeBSD بیشتر برای یافتن جوابهای عالی در اهداف کلی طراحی گرديده تا برای تغییرات سریع به منظور اضافه کردن عملکردی جدید.

پشتیبانی
Windows 2000: اگرچه پشتیبانی برای windows 2000 وجود دارد، اما باید خود را برای یک انتظار یک ساعته آماده کنید در حالیکه تضمينی برای یافتن پاسخ وجود ندارد. به علت طبیعت کد بسته ویندوز هیچ پشتیبانی رایگان غیر رسمی برای آن وجود ندارد و باگها طبق زمانبندی و برنامه ریزی Microsoft تصحیح می شود نه طبق زمانبندی شما. از آنجاییکه ویندوز ۲۰۰۰ به طور متناوب به روزرسانی نمی شود، شما ممکن است سالها برای تصحیح باگ هایتان منتظر بمانید.
Linux: بسياري از سازمان ها، پشتیبانی های حرفه ای برای لینوکس ارائه می دهند. تمامی تامین کنندگان عمده Linux بسته به گستردگی کاری، سطحی از پشتیبانی را ارائه می دهند و بعضی خدمات را به طور کامل ارایه می دهند. تعداد بسیاری از محل های بحث و گفتگو برای لینوکس وجود دارند که سوالات شما را مجانی پاسخ می دهند. از گروههای خبری و آدرسهای پستی زيادی نیز به عنوان آخرین پایگاه برای بر طرف کردن مشکلاتتان استفاده کنید.
FreeBSD: موسسات متعددی از جمله BSDi پشتیبانی های گسترده ای از FreeBSD ارائه می دهند. علاوه بر پشتیبانی حرفه ای، ميزان بسیار زيادی از پشتيباني هاي غير رسمي از طريق گروههاي خبري Usenet و آدرسهاي پستي مانند Question@FreeBsd.org (Question@FreeBsd.org) قابل دسترسي مي باشد. وقتي يک مشکل پيدا مي شود معمولا پاسخ دقيق آن ظرف چند ساعت پيدا مي شود.

هزینه ها و قیمت های مالکیت
Windows 2000: قيمت نسخه سرور ويندوز ۲۰۰۰ تقريبا ۷۰۰ دلار می باشد. برنامه های جانبی هزينه ای جداگانه و اضافه دارند. کاربران معمولا هزاران دلار براي برنامه هایی می پردازند که برروی لینوکس و FreeBSD به طور رايگان در دسترس می باشند. مستند سازی گران بوده و مستندات بسيار کمی به صورت جاری (Online) در دسترس می باشد. برای هر کامپيوتر در شبکه مجوزی جداگانه لازم است که به معنای تاخير در گسترش شبکه و صرف هزينه های اضافه است. هزینه ابتدايی آموزش برای کارهای مقدماتی سازمانی نسبت Unix کمتر است. همچنین به کار بيشتری برای ادامه کارآیی سیستم با هر میزان بار کاری نياز دارد.

Linux: لينوکس رايگان بوده و بسياری از شرکتها بسته های نرم افزاری تجاری خود را هزينه بسيار پايينی بر روی آن ارائه می دهند. برنامه ها و مستندات آنها با هزينه ای کم و يا رايگان در دسترس می باشد. هيچ گونه محدوديتی از نظر اجازه نامه وجود ندارد، بنابراين لينوکس می تواند روی هر تعداد سيستمی که شما می خواهيد بدون هرگونه هزينه اضافی نصب گردد. هزينه کل مالکيت لينوکس بسيار اندک است.

FreeBSD: FreeBSD را می توان به صورت مجانی از Internet گرفت يا می توان آن را به صورت يک مجموعه
۴ CD به همراه چندين گيگا بايت نرم افزار کاربردی به ازای ۴۰ دلار خريداری نمود که تمامی اسناد ضروری را نيز در بر می گيرد. پشتيبانی از FreeBSD به صورت مجانی و يا با قيمت بسيار اندک در دست می باشد. هيچ گونه گواهينامه و شماره سريالی برای کاربران لازم نيست به همين خاطر می توانيد به سرعت کامپيوتر های اضافه ای را به شبکه بيفزاييد. اينها همه با هزينه بسيار پايين مالکيت نرم افزار در دسترس می باشد.

ساختار فایل
بسیاری از کاربران به علت عدم اگاهی در مورد نوع اطلاعات و محل ذخیره سازی انها در لینوکس دچار مشکل می شوند.ما سعی خواهیم کرد که شیوه ساز ماندهی فایل ها را در سیستم فایلی این سیستم عامل روشن کنیم. همچنین مهمترین فایل ها و دایرکتوری ها را ذکر کرده و روش های متفاوت مشاهده محتوای فایل ها ،چگونگی ایجاد، جابه جایی و پاک کردن فایل ها و دایرکتوری ها را شرح خواهیم داد.
مروری کلی بر سیستم فایل در لینوکس:

فایلها
یک توصیف ساده از سیستم یونیکس که برای لینوکس نیز به کار می رود عبارت است از: “در سیستم یونیکس همه چیز فایل است و اگر فایل نباشد یک فرایند خواهد بود”
عبارت فوق صحیح است زیرا تعدادی فایل خاص وجود دارد که تنها فایل محسوب نمی شوند (برای مثال pipes یا sockets ) اما برای سادگی گفته می شود که همه چیز فایل است.سیستم لینوکس نیز درست همانند یونیکس، هیچ تفاوتی بین فایل و دایرکتوری قائل نمی شود، زیرا دایرکتوری همان فایل است که شامل اسامی سایر فایل هاست.برنامه ها، خدمات، متن ها، عکس ها همگی فایل هستند.دستگاه های ورودی و خروجی و سایر دستگاه های دیگر نیز با توجه به سیستم، فایل در نظر گرفته می شوند.

برای مدیریت تمام این فایل ها به شیوه ای منظم، ترجیح می دهیم که به انها همانند درختی مرتب نگاه کنیم.( به عنوان مثال همانند ساختار هارد دیسک در MS_DOS ) شاخه های بزرگتر شاخه های بیشتری دارندو شاخه های انتهایی شامل برگ های درخت یا فایل های معمولی هستند.از حالا از این تصویر درختی استفاده خواهیم کرد، اما در اینده خواهیم دید که این تصویر کاملا صحیح نمی باشد.
مرتب سازی فایل ها

اغلب فایل ها تنها فایل هستند که به انها فایل های عادی(Regular files) گفته می شود.این فایل ها شامل داده های معمولی هستند مانند فایل های متنی، فایل ها یا برنامه های اجرایی، ورودی یا خروجی برنامه ها و ….
در سیستم لینوکس به طور معمول فرض می شود که با هر چه که مواجه می شوید فایل است اما موارد استثنایی نیز وجود دارد.
دایرکتوریها: فایل ها و لیست سایر فایل ها.
فایل های خاص: مکانیزمی که برای ورودی و خروجی به کار می رود.اکثر فایل های خاص در /dev قرار دارند.در اینده دراین باره بیشتر بحث خواهیم کرد.
پیوندها: سیستمی است که سبب می شود فایل یا دایرکتوری در چندین قسمت از درخت فایل سیستم قابل مشاهده باشد.در این باره جزئیات بیشتر را خواهیم گفت.
(دامنه) sockets :یکی از انواع فایل های خاص که شبیه socket های TCP/IP است و به وسیله کنترل دسترسی به سیستم فایل، امنیت فرایند های داخلی شبکه را تامین می کند.
Named pipes: کمابیش عملکردی شبیه socket ها دارد و راهی برای ارتباط فرایند ها با یکدیگر بدون استفاده از معنای socket شبکه را شکل می دهد.
نماد مفهوم

– فایل عادی
d دایرکتوری
L پیوند
c فایل های خاص
s socket

p Named paipe
برای اینکه همیشه مجبور نباشیم برای یافتن نوع فایل در یک لیست طولانی جستجو کنیم، بیشتر سیستم ها به دنبال نام فایل، پسوندی را شامل یکی از کارکتر های “/=*|@” اضافه می کنند که نشاندهنده نوع فایل می باشد.
شما به عنوان یک کاربر تنها با فایل های ساده، فایل های اجرایی،دایرکتوری ها و پیوندها سر و کار خواهید داشت.فایل های خاص برای ایجاد سیستم به نوع دلخواه است و تنها مدیران سیستم و برنامه نویسان با انها سر و کار خواهند داشت.

انواع وطرحبندی پارتیشن
۲ پارتیشن عمده در سیستم لینوکس وجود دارد:
پارتیشن داده: داده های نرمال سیستم لینوکس، شامل پارتیشن ریشه(root) که حاوی کلیه داده ها برای شروع و اجرای سیستم است.
پارتیشن swap :توسعه حافظه فیزیکی کامپیوتر ، حافظه یدکی روی هارد دیسک.(حافظه مجازی)

اغلب سیستم ها شامل پارتیشن ریشه،۱ یا چند پارتیشن داده و یک یا چند پارتیشن swap می باشند.
سیستم های محیط های ترکیبی ممکن است حاوی پارتیشن هایی برای سایر داده های سیستم باشند، به عنوان مثال پارتیشنی با سیستم فایل FAT یاVFAT برای داده MS Windows .
اکثر سیستم های لینوکس هنگام نصب برای تنظیم نوع پارتیشن از fdisk استفاده می کنند.معمولا این کار به صورت خودکار انجام می شود.گرچه بعضی اوقات ممکن است این قدر خوش شانس نباشید.در این موارد شما نیاز دارید که خودتان نوع پارتیشن ها را تعیین کنید و حتی عمل پارتیشن بندی را نیز خودتان انجام دهید.ابزار fdisk در این مورد به شما کمک خواهد کرد.

جدا از این ها، لینوکس از انواع مختلفی از سیستم های فایلی دیگر نیز حمایت می کند.همانند JFS،NFS،fatXX و بسیاری از سیستم های فایلی که در دیگر سیستم عامل ها در به کار می روند.
پارتیشن استاندارد ریشه(که با یک سلش مجزا نشان داده می شود،/) حدودا ۱۰۰ تا ۵۰۰ مگا بایت فضا اشغال می کند و شامل فایل های پیکر بندی سیستم، اصلی ترین دستورات و برنامه های سرویس دهنده، کتابخانه های سیستم، برخی فضاهای موقتی و دایرکتوری خانه ی(home) کاربر اصلی
یا همان مدیر(administrative) می باشد.یک نصب استاندارد نیازمند حدودا ۲۵۰ مگا بایت فضا برای پارتیشن ریشه است.
فضای swap تنها برای خود سیستم قابل دسترس است، و در حین عملیات عادی سیستم از دید ما پنهان است.swap سیستمی است که همانند سیستم های نرمال یونیکس به شما اطمینان می دهد که هر اتفاقی که بیفتد شما می توانید به کار خود ادامه دهید.به علت این فضای کمکی شما هیچ گاه در لینوکس با پیغام های خطایی مثل حافظه بیش از حد مجاز و یا ابتدا برخی از کارها را متوقف کرده و مجدد امتحان کتید، مواجه نخواهید شد. Swap یا حافظه مجازی مدت زیادی است که مورد قبول سیستم های عامل خارج از دنیای یونیکس واقع شده است.

به طور طبیعی استفاده از حافظه روی هارد کند تر از استفاده از تراشه های واقعی حافظه کامپیوتر است اما داشتن چنین حافظه ای بسیار راحت است.
لینوکس معمولا اندازه swap را ۲ برابر مقدار حافظه فیزیکی حساب می کند.هنگام نصب سیستم باید بدانید که چگونه عمل کنید.مثالی از سیستمی با ۵۱۲ مگا بایت RAM:
اولین امکان: ۱ پارتیشن swap با ۱ گیگ فضا.

دومین امکان: ۲ پارتیشن swap با ۵۱۲ مگا بایت فضا.
سومین امکان: ( با ۲ هارد دیسک) ۱ پارتیشن با ۵۱۲ مگا بایت روی هر دیسک.
انتخاب اخر زمانی که دستگاه های I/O زیادی وجود داشته باشند بهترین نتیجه را می دهد.

برای راهنمایی بیشتر مستندات نرم افزار را مطالعه کنید. برخی کاربرد ها همچون پایگاه داده
(DB:Data Base) ، احتمالا به فضای swap بیشتری احتیاج دارند. برخی دیگر ممکن است از هیچ swap استفاده نکنند.فضای swap همچنین به نگارش هسته تان بستگی دارد.
هسته در بسیاری از توزیع های لینوکس در پارتیشن مجزایی قرار دارد.زیرا مهمترین فایل سیستم محسوب می شود.در این حالت یک پارتیشن /boot نیز وجود دارد که هسته(ها) را شامل می شود.

بقیه فضای هارد دیسک معمولا بین پارتیشن های داده تقسیم می شود، با وجودیکه ممکن است کلیه داده های غیر بحرانی سیستم در یک پارتیشن قرار بگیرند. برای مثال زمانی که نصب استاندارد ایستگاه کاری (workstation) را اجرا می کنید.زمانی که داده های غیر بحرانی در پارتیشن های متفاوت قرار می گیرند، معمولا الگوی زیر اتفاق می افتد:
یک پارتیشن برای برنامه های کاربر (/user)

یک پارتیشن شامل داده های شخصی کاربر (/home)
یک پارتیشن برای ذخیره داده های موقتی مثل چاپ_و mail_ صف ها(/var)
یک پارتیشن برای سومین بخش و نرم افزار اضافی(/opt)

یک بار که پارتیشن ها ساخته شدند،می توانید تعداد بیشتری به انها اضافه کنید.تغییر اندازه یا تغییر ویژگی های پارتیشن های موجود امکان پذیر است اما توصیه نمی شود.
تصمیم تقسیم هارد دیسک ها به پارتیشن ها توسط مدیر سیستم(administrator) صورت می گیرد.مدیر در سیستم های بزرگتر حتی ممکن است با استفاده از نرم افزار مناسب یک پارتیشن را روی چندین هارد دیسک توسعه دهد.در حین فرایند نصب شما می توانید طرح پارتیشن خودتان را با استفاده از ابزار خاص توزیع در حال نصب، که معمولا یک رابط گرافیکی و یا fdisk (ابزاری متنی برای ایجاد پارتیشن ها و تنظیم ویزگی هایشان)است،تعریف کنید.

نصب ایستگاه کاری یا مشتری(client) اساسا برای استفاده یک شخص است.نرم افزار انتخابی برای نصب این موضوع را منعکس می کند و تاکید اصلی بر روی بسته های عمومی کاربر، مانند زمینه دسکتاپ زیبا، ابزارهای توسعه، برنامه های مشتری برای E_mail، نرم افزار چند رسانه ای، وب و دیگر خدمات است.
همه چیز با هم در یک پارتیشن بزرگ قرار می گیرد، فضای swap با دو برابر ظرفیت RAM نیز اضافه می گردد و ایستگاه کاری شما به طور کلی کامل شده و بیشترین فضای ممکن دیسک را برای استفاده شخصی فراهم می کند.
در سرویس دهنده، داده های سیستم تمایل دارند که از

 

داده های کاربر مجزا باشند.برنامه هایی که خدمات را ارائه می دهند در جایی متفاوت با جایی که داده های مربوط به این خدمات وجود دارند، نگهداری می شوند.پارتیشن های متفاوتی در اینگونه سیستم ها ایجاد می شوند:
یک پارتیشن با تمام داده های لازم برای راه اندازی ماشین
یک پارتیشن با داده های پیکربندی و برنامه های سرویس دهند

ه
یک یا چند پارتیشن شامل داده های سرویس دهنده مانند جداول پایگاه داده،mail های کاربران،ارشیو ftpو غیره.
یک پارتیشن با درخواست ها و برنامه های کاربران
یک یا چند پارتیشن برای فایل های خاص کاربران(دایرکتوری های کاربران)

یک یا چند پارتیشن swap (حافظه مجازی)
خدمات دهنده ها معمولا حافظه بیشتر و در نتیجه فضای swap بیشتری دارند.مطمئنا فرایندهای خدمات دهنده (server) مانند پایگاه داده،به فضای swap بیش از حد معمول احتیاج دارد.برای اجرای بهتر، swap معمولا به پارتیشن های swap متفاوتی تقسیم می شود.
فرمان dfدر یک سیستم در حال اجرا، اطلاعات در مورد پارتیشن ها می تواند با استفاده از دستور
df

(disk full or disk free) نشان داده شود.درلینوکس df نگارش GNU است و –h یا گزینه human readable
را که قابلیت خوانایی را بسیار تقویت می کند، حمایت می کند.توجه داشته باشید که سیستم های یونیکس تجاری معمولا نگارش df و دیگر دستورات خاص خودشان را دارند.رفتار انها معمولا مشابه است، گرچه ابزار عمومی با نگارش GNU ، خصوصیات بهتر و بیشتری دارند.

دستور df تنها اطلاعات پارتیشن های فعال و غیر swap را نمایش می دهد که می تواند شامل پارتیشن های سایر سیستم های شبکه باشد.
درخت سیستم فایل از /(سلش) اغاز می شود.این دایرکتوری تمام زیر دایرکتوری ها و فایل ها را شامل می شود و دایرکتوری ریشه یا به اختصار ریشه سیستم فایل نامیده می شود.
معمولا قبل از دایرکتوری هایی که تنها یک سطح پایین تر از ریشه اند، یک سلش قرار میگیرد تا مکانشان مشخص شود و مانع اشتباه گرفته شدن انها با سایر دایرکتوری ها با اسامی مشابه گردد. همیشه خوب است زمان شروع با یک سیستم جدید، نگاهی به دایرکتوری ریشه بیندازیم:
زیر دایرکتوری های ریشه را در زیر مشاهده می کنید.

/binبرنامه های عمومی که توسط سیستم توزیع شده اند،مدیر سیستم و کاربران.
/bootفایل های راه اندازی و هسته،vmlinuz.و همچنین داده هایGRUB

(GR and Unified Boot Loader).GRUB تلاشی است برای رهایی از راه انداز_بارکننده هایی که امروزه میشناسیم.
/devشامل مراجعاتی به کلیه سخت افزار های فرعی CPU،که به صورت فایل هایی با خصوصیات ویژه ارائه می شوند.
/etcمهمترین فایل های پیکربندی سیستم در این دایرکتوری قرار دارند.داده های این دایرکتوری مشابه با داده های موجود در control panel ویندوز می باشد.
/homeدایرکتوری های home کاربران معمولی.
/initrd(در برخی توزیع ها)اطلاعات برای راه اندازی.این دایرکتوری را پاک نکنید!
/libفایل های کتابخانه ای، شامل فایل های کلیه برنامه هایی که مورد نیاز کاربران و سیستم است.

/lost+foundهمه پارتیشن ها lost_found را در دایرکتوری بالاتر خود دارند.فایل هایی که در حین خرابی ذخیره می شوند، در این محل هستند.
/miscبرای اهداف متفرقه.(miscellaneous)

/mntنقطه اتصال استاندارد (mount point) فایل های خارجی سیستم.برای مثال CD_ROM یا دوربین دیجیتال.
/netبرای قرارگرفتن کلیه فایلهایی که روی سایر کامپیوتر ها در شبکه قرار دارند.
/optنوعا شامل نرم افزار های شخص ثالث (منظور نرم افزارهای تولید شده توسط سایر شرکتهاست.) می باشد.
/procیک سیستم فایل مجازی است که شامل اطلاعاتی راجع به منابع سیستم می باشد.اطلاعات بیشتر راجع به مفهوم فایل ها درproc با وارد کردن دستور man proc به دست می اید.فایل proc.txt سیستم فایل مجازی را با جزئیات بیشتر مطرح می کند.
/rootدایرکتوریhome کاربر مدیر.به تفاوت بین /،دایرکتوری ریشه و /root ، دایرکتوری خانه کاربر ریشه توجه داشته باشید.
/sbinبرنامه های مورد استفاده سیستم و مدیر سیستم.

/tmpفضایی موقت برای استفاده توسط سیستم که پس از راه اندازی مجدد پاک می شود پس از ان برای ذخیره هیچ کاری استفاده نکنید.
/usrبرنامه ها،کتابخانه ها،مستندات و غیره.برای تمامی برنامه های مربوط به کاربران.
/varمخزنی برای تمامی فایل های متغیر و موقت ایجاد شده توسط کاربر.مانند فایل هایی که از اینترنت download شده اند و یا برای نگهداری image از یک CD قبل از رایت شدن ان.
چگونه متوجه می شوید که یک دایرکتوری به کدام پارتیشن تعلق دارد؟
استفاده از دستور df با نقطه (.) به عنوان انتخاب نشان می دهد که دایرکتوری جاری به کدام پارتیشن متعق است و در مورد مقدار فضایی که پارتیشن استفاده می کند اطلاع می دهد.
Sandra:/lib> df –h .
Filesystem size Used Avail Use% Mounted on
/dev/hda7 980M 163M 767M 18% /
به عنوان یک اصل کلی،هر دایرکتوری در زیر دایرکتوری ریشه، در پارتیشن ریشه قرار دارد،مگر اینکه در یک لیست کامل df یک ورودی مجزا داشته باشد.
اصل سیستم فایل
برای بسیاری از کاربران و برای بسیاری از اعمال مدیریت سیستم،کافیست بپذیرند که فایل ها و دایرکتوری ها در یک ساختار درخت مانند مرتب شده اند.اگرچه کامپیوتر چیزی در مورد درخت ها و یا ساختار های درختی نمی داند.
هر پارتیشن، سیستم فایل خاص خودش را دارد.با در نظر گرفتن کلیه سیستم های فایل با هم،می توانیم نظریه ساختار درختی کل سیستم را شکل دهیم، اما کار به همین سادگی هم نیست.در سیستم فایل هر فایل با یک inode نشان داده می شود، که نوعی شماره سریال است که شامل اطلاعاتی راجع به داده های واقعیی است که فایل را ایجاد کرده اند:فایل به چه کسی متعلق است، و در کجای هارد دیسک قرار دارد.
هر پارتیشن مجموعه inode های خودش را دارد.در سیستمی با پارتیشن های متعدد،فایل هایی با شماره inode های یکسان وجود دارند.
هر inode یک ساختار داده را بر روی هارد دیسک شرح می دهد،که ویژگی های فایل را ذخیره کرده،و شامل محل فیزیکی داده های فایل می باشد.زمانی که هارد دیسک برای پذیرفتن منبع داده ها مقدار دهی اولیه می شود،معمولا در حین فرایند نصب سیستم اولیه یا هنگام افزودن دیسک های اضافی به سیستم موجود،تعداد ثابتی از enode ها در پارتیشن ایجاد می شوند.این تعداد بیشترین مقدار فایل ها از هر نوعی(از جمله دایرکتوری ها،فایل های خاص،پیوند ها و…) که می توانند در یک زمان روی پارتیشن باشند، خواهد بود.ما نوعا روی داشتن ۱ inode در فضایی بین ۲ تا ۸ کیلوبایت فضا حساب می کنیم.
زمانی که فایل جدیدی ایجاد شد،یک inode ازاد را اختیار می کند.در این inode اطلاعات زیر موجود
می باشد:
صاحب (owner)و گروه دارنده فایل.
نوع فایل(نرمال،دایرکتوری و…).
اجازه دسترسی به فایل.
تاریخ و ساعت ایجاد،اخرین خواندن و تغییر.
تاریخ و ساعتی که این اطلاعات در inode تغییر کرده اند.
تعداد پیوند ها به این فایل.
اندازه فایل.
آدرسی که محل واقعی داده های فایل را تعریف می کند.
تنها اطلاعاتی که inode شامل ان نمی شود،نام فایل و دایرکتوری می باشد.این اطلاعات در داخل دایرکتوری های خاص فایل ذخیره می شوند.با مقایسه اسامی فایل ها و شماره های inode ها،سیستم قادر به ایجاد ساختار درختی است که کاربر آن را درک می کند.کاربران می توانند شماره inode ها را با استفاده از گزینه –i در دستور ls نمایش دهند.inode ها فضای مجزای مختص خودشان را بر روی دیسک دارند.