توانایی خود را افزایش دهیم

فرهنگ و هنر
توانایی خود را افزایش دهیم

بسم الله الرحمن الرحیم

با سلام

• لطفا مطالب سایت را به صورت منظم پیگیری کنید
• ارائه پیشنهادات و نظرات شما باعث بهبود کیفیت ارائه مطالب خواهد شد

بعضی از مطالب آموزشی سایت توسط اینجانب نوشته نشده و صرفا جهت مطالعه دوستان از منابع دیگری جمع آوری شده است
چنانچه در مطالب موضوعی ملاحظه شد که از نظر علمی ، اعتقادی ، سیاسی ، مذهبی و ... دارای مشکل بود حتما در قسمت نظرات ذکر بفرمایید تا اصلاح گردد.
با تشکر
موفق باشید

طبقه بندی موضوعی
آخرین نظرات
شنبه, ۱۷ خرداد ۱۳۹۳، ۱۰:۰۲ ب.ظ

درس دوم- سیستم عاملی به نام گنو/لینوکس

در درس قبل گفتیم که هکری اسطوره ای به نام ریچارد استالمن در اوایل دهه ۸۰، درس را رها کرد و با ایجاد موسسه ای نرم افزاری شروع به تبلیغ مفهوم آزادی در دنیای کامپیوتر کرد. دغدغه اصلی استالمن این بود که مردم باید کنترل کامل ابزاری که از آن استفاده می کنند را شخصا در دست داشته باشند و بتوانند با بررسی، بهبود و به اشتراک گذاشتن نرم افزارها، در خلق دنیایی بهتر و آزادتر سهیم باشند. مشخص است که این کار باید از پایین ترین لایه نرم افزاری شروع شود: سیستم عامل.

 

سیستم عامل آزاد گنو
همانطور که می دانید کامپیوتر از دو بخش سخت افزار و نرم افزار تشکیل شده.

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

در حال حاضر کارت شبکه شما برای ارتباط با اینترنت تنظیم شده، مرورگر یا برنامه ایمیل خود را از روی هارد دیسک اجرا کرده اید، با استفاده از دکمه های کیبورد یا ماوس این متن را بالا و پایین می کنید و ممکن است به شکل همزمان کارت صوتی‌ شما هم مشغول پخش کردن یک آهنگ باشد. کنترل مرکزی تمام اینکارها یا به عبارتی کنترل تمام سخت افزار کامپیوتر شما و برقراری ارتباط بین اجزای مختلف آن، وظیفه سیستم عامل است. در یک لایه بالاتر، سیستم عامل سعی می کند با ایجاد کردن یک محیط گرافیکی و نمایش آیکون ها و دریافت فرمان های بیشتر و دقیق تر از طریق ماوس و امکانات مشابه، ارتباط شما با سخت افزار را تا جایی که می تواند راحت تر و بی دردسرتر کند.

پس به شکل خلاصه، سیستم عامل کلید ورود شما به دنیای سخت افزار و پایه ای ترین نرم افزاری است که هر کامپیوتر برای حتی روشن شدن اولیه باید آن را اجرا کند. اگر این برنامه را در کنترل داشته باشید یعنی سخت افزار در کنترل شما است و در مقابل اگر این برنامه درست کار نکند، کل تجربه کامپیوتری شما تحت تاثیر قرار خواهد گرفت.

‎به دلیل این اهمیت بالای سیستم عامل در کاربری کامپیوتر، استالمن تصمیم گرفت یک سیستم عامل آزاد بنویسد. سیستم عاملی که هر کس  بتواند برای هر کاری که می خواهد از آن استفاده کند، آن را بهبود بخشد و با دیگران به اشتراک بگذارد. مشخص است که این پروژه‌ ای است بسیار بزرگ که سال های سال طول می کشد اما یک هکر واقعی، هیچ وقت نگران وقت نیست و البته هکرهای واقعی، تنها هم نیستند.

‎استالمن و دیگران اسم پروژه خودشان را GNU گذاشتند که به فارسی می توانیم آن را گِنو تلفظ کنیم. آنها بهترین معماری سیستم عامل موجود یعنی معماری UNIX که در آن زمان بر روی کامیپوترهای بزرگ به شکل تجاری و بسته موجود بود را انتخاب کردند و شروع کردند به نوشتن یک سیستم عامل کاملا آزاد براساس آن معماری پیشرفته. براساس این معماری لازم بود تا این چهار جزء تکمیل شوند:

  • کرنل (Kernel) که هسته اصلی سیستم عامل را تشکیل می داد و از آن انتظار می رفت با شناخت سخت افزارها بتواند با آنها ارتباط برقرار کند.
  • محیط توسعه نرم افزار؛ مانند کمپایلرها و کتابخانه های مختلفی که بقیه باید از آنها برای ساخت برنامه در این سیستم عامل جدید استفاده کنند.
  • دستورات عمومی زندگی روزمره مانند کپی فایل، برنامه هایی برای کارهای گرافیکی، پوسته ای متنی برای صادر کردن این دستورات، ابزارهایی برای فرمت کردن دیسک و... .
  • مستندات؛ راهنماهای سیستم عامل و توضیحات متنی پیرامون آن

‎پروژه گنو به سرعت پیش رفت و سه جزء آخر را با کیفیتی باور نکردنی تکمیل کرد. کیفیت نرم افزارهای آزاد تولید شده برای سه بخش آخر در حدی بودند که بسیاری از سیستم عامل های دیگر (بخصوص یونیکسی ها) شروع به استفاده از آنها کردند. شاید برایتان جالب باشد که در حال حاضر نیز سیستم عامل مک نسخه ده که بر روی کامپیوترهای اپل جدید اجرا می شوند در لایه پایینی دارای یونیکسی است که از ترکیب محصول پروژه گنو و یک هسته آزاد به نام BSD ساخته شده است.

 

تولید گنو/لینوکس
‎آخرین قطعه پازل برای ساخت یک سیستم عامل آزاد را فردی فنلاندی به نام لینوس توروالدز تکمیل کرد. لینوس که دانشجوی دانشگاه و یک برنامه نویس فوق العاده بود به عنوان تفریح شروع به نوشتن یک کرنل کرد که بعدها به نام لینوکس شناخته شد.

لینوس توروالدز این پروژه را در سال ۱۹۹۱ و به گفته خودش برای تفریح شروع کرده بود و مطمئن بود که هیچ وقت جدی نخواهد شد اما بعد از اینکه آن را با مجوز GPL (همان مجوز آزادی که در درس اول در مورد آن صحبت کردیم) منتشر کرد، تقاضا برای ادامه راه آنقدر زیاد شد که نه فقط سال های بعدی زندگی لینوس و هزاران نفر دیگر صرف تکمیل این هسته شده، که تا امروز هم شغل اصلی او کنترل این پروژه و هماهنگ کردن هزاران نفری است که این هسته را توسعه می دهند.

همراه شدن این هسته قوی و سه جزء دیگر یک سیستم عامل یونیکس که در پروژه گنو در حال پیگیری هستند (محیط برنامه نویسی، ابزارهای عمومی و مستندات)، تشکیل چیزی را دادند که به شکل صحیح باید به آن «سیستم گنو/لینوکس» بگوییم اما بعضی ها در محاوره روزمره آن را به «سیستم عامل لینوکس» یا حتی «لینوکس» کوتاه می کنند هر چند که در نهایت باید بدانیم که «لینوکس» تنها هسته و در نتیجه یکی از چهار جزء اساسی «سیستم عامل گنو/لینوکس» است.

‎در نهایت باید به این توجه کنید که ایجاد یک سیستم عامل برای استفاده روزمره با داشتن کد منبع چیزهایی به پیچیدگی ابزارهای گنو و محیط های گرافیکی و درایورهای سخت افزاری و هسته لینوکس، کار ساده ای نیست و حتی برای یک فرد کاملا حرفه ای، کمپایل کردن (تبدیل کردن سورس برنامه به برنامه اجرایی) تک تک اینها و چیدن مناسب آنها در کنار هم برای راه اندازی یک کامپیوتر رومیزی، زمان بسیار زیادی وقت خواهد برد.

 

توزیع ها
حالا که پروژه گنو و هسته لینوکس دست به دست هم داده اند و یک سیستم عامل آزاد خوب ساخته اند، چگونه باید آن را به دست مصرف کننده نهایی رساند؟

می دانیم که نرم افزار آزاد قابل تکثیر است اما دسترسی به سورس یک برنامه یک چیز است و استفاده روزمره از آن یک چیز دیگر. شما برای بوت کردن یک کامپیوتر با گنو/لینوکس سال ۱۹۹۲ باید کرنل را با یکی از ابزارهای گنو به فایل اجرایی تبدیل می کردید. بعد آن را از یک جای بخصوص هارد به بعد روی آن می‌نوشتید. فلگ‌هایی را تنظیم می کردید تا این برنامه بتواند کامپیوتر را بوت کند و خط فرمان را اجرا کند و بعد تک تک برنامه های کاربردی و کتابخانه های نرم افزاری مورد نیاز آنها را جدا جدا باید کمپایل می کردید (تبدیل به فایل اجرایی می کردید) و براساس نظم و استانداردی که یونیکس استفاده می کند روی دیسک می نوشتید و اگر همه چیز درست و دقیق پیش رفته بود، سیستم با گنو/لینوکس بوت می شد. اینکار حتی حالا هم برای یک حرفه ای، یک پروژه جذاب پر از درگیری در تعطیلات عید به حساب می آید!

‎برای حل این مشکل، افرادی شروع کردند به انجام تمام این مراحل پیچیده و وقت گیر و عرضه محصول نهایی به شکل یک مجموعه دیسک یا سی دی قابل نصب. بعضی از این افراد این دیسک ها را می فروختند (حتما از درس قبل به یاد دارید که فروختن یک نرم افزار آزاد تا وقتی که سورس آن هم در دسترس باشد هیچ مشکلی ندارد) و بعضی ها آنها را به رایگان بین دیگران توزیع می کردند. این مجموعه ها، توزیع های لینوکس یا همان Linux Distroها نامیده شدند. قدیمی ترین دیسترو (یا همان توزیع لینوکس) که هنوز هم زنده‌ است، اسلکور نام دارد.

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

‎علاوه بر انتخاب بسته ها و تنظیمات عمومی، توزیع ها گاهی برنامه های مخصوص به خودشان را هم به کل سیستم عامل گنو/لینوکس اضافه می کنند. این برنامه ها معمولا برای تنظیمات راحت تر سیستم یا حذف و اضافه برنامه ها یا آپدیت برنامه های نصب شده بکار می روند.

‎از مشهورترین توزیع ها می شود به ردهت (RedHat) و دبیان (Debian) اشاره کرد که بسیاری از توزیع های مشهور دیگر از آنها منشعب شده اند. برای مثال اوبونتو که این روزها یکی از پرطرفدارترین لینوکس های موجود است (یا به عبارت صحیح تر یکی از مشهورترین توزیع های گنو/لینوکس‌ موجود) از دبیان انشعاب یافته و فدورا (Fedora) هم به نوبه خود شاخه ای از ردهت به شمار می رود.


منابع:
روند تاریخی رشد و گسترش تمام توزیع‌های گنو/لینوکس

مطالعه بیشتر در مورد معماری یونیکس

موافقین ۰ مخالفین ۰ ۹۳/۰۳/۱۷

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

کاربران بیان میتوانند بدون نیاز به تأیید، نظرات خود را ارسال کنند.
اگر قبلا در بیان ثبت نام کرده اید لطفا ابتدا وارد شوید، در غیر این صورت می توانید ثبت نام کنید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی