نشریه انجمن علمی دانشکده مهندسی کامپیوتر دانشگاه علم و صنعت ایران
لینوکسکار باش تا کامروا شوی!
سفری به دنیای توزیع های سیستم عامل مورد علاقه برنامه نویس ها
نگارنده: محمد اصولیان - ورودی ۱۳۹۹
سری به دنیای توزیعهای لینوکس
شاید براتون پیش اومده باشه که بخواید سیستمعامل لینوکس نصب کنید؛ اما ندونید که کدوم توزیع مناسب شماست. گاهی وقتا انتخابای زیادی دارید و بین دهها توزیع مختلف گیج میشید. این مطلب سعی میکنه که کمی دنیای لینوکس رو براتون بشکافه و یادتون بده که چطور توزیع مد نظرتون رو پیدا کنید. اما قبلش لازمه بدونیم که لینوکس اصلاً از کجا پیداش شده؟
مشکل از کجا شروع شد؟
داستان از این قراره که توی سال ۱۹۸۳، سیستمعامل محبوب اون زمان سیستمعامل یونیکس (UNIX) بوده. تمام پروژهها و تحقیقات دانشگاهی روی این سیستمعامل انجام میشده. اما فردی به نام ریچارد استالمن (Richard Stallman) دو مشکل بزرگ با این سیستمعامل داشت. اول این که این سیستمعامل دارای حق کپی رایت بود و هیچکسی بدون تهیهی لایسنس یونیکس اجازه نداشت با این سیستمعامل کار کنه، و مشکل بزرگتر این بود که ریچارد دوست داشت که یونیکس رو ادیت کنه و تغییرات مورد علاقهی خودش رو روش اعمال کنه اما حتی با وجود تهیه لایسنس هم اجازه همچین کاری رو نداشت. اینجا بود که ریچارد دست به کار شد و پروژه GNU رو شروع کرد.
در مسیر
ریچارد میخواست که یک سیستم عامل جایگزین برای یونیکس بنویسه که برای همه در دسترس باشه و هر کسی بتونه اون رو ویرایش کنه و در دسترس بقیه قرار بده.
"یونیکس از تعداد زیادی نرمافزارهای مختلف تشکیل شده که با هم در ارتباط هستند، پس ما فقط نیاز داشتیم که این نرمافزارها رو یکی بعد از دیگری جایگزین کنیم"
ریچارد استالمن – Revolution OS
ریچارد شروع به بازنویسی این نرم افزارها کرد و نتایجش رو به اشتراک میگذاشت. کمکم افراد دیگه هم از سراسر دنیا به ریچارد پیوستن و تونستن جایگزینی برای تمام نرمافزارهای مهم یونیکس ارائه بدن. اگر با لینوکس کار کرده باشید احتمالاً چند تایی از این نرمافزارها مثل BASH، GRUB، grep، tar و gcc رو میشناسید.
Linus
استالمن و همراهانش تنها یک قدم با هدف فاصله داشتن، اما یک قدم بزرگ. مجموعه نرمافزارهایی که در پروژه گنو نوشته شده بود یک تکه مهم کم داشت و اون تکه کرنل سیستم عامل بود. کرنل بخشی از سیستمعامله که وظیفهی ارتباط بین سیستمعامل و سختافزار رو بر عهده داره. استالمن و تیمش شروع به نوشتن کرنل کردن اما زودتر از اونها، یک دانشجوی فنلاندی به نام لینوس توروالد (Linus Torvald) موفق شد که یک کرنل رو به تنهایی بنویسه و اونو به عنوان بخشی از پروژه گنو منتشر کنه. لینوس اسم این کرنل رو لینوکس (linux) گذاشت.
جالبه بدونید که استالمن و لینوس هر دو با هم شروع به نوشتن کرنل کردن اما علت این که لینوس زودتر به نتیجه رسید این بود که تیم استالمن تصمیم گرفته بود که اساساً یک معماری جدید برای کرنل طراحی کنه و توسعش بده اما لینوس صرفاً از همون معماری کرنل UNIX که ثابت شده و مطمئن بود استفاده کرد.
در نهایت، ماحصل تلاش صدها برنامهنویس و مهندس کامپیوتر در سراسر دنیا سیستمعامل رایگان و متنبازی شد که برای اولین بار با نام GNU/Linux منتشر شد.
توزیع لینوکس
از اونجایی که این سیستمعامل به همه قابلیت استفاده و ایجاد تغییرات میداد، هر گروهی با انجام یک سری تغییرات و اصلاحات، یک سیستمعامل جدید رو معرفی میکرد. به هر سیستمعاملی که بر پایهی پروژهی GNU/Linux بنا شده باشه یک توزیع لینوکسمیگن. خود این سیستمعاملهای جدید هم منشأ تغییرات و اصلاحات دیگه و معرفی توزیعهای جدیدتر میشدن و اینطوری بود که لینوکس، مثل یک درخت رشد کرد و به جایی رسید که امروزه بیشتر از ۱۰۰۰ توزیع لینوکس وجود داره. از این لینک میتونید این درخت عظیم رو ببینید.
تفاوتهای کلیدی
توزیعهای مختلف تفاوتهای زیادی با هم دارن اما خیلی از این تفاوتها اهمیت چندانی ندارن یعنی بیشتر از این که یک خاصیت ذاتی اون توزیع باشن، یک جور تم یا شخصیسازی روی سیستمعامل هستن که به سادگی روی هر توزیعی قابل اعمال هستن. اما بعضی از این تفاوتها ساختاریتر هستن و مربوط به اجزای تشکیل دهنده اصلی یک سیستمعامل هستن. مثلاً:
بوت لودر (Bootloader)
بوت لودر بخشیه که وظیفه لود کردن سیستمعامل رو بر عهده داره مثلاً اگر تابهحال دو سیستمعامل همزمان روی کامپیوترتون رو امتحان کرده باشید، موقع روشن کردن کامپیوتر صفحهای میبینید که توش باید سیستمعامل مورد نظرتون رو انتخاب کنید. این صفحه همون بوت لودر هست.
توزیعهای متفاوت از بوت لودرهای متفاوتی استفاده میکنند. اما معروفترین آنها، systemd-boot و GRUB هستند. اکثر سیستمعاملها از GRUB استفاده میکنند. GRUB نسبت به systemd-boot، بوتلودر جدیدتر با امکانات بیشتری هست و به شما امکان شخصیسازی و انتخاب تم رو میده. اما systemd-boot محیط خیلی ساده و صد البته سبکتری داره.
محیط دسکتاپ (Desktop Environment)
محیط دسکتاپ در واقع رابط کاربری گرافیکی سیستمعامل و کاربره. برای مثال، تم، آیکونها، آپشنها، toolbar، نحوه نمایش نرم افزارها و... همگی تحت تأثیر محیط دسکتاپ هستن.
گزینههای مختلفی برای انتخاب به عنوان محیط دسکتاپ وجود داره اما چند تا از معروفترینهاشون، KDE، gnome و xfce هستن. هیچ چیز مثل تجربه کردن هر کدوم از این محیطها نمیتونه درک خوبی ازشون بهتون بده، اما به طور خلاصه، KDE محیطی شبیه محیط ویندوز رو براتون فراهم میکنه و gnome، بیشتر محیطی شبیه mac داره. xfce هم یک دسکتاپ به شدت سبکه که در مینیمالترین حالت ممکن کار میکنه و ظاهر خیلی قشنگ و پرزرقوبرقی نداره.
پکیج منیجر (Package manager)
میشه گفت که تفاوت در پکیج منیجر یکی از مهمترین تفاوتهای توزیعهای لینوکس هست. پکیج منیجر وظیفهی نصب و حذف و کنترل نرمافزارهای مختلف روی سیستمعامل رو داره. اکثر توزیعها از این سه پکیج منیجر معروف استفاده میکنن: apt، dnf یا yum و pacman. هر سه این پکیج منیجرها کار یکسانی رو انجام میدن ولی میشه گفت سینتکس دستورات pacman کمی پیجیدهتر و نامفهومتر از دو پکیج منیجر دیگست.
اینها تفاوتهای اصلی توزیعهای مختلف با هم رو تشکیل میدهند. موقع انتخاب یک توزیع کافیه ببنید که کدوم یک از این گزینهها محیط راحتتری رو برای شما ایجاد میکنه و توزیعی رو انتخاب کنید که ترکیب مورد نظر شما رو داره.
۳ شاخهی اصلی درخت
قبلتر گفتیم که صدها توزیع مختلف لینوکس وجود داره که خیلیهاشون تفاوتهای خیلی ریزی با هم دارن. این توزیعها همگی مثل یک درخت رشد کردن اما این درخت سه تا شاخه اصلی داره که بقیه توزیعها از روی این سه شاخه گرفته شدن: دبیان (Debian)، آرچ (Arch) و فدورا (Fedora).
دبیان (Debian)
دبیان یکی از قدیمیترین و پرکاربردترین توزیعهاست که اولین بار در سال ۱۹۹۳ منتشر شد و آخرین نسخهای که ازش منتشر شده Debian 12 است. میشه گفت که دبیان پایدارترین و مطمئنترین توزیع بین سه توزیع گفته شدست اما این ترازوی مقایسه یک جنبهی دیگه هم داره. پایداری دبیان در اثر عقب بودن از آخرین تکنولوژیهاست. در واقع هر تکنولوژی جدیدی که به وجود میاد باید یک فرایند تست طولانی رو طی کنه تا بتونه در نهایت توی این توزیع جا باز کنه. همین موضوع باعث شده که دبیان حدود یک سال از دنیا عقبتر باشه.
دبیان از بوت لودر GRUB، پکیج منیجر APT و محیط دسکتاپ KDE یا GNOME به صورت پیشفرض استفاده میکنه.
تعداد خیلی زیادی از توزیعهای معروف دیگه لینوکس مثل اوبونتو (Ubuntu)، کوبونتو (Kubuntu)، مینت (Mint)، کالی (Kali) و ... بر پایهی دبیان هستن.
آرچ (Arch)
آرچ برای اولین بار در سال ۲۰۰۲ منتشر شد. تفاوت آرچ با دو توزیع دیگه اینه که آرچ چیزی تحت عنوان ورژن نداره! به این دسته از توزیعها، توزیعهای رولینگ (rolling-release) میگن به این معنا که تغییرات این سیستمعامل ریز به ریز و در لحظه منتشر میشه و کاربران همیشه از بهروزترین نسخهی آرچ استفاده میکنن. همونطور که قابل حدسه، این خاصیت آرچ باعث میشه که همیشه روی لبهی تکنولوژی باشه اما از طرف دیگه، تا حدی ناپایدار و پر از باگهای مختلف باشه.
جالبه که در آرچ شما معمولاً هر جز اصلیای از سیستمعامل رو خودتون انتخاب و تنظیم میکنید و تنها محدودیت، استفاده از پکیج منیجر pacman هست.
از توزیعهای بر پایهی آرچ میشه مانجارو (Manjaro) رو نام برد.
فدورا (Fedora)
قبل از هر چیز لازم به ذکره که خود فدورا توزیعی بر پایهی توزیع رد هت (RedHat) هست اما چون کاربران بیشتری داره به عنوان یک توزیع اصلی مطرح میشه. میشه گفت که فدورا چیزی بین دبیان و آرچ هست. فدورا نه اونقدر روی لبهی تکنولوژی حرکت میکنه که پر از باگهای سنگین باشه نه به اندازهی دبیان از دنیا عقبه.
فدورا از بوت لودر system-boot، پکیج منیجر DNF یا YUM و محیط دسکتاپ GNOME استفاده میکنه.
از توزیعهای دیگه برپایهی رد هت (RedHat) که به فدورا هم شبیه هستند میشه به سنت او اس (CentOS) و راکی لینوکس (RockyLinux) هم اشاره کرد.
زمان انتخاب
پیشتر سه شاخه از مهمترین توزیعهای لینوکس و بعضی از فرزندانشون رو بررسی کردیم. اما نکتهای که وجود داره اینه که واقعاً فرزندان یک شاخه، اونقدر هم تفاوتی با هم ندارن. همه این توزیعها قابل تبدیل به همدیگه هستن. فقط کافیه اجزای تشکیل دهندشون رو عوض کنید. حتی بعضاً تنها تفاوت توزیعها، توی پکیجهایی هست که به صورت پیشفرض نصب دارن و شما با نصب و حذف یه سری پکیج میتونید هر کاری که توی اون توزیع انجام میشده رو توی یک توزیع دیگه انجام بدید.
برای انتخاب کافیه که یکی از سه توزیع رو با توجه به حالوهوا و نیازتون انتخاب کنید و به دنبال توزیع فرزندی باشید که ترکیب اجزای تشکیلدهنده مورد علاقهی شما رو داره. یا این که همون توزیع پایه رو نصب کنید و به هر شکلی که خودتون دوست دارید درش بیارید. دنیای لینوکس و متنباز دقیقاً یعنی همین.
کلام آخر
توی این مطلب سعی کردم که شما رو کمی بیشتر با حال و هوای لینوکس و توزیعاش آشنا کنم. امیدوارم بعد از خوندن این مطلب، درک بهتری از لینوکس داشته باشید و دفعهی بعدی که میخواستید توزیعی رو برای نصب انتخاب کنید، خیلی گیج نشید و انتخاب سرراست و راحتی داشته باشید :)
مطلبی دیگر از این انتشارات
رخنه اطلاعات، معضلی که نباید برای کاربران عادی شود!
مطلبی دیگر از این انتشارات
وقت مرتب کردنه !
مطلبی دیگر از این انتشارات
تاملی در باب مسیرهای عادی دانشجویی