فهرست مطالب
عنوان صفحه
توکس پنگوئن : نشان عزیز لینوکس.... 5
سیستم فایل یا درخت در لينوكس.... 5
سيستم عامل لينوكس
لینوکس یک سیستم عامل آزاد و بازمتن است. کد منبع آن در اختیار همگان قرار دارد و همه میتوانند در کدهای آن تغییر ایجاد کرده و بنا به نیازشان استفاده کنند. آزاد و در دسترس بودن کدهای منبع سبب میشود تا بتوانید از طرز کارکرد دقیق سیستمعامل مطلع شوید. شما بسیاری از توزیعهای لینوکس را میتوانید به هر تعداد کپی کرده و بین دوستانتان پخش کنید. در سمت مقابل، ویندوز یک سیستمعامل اختصاصی است که کد منبع آن سری نگهداشته شده و برای همگان در دسترس نیست. شما نمیتوانید بفهمید که واقعا در زیر سیستمعامل ویندوزتان چه میگذرد؟ آیا یک برنامه جاسوسی در آن پنهان نشده است؟ بعید نیست. سیستم عامل ویندوز رایگان نبوده و شما نمیتوانید آنرا کپی کرده و پخش کنید. در صورت این کار شما خلافکار هستید و جریمه و مجازات خواهید شد. (فعلا نه در ایران ولی در ۴-۶ سال آینده بله)
لینوکس را به هواپیمایی تشبیه کردهاند که هر قسمت از انرا در جایی ساختهاند. لینوکس واقعا محصول کشور خاصی نیست. تعداد زیادی از مردم در سرتاسر جهان در حال کار بر روی بخشهای مختلف آن و توسعه آن هستند. تعداد برنامه نویسانی که روی بخشهای مختلف سیستمعامل لینوکس کار میکنند، به حدود ۴۰۰ هزار نفر میرسد، تفاوت کیفیت کار را مشخص میکند.شما با سیستمعامل لینوکس آزاد هستید. لازم ندارید تا از نرمافزارهای اختصاصی استفاده کنید و تحت انقیاد آنها در آیید.
در سال 1991 در حالی که جنگ سرد رو به پایان میرفت و صلح در افقها هویدا میشد، در دنیای کامپیوتر، آینده بسیار روشنی دیده میشد. با وجود قدرت سخت افزارهای جدید، محدودیت های کامپیوترها رو به پایان میرفت. ولی هنوز چیزی کم بود... و این چیزی نبود جز فقدانی عمیق در حیطه سیستم های عامل.
داس، امپراطوری کامپیوترهای شخصی را در دست داشت. سیستم عامل بی استخوانی که با قیمت 50000 دلار از یک هکر سیاتلی توسط بیل گیتز (Bill Gates) خریداری شده بود و با یک استراتژی تجاری هوشمند، به تمام گوشه های جهان رخنه کرده بود. کاربران PC انتخاب دیگری نداشتند. کامپیوترهای اپل مکینتاش بهتر بودند. ولی قیمتهای نجومی، آنها را از دسترس اکثر افراد خارج می ساخت.
خیمه گاه دیگر دنیای کامپیوترها، دنیای یونیکس بود. ولی یونیکس به خودی خود بسیار گرانقیمت بود. آنقدر گرانقیمت که کاربران کامپیوترهای شخصی جرات نزدیک شدن به آنرا نداشتند. کد منبع یونیکس که توسط آزمایشگاههای بل بین دانشگاهها توزیع شده بود، محتاطانه محافظت میشد تا برای عموم فاش نشود. برای حل شدن این مسئله، هیچیک از تولید کنندگان نرم افزار راه حلی ارائه ندادند.
بنظر میرسید این راه حل به صورت سیستم عامل MINIX ارائه شد. این سیستم عامل، که از ابتدا توسط اندرو اس. تاننباوم (Andrew S. Tanenbaum) پروفسور هلندی، نوشته شده بود به منظور تدریس عملیات داخلی یک سیستم عامل واقعی بود. این سیستم عامل برای اجرا روی پردازنده های 8086 اینتل طراحی شده بود و بزودی بازار را اشباع کرد.
بعنوان یک سیستم عامل، MINIX خیلی خوب نبود. ولی مزیت اصلی آن، در دسترس بودن کد منبع آن بود. هرکس که کتاب سیستم عامل تاننباوم را تهیه میکرد، به 12000 خط کد نوشته شده به زبان C و اسمبلی نیز دسترسی پیدا میکرد. برای نخستین بار، یک برنامه نویس یا هکر مشتاق میتوانست کد منبع سیستم عامل را مطالعه کند. چیزی که سازندگان نرم افزارها آنرا محدود کرده بودند. یک نویسنده بسیار خوب، یعنی تاننباوم، باعث فعالیت مغزهای متفکر علوم کامپیوتری در زمینه بحث و گفتگو برای ایجاد سیستم عامل شد. دانشجویان کامپیوتر در سرتاسر دنیا با خواندن کتاب و کدهای منبع، سیستمی را که در کامپیوترشان در حال اجرا بود، درک کردند.و یکی از آنها لینوس توروالدز (Linus Torvalds) نام داشت.
در سال 1991، لینوس بندیکت توروالدز (Linus Benedict Torvalds) دانشجوی سال دوم علوم کامپیوتر دانشگاه هلسینکی فنلاند و یک هکر خود آموخته بود. این فنلاندی 21 ساله، عاشق وصله پینه کردن محدودیت هایی بود که سیستم را تحت فشار قرار میدادند. ولی مهمترین چیزی که وجود نداشت یک سیستم عامل بود که بتواند نیازهای حرفه ای ها را براورده نماید. MINIX خوب بود ولی فقط یک سیستم عامل مخصوص دانش آموزان بود و بیشتر به عنوان یک ابزار آموزشی بود تا ابزاری قدرتمند برای بکار گیری در امور جدی.
در این زمان برنامه نویسان سرتاسر دنیا توسط پروژه گنو (GNU) که توسط ریچارد استالمن (Richard Stallman) آغاز شده بود، تحریک شده بودند. هدف این پروزه ایجاد حرکتی برای فراهم نمودن نرم افزارهای رایگان و در عین حال با کیفیت بود. استالمن خط مشی خود را از آزمایشگاه معروف هوش مصنوعی دانشگاه MIT با ایجاد برنامه ویرایشگر emacs در اواسط و اواخر دهه 70 آغاز نمود. تا اوایل دهه 80، بیشتر برنامه نویسان نخبه آزمایشگاههای هوش مصنوعی MIT جذب شرکتهای نرم افزاری تجاری شده بودند و با آنها قرارداد های حفظ اسرار امضا شده بود. ولی استالمن دیدگاه متفاوتی داشت. وی عقیده داشت برخلاف سایر تولیدات، نرم افزار باید از محدودیت های کپی و ایجاد تغییرات در آن آزاد باشد تا بتوان روز به روز نرم افزارهای بهتر و کارآمد تری تولید نمود.
با اعلامیه معروف خود در سال 1983، پروژه GNU را آغاز کرد. وی حرکتی را آغاز کرد تا با فلسفه خودش به تولید و ارائه نرم افزار بپردازد. نام GNU مخفف GNU is Not Unix است. ولی برای رسیدن به رویای خود برای ایجاد یک سیستم عامل رایگان، وی ابتدا نیاز داشت تا ابزارهای لازم برای این کار را ایجاد نماید. بنابراین در سال 1984 وی شروع به نوشتن و ایجاد کامپایلر زبان C گنو موسوم به GCC نمود. ابزاری مبهوت کننده برای برنامه نویسان مستقل. وی با جادوگری افسانه ای خود به تنهایی ابزاری را ایجاد نمود که برتر از تمام ابزارهایی که تمام گروههای برنامه نویسان تجاری ایجاد کرده بودند قرار گرفت. GCC یکی از کارآمد ترین و قویترین کامپایلرهایی است که تا کنون ایجاد شده اند.
تا سال 1991 پروزه GNU تعداد زیادی ابزار ایجاد کرده بود ولی هنوز سیستم عامل رایگانی وجود نداشت. حتی MINIX هم لایسنس شده بود. کار بر روی هسته سیستم عامل گنو موسوم به HURD ادامه داشت ولی به نظر نمی رسید که تا چند سال آینده قابل استفاده باشد.
این زمان برای توروالدز بیش از حد طولانی بود...
در 25 آگوست 1991، این نامه تاریخی به گروه خبری MINIX از طرف توروالدز ارسال شد:
از : لینوس بندیکت توروالدز
به: گروه خبری MINIX
موضوع: بیشتر چه چیزی را میخواهید در MINIX ببینید؟
خلاصه: نظرخواهی کوچک در مورد سیستم عامل جدید من
با سلام به تمام استفاده کنندگان از MINIX
من در حال تهیه یک سیستم عامل رایگان فقط به عنوان سرگرمی و نه به بزرگی و حرفه ای GNU برای دستگاههای 386 و 486 هستم. این کار از آوریل شروع شده و درحال آماده شدن است. من مایلم تا نظرات کاربران را در مورد چیزهایی که در MINIX دوست دارند یا ندارند، جمع آوری کنم. زیرا سیستم عامل من حدودا شبیه آن است. مانند ساختار سیستم فایل مشابه و چیزهای دیگر... من اکنون bash نسخه 1.08 و GCC نسخه 1.40 را به آن منتقل کرده ام و به نظر میرسد که کار میکند. من در عرض چند ماه چیزی آزمایشی درست کرده ام و مایلم بدانم که کاربران بیشتر به چه قابلیتهایی نیاز دارند؟ من از هر پیشنهادی استقبال میکنم. ولی قول نمی دهم همه آنها را اجرا کنم.
خود توروالدز هم باور نمی کرد که مخلوقش آنقدر بزرگ شود که چنین تحولی در دنیا ایجاد کند. لینوکس نسخه 0.01 در اواسط سپتامبر 1991 منتشر شد و روی اینترنت قرار گرفت. شور و اشتیاقی فراوان حول مخلوق توروالدز شکل گرفت. کدها دانلود شده، آزمایش شدند و پس از بهینه سازی به توروالدز بازگردانده شدند. لینوکس نسخه 0.02 در پنجم اکتبر آماده شد.
توکس پنگوئن : نشان عزیز لینوکس
نشان لینوکس یک پنگوئن است. برخلاف سایر سیستم عاملهای تجاری، این نشان زیاد جدی نیست! توکس نشانگر وضعیت بدون نگرانی حرکت لینوکس است. این نشان تاریخچه بسیار جالبی دارد. لینوکس در ابتدا فاقد هر گونه نشانی بود. هنگامی که توروالدز برای تعطیلات به استرالیا رفته بود، در دیداری که از یک باغ وحش داشت، هنگامی که می خواست با یک پنگوئن بازی کند، پنگوئن دست وی را گاز گرفت و همین ایده ای شد تا از پنگوئن به عنوان نشان لینوکس استفاده شود.
سیستم فایل سیستمعاملهای مبتنی بر یونیکس و لینوکس بصورت یک درخت وارونه پیاده سازی شده است. در یونیکس و لینوکس دیگر شما چیزی به نام درایوهای 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 میسازید. کاربرد این پارتیشن چیست؟ این پارتیشن که تحت ساختار سیستم فایل جایی متصل نمیشود، محل قرارگیری swapping file لینوکس که همان حافظه مجازی روی دیسک سخت است، میباشد. بهتر است حجم آنرا برابر یا ۲ برابر حافظه سیستم خود تعیین نمایید.
منبع: برگرفته از سايت
www.wikipediafa.org