گنو/لینوکس یا بطور مختصر لینوکس یک سیستم عامل است. شما هماکنون سیستم عاملی روی رایانه خود دارید و میدانید که سیستم عامل، مهمترین برنامهی رایانه است که وظیفهی مدیریت سایر برنامهها، مدیریت سختافزار و ارتباط میان نرمافزار با سختافزار را بر عهده دارد. سیستم عامل شما ممکن است مایکروسافت ویندوز، نسخهای از داس، اپل مکینتاش، یا نسخهای از یونیکس باشد (سیستم عاملهای دیگری نیز وجود دارند). گنو/لینوکس یک سیستم عامل شبیه یونیکس است که هستهی آن توسط فردی با نام "لینوس توروالدس" که در اوایل دههی نود، دانشجوی دانشگاه هلسینکی فنلاند بود نوشته شد؛ و اولین نسخهی آن در سال ۱۹۹۱ انتشار یافت. سپس نرمافزارهایی که پروژهی "گنو" تهیه و تولید کرده بود، در کنار این هسته قرار گرفت، و سیستم عامل گنو/لینوکس را تشکیل داد. از آن جایی که بسیاری از نرمافزارهای مهم درون این سیستم، از محصولات پروژهی گنو میباشد نام صحیح این سیستم عامل "گنو/لینوکس" است.
گنو/لینوکس مزیتهای بسیاری نسبت به سایر سیستم عاملها دارد. به طور خلاصه میتوان نقاط قوت گنو/لینوکس را در امنیت بسیار بالا به دلیل وجود دیوارهی آتش در هستهی سیستم عامل و همچنین وجود لایههای امنیتی مختلف در آن، تعداد انگشت شمار ویروسهای رایانهای شناخته شده برای آن، پایداری بسیار بالا به دلیل طراحی درست هسته، بدین صورت که اشکال در یک نرمافزار باعث ناپایداری کل سیستم نمیگردد، سرعت بالای سیستم عامل، به دلیل در دسترس بودن کد متن برنامه، و در نتیجه امکان کامپایل برنامه برای یک سختافزار خاص، قیمت بسیار پایین آن، از آنجایی که خود سیستم عامل و اکثر نرمافزارهای آن به رایگان در دسترس میباشند؛ خلاصه کرد. لینوکس همچنین یک هستهی کاملا چند وظیفهای میباشد، و از سالها قبل از آنکه ویندوز به وجود آمده باشد و در زمانی که داس یک سیستم عامل تک وظیفهای بود؛ این سیستم توانایی اجرای چند وظیفه به صورت همزمان را داشت. لینوکس سیستمی چند کاربری است، و این مفهوم را به حد اعلای خود رسانده، زیرا چند کاربر، میتوانند از یک سیستم به طور همزمان و بدون دخالت در وظایف یکدیگر استفاده کنند. نسخهی فعلی هستهی لینوکس که نسخهی ۴/۲ است، توانایی بهرهوری از ۸ پردازنده را به صورت همزمان دارد، و این قابلیت در نسخهی بعدی آن به ۱۶ پردازنده خواهد رسید.
مهمترین برتری گنو/لینوکس، نسبت به سیستمعاملهای انحصاری آن است که این سیستم نرمافزار آزاد است. هیچ شرکت، دولت یا گروهی صاحب گنو/لینوکس نیست. شرکتها و گروههای بسیاری اقدام به تولید مجموعه نرمافزارهای خود، که "پخش" نام دارد کردهاند. تعداد دقیق پخشهای گنو/لینوکس مشخص نیست، اما آنچه که مسلم است آن است که بیش از ۲۰۰ پخش ثبت شدهی گنو/لینوکس وجود دارد. هر شخصی، با کمی دانش فنی و کمی وقت میتواند سیستم عامل گنو/لینوکس خودش را درست کند. با این وجود اکثرا افراد ترجیح میدهند که از پخشهای از پیش ساخته شده استفاده کنند. از معروفترین پخشهای گنو/لینوکس میتوان به دبیان (Debian) ، رد هت (RedHat) ، مندریک (Mandrake) ، سوزه (SuSE) و جنتو (Gentoo) اشاره کرد. گنو/لینوکس هم همانند مایکروسافت ویندوز، و در حقیقت همانند تمام سیستمعاملهای دیگر بر روی دیسک سخت نصب میشود. در حقیقت، گنو/لینوکس تقریبا روی هر نوع سازهی رایانهای قابل نصب است. از سازهی IA32 که اکثر ما از آن استفاده میکنیم، و شامل پردازندههای Intel و AMD میشود، تا سازهی PowerPC (پردازندههای IBM و Motorola)، سازهی Sparc (پردازندههای Sun)، سازهی Alpha (پردازندههای HP)، و سازههای دیگری که ذکر آنها در اینجا ضرورتی ندارد. گنو/لینوکس همچنین میتواند به آسانی در کنار سایر سیستمعاملها از جمله مایکروسافت ویندوز، بر روی یک رایانه قرار گیرد. در این حالت شما یک رایانهی به اصطلاح Multi Boot خواهید داشت، و هنگام روشن نمودن رایانه، سیستمعامل مورد نظرتان را انتخاب کرده و وارد آن میشوید.
سیستم فایل هر کامپیوتر، امکان ذخیره سازی فایلها و اطلاعات را روی آن فراهم میسازد. هنگامی که از داخل برنامه واژه پرداز خود سندی را ذخیره میکنید، این سیستم فایل است که تعیین میکند سند چگونه و کجا ذخیره شود.
ابزارهای ذخیره سازی مانند فلاپی دیسکها، دیسکهای سخت، درایوهای CD-ROM، درایوهای Zip و... تا قبل از اینکه سیستمعامل سیستم فایل را روی آنها تشکیل دهد، قابل استفاده نیستند.
سیستم فایلهای گوناگونی برای سیستمعاملهای مختلف از جمله ویندوز و سیستم عاملهای مبتنی بر یونیکس و لینوکس ارائه شدهاند که در مورد ویندوز این سیستم فایلها عبارتند از :
انواع سیستمهای فایل در ویندوز
۱- FAT16 : در سیستمعامل داس استفاده میشد.
۲- FAT32 : از ویندوز ۹۵ تا me استفاده میشد.
۳- NTFS 4.0 : در سیستمهای nt 4.0 استفاده میشد.
۴- NTFS های جدید : از ویندوز ۲۰۰۰ به بعد استفاده میشود.
انواع سیستمهای فایل در یونیکس و لینوکس
اما بحث اصلی ما درمورد سیستم فایلهای مبتنی برلینوکس است که برخی از آنها عبارتند از ext2، ext3، xfs، reiserfs و غیره. این سیستم فایلها در جزئیات فنی دارای تفاوتهایی با هم هستند ولی از نظر ساختاری که ایجاد میکنند مشابه بوده و تفاوت چندانی باهم ندارند. در این مقاله ما وارد جزئیات فنی هر نوع از سیستم فایلها نشده و تنها ساختار آنها را بررسی خواهیم کرد.
سیستم فایل یا درخت؟
سیستم فایل سیستمعاملهای مبتنی بر یونیکس و لینوکس بصورت یک درخت وارونه پیاده سازی شده است. در یونیکس و لینوکس دیگر شما چیزی به نام درایوهای A، C و ... ندارید. تمام ابزارها و سیستم فایلها شاخههایی از این درخت وارونه هستند. مرکز این درخت ریشه یا root نام دارد که بالاترین سطح سیستم فایل را تشکیل میدهد. زیر ریشه، پوشههایی قرار دارند که سایر قسمتهای سیستم فایل را تشکیل میدهند . سیستم فایل از تعداد زیادی پوشه تشکیل شدهاست که این پوشهها تقریبا در تمامی سیستمعاملهای مبتنی بر یونیکس و لینوکس مشترک هستند. اکنون به تشریح تک تک این شاخهها پرداخته و در میان آن توضیحات اضافه را به شما ارائه خواهم کرد.
پارتیشنها
در سیستم فایل سیستمعاملهای مبتنی بر لینوکس و یونیکس، دیسکهای سخت میتوانند پارتیشنهای متعددی داشته باشند. در این صورت هر پارتیشن دارای یک نقطه اتصال یا 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 لینوکس که همان حافظه مجازی روی دیسک سخت است، میباشد. بهتر است حجم آنرا برابر یا ۲ برابر حافظه سیستم خود تعیین نمایید.
منبع : technotux