منظور از یک توزیع لینوکسی چیست و تفاوت این توزیع‌ها با یکدیگر در چیست؟

منظور از یک توزیع لینوکسی چیست و تفاوت این توزیع‌ها با یکدیگر در چیست؟

حتماً برای شما هم این سؤال پیش آمده که منظور از Distribution یا به اختصار Distro به معنی «توزیع» لینوکسی اصلاً چیست؟ و چه چیزی این توزیع‌ها را تا این حد با یکدیگر متفاوت کرده است؟ در این مقاله سعی می‌شود به این سؤالات پاسخ داده شود و عواملی که باعث شده‌اند برخی توزیع‌های مختلف لینوکس در میان انبوه توزیع‌ها سرآمد باشند، بررسی خواهد شد.

چند ماهی است که لینوکس به سن ۲۵ سالگی رسیده است و این در حالی است که در این مدت توانسته پیشرفت های چشمگیری داشته باشد. دنیای لینوکس مملو از توزیع‌های مختلف لینوکس است که به اصطلاح و به صورت خلاصه به آن Linux Distro می‌گویند. کسانی که کار با لینوکس را به تازگی آغاز کرده‌اند انتخاب توزیع مناسب لینوکس ممکن است بسیار سخت و گیج کننده به نظر برسد. ولی قبل از این که بخواهیم به دست به انتخاب یک توزیع بزنیم، باید بدانیم که اصلاً چرا این همه توزیع‌های مختلف برای لینوکس وجود دارد؟ چرا لینوکس هم مانند سیستم عامل ویندوز شرکت مایکروسافت دارای نسخه‌های محدود (خانگی، حرفه‌ای و سرور) نیست؟

تفاوت گنو/لینوکس با سیستم عامل‌های دیگر چیست؟
اگر در حال مطالعه این مقاله هستید، احتمالاً پاسخ این سؤال را از قبل می‌دانید. علت وجود توزیع‌های مختلف آن است که لینوکس یا بهتر بگوییم گنو/لینوکس یک سیستم عامل اپن سورس می‌باشد. هر کسی می‌تواند از آن به صورت رایگان استفاده کند و تغییراتی در سورس کد آن به وجود آورد. در نتیجه افراد بسیاری هستند که دست به تغییر کدها می‌زنند و توزیع‌های اختصاصی خود را به وجود می‌آورند. البته در این جا وقتی صحبت از لینوکس می‌شود، در واقع منظور هسته ی لینوکس (Linux kernel) است نه GNU/Linux که خود این مسئله هم در جامعه اپن سورس بحثی طولانی دارد!

در واقع یک سازمان یا یک فرد مشخص کار توسعه لینوکس را بر عهده نداشته است. لینوکس یک پلتفرم انبوه سپاری توزیع شده (Distributed Crowd-sourced) است که هزاران نفر در توسعه آن نقش داشته‌اند. Linux Foundation یا «بنیاد لینوکس» وظیفه‌اش توسعه هسته لینوکس (Linux Kernel) است و این در حالی است که این ساز و کار را نمی‌توان در ویندوز که یک سیستم عامل کلوز سورس است مشاهده کرد. در مورد ویندوز، صرفا  تیم توسعه ی نرم افزار مایکروسافت مسئولیت توسعه ی این سیستم عامل را بر عهده دارد.

توزیع‌های لینوکس چه هستند؟
همان طور که گفته شد، توسعه ی سیستم عامل‌های کلوز سورس مانند ویندوز تماماً توسط خود شرکت تولید کننده -که در مورد ویندوز می‌شود مایکروسافت- انجام می‌گیرد. یعنی مایکروسافت هسته، رابط کاربری و دیگر اجزای مورد نیاز برای اجرای درست و بدون اشکال سیستم عامل ویندوز را توسعه می‌دهد. ولی در مورد لینوکس وضعیت متفاوت است و اجزای مختلفی توسط افراد مختلف طراحی می شوند. این اجزا شامل Linux Kernel، GNU Utilities، Display Server و Graphical User Interface است.

کرنل لینوکس
Kernel (کرنل یا هسته) لینوکس اولین بار توسط Linux Trovalds طراحی شد. لینوکس کرنل در واقع قلب یک توزیع لینوکس است. در حقیقت کرنل (هسته) هر سیستم عامل مهم‌ترین و حیاتی‌ترین بخش آن سیستم عامل است. توسعه دهندگان زیادی در توسعه ی لینوکس کرنل دست داشتند ولی در میان آن‌ها لینوس توروالدز کنترل و نقش بیشتری در ایجاد تغییرات و اقدامات لازم برای به‌روز رسانی موفقیت آمیز هسته داشته، دارد و احتمالا خواهد داشت.

GNU Utilities
برای درک بهتر می‌توانید یک دفترچه یادداشت را در نظر بگیرید. برای این که بتوانید چیزی در این دفترچه یادداشت بنویسید، ابتدا باید یک مداد یا خودکار در دست داشته باشید. به علاوه برای تصحیح چیزهایی که نوشته‌اید می‌توانید از یک مداد پاک کن (یا لاک غلط گیر) استفاده کنید یا با استفاده از ابزارهای مختلف بخش‌هایی از آن را هایلایت کنید. این‌ها را می‌توان ابزارهای مختلف مورد نیاز برای استفاده از یک دفترچه یادداشت دانست.

در مورد لینوکس نیز این GNU Utilities هستند که ابزارهای مورد نیاز برای انجام کارهای مختلف، مانند سر و کار داشتن با فایل‌ها، ویرایش متن‌ها و مدیریت سیستم را در اختیار قرار می‌دهند. در گذشته، ابزارهای مختلف به شکل پکیج‌های مختلف و جداگانه (Fileutils، extutils، shellutils) ارائه می شدند ولی در حال حاضر GNU همه این موارد را در یک پکیج مشخص که به نام Coreutils شناخته می‌شود، ارائه می‌کند.

بگذارید دوباره به همان مثال دفترچه یادداشت بازگردیم. ابزارهای مختلفی که نام بردیم، مثل مداد و مداد پاک کن و ...، همگی برای آن که مورد استفاده قرار گیرند، باید ابتدا در دست قرار می‌گرفتند. Shell (شل یا پوسته) را می‌توان به منزله ی دست ما در هنگام استفاده از یک دفترچه یادداشت دانست. پوسته ی لینوکس (مانند bash) یک رابط است که به ما امکان استفاده و به‌کارگیری از ابزارهای GNU را می‌دهد. یک پوسته می‌تواند پوسته گرافیکی یا پوسته مبتنی بر کامند لاین -که در آن با استفاده از تایپ کردن دستورات از ابزارهای مختلف استفاده می‌گردد- باشد.

Display Server
Display Server (دیسپلی سرور یا سرور نمایش) بخشی از نرم افزار است که به عنوان واسط میان کاربر و لینوکس ایفای نقش می‌کند. وظیفه اصلی این بخش، کار با ورودی‌ها و خروجی‌های اپلیکیشن های کلاینت (مانند Firefox، LibreOffice و ...)، سیستم عامل و سخت افزارهایی که از یک پروتکل سرور نمایش استفاده می‌کنند است. یعنی اگر بخواهیم ساده‌تر بگوییم، این جزء کارش این است که داده‌ها را از کیبورد، موس و منابع دیگر بگیرد و همچنین داده‌های خروجی را در مقابل کاربر به نمایش بگذارد.

رایج‌ترین سرور نمایش X.Org Server است که بر اساس پروتکل سرور نمایش X Windows System ساخته شده است. کار نگهداری و توسعه ی این کامپوننت هم به عهده بنیاد X.org Foundation است (دیگر سرورهای نمایش محبوب مبتنی بر پروتکل‌های سرور نمایش Wayland و Mir هستند.)

X Server یک جزء جداگانه به نام Widow Manager هم دارد که مسئول کمک به عملیات در بخش‌هایی است که محتوا ممکن است توسط یک اپلیکیشن بر روی صفحه نمایش داده شود. این کار عملیات‌ مختلف مانند حرکت کردن، تغییر اندازه و مرتب سازی مجدد اجزای نمایش داده شده روی صفحه را ممکن می‌سازد.

Graphical User Interface
GUI (جی یو آی یا رابط کاربری گرافیکی) جزئی است که تعامل کاربر از طریق محتوای گرافیکی نمایش داده شده روی صفحه نمایش را ممکن می‌سازد و به جای رابط کامند لاین (CLI) که بیشتر توسط افراد حرفه یی مورد استفاده قرار می گیرد به کار می‌رود. CLI در استفاده از سرور در توزیع‌های مختلف لینوکس مورد استفاده قرار می‌گیرد. محیط GUI در طی سال‌ها تغییرات زیادی یافت تا کاربرانی که استفاده از دستورات را بلد نیستند هم بتوانند از آن استفاده کنند.

سورس کد تمام این اجزای اولیه در دسترس است. برای ساخت یک توزیع لینوکس، توسعه دهنده یا گروه توسعه دهندگان باید تمام این اجزا را در کنار هم قرار دهند. البته این کار اصلاً ساده یی نیست. در حقیقت، کنار هم گذاشتن این اجزاء و اطمینان حاصل کردن از کارکرد درست همه آن‌ها، بسیار دشوار است.

چه چیزهایی باعث تفاوت‌های توزیع‌های لینوکس با یکدیگر می‌شود؟
سازندگان توزیع‌های لینوکس به‌طور کلی محیط کاربری خودشان را در آن استفاده می‌کنند. مانند Unity که در Ubuntu یا Cinnamon که در Mint استفاده شده است. به علاوه، معمولاً ابزارهای به خصوصی در هر توزیع ارائه می‌شود که باعث می شود این توزیع با توزیع‌های دیگران متفاوت به نظر برسد.

به علاوه آن‌ها می‌توانند مرورگر پیش فرض سیستم عامل را هم تعیین کنند که مثلاً Firefox باشد یا Chrome. البته این کار را در مورد نرم افزارهای دیگر مثل انتخاب office suite، music player و ... هم می‌تواند صورت گیرد. همچنین توزیع‌های مختلف لینوکس ممکن است از انواع مختلف Package Installer یا «نصب کننده پکیج‌ها» استفاده کنند یا مثلاً استفاده از هر گونه نرم افزار کلوز سورس را محدود کنند. مثلاً در توزیع Fedora، امکان استفاده از هیچ نرم افزار کلوز سورس و اختصاصی وجود ندارد. 

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

یکی از مسائلی که بسیاری از افراد در مورد آن دچار سوء تفاهم می‌شوند این است که آن‌ها فکر می‌کنند اپن سورس بودن یک نرم افزار به معنی رایگان بودن آن است، در صورتی که چنین چیزی اصلاً درست نیست. درست است که توزیع‌های لینوکس اپن سورس هستند ولی همه آن‌ها قیمت مشخصی دارند. مثلاً توزیع‌های تجاری که برای شرکت‌ها ساخته می‌شوند -مثل RHEL Server- معمولاً پولی هستند.

Ubuntu یکی از پر طرفدارترین توزیع‌های مبتنی بر Debian است که خود Debian هم همان طور که قبل‌تر گفتیم یک توزیع مبتنی بر Linux می‌باشد. این توزیع توسط کاربران عمومی مورد استفاده قرار می‌گیرد. رابط کاربری این توزیع بسیار کاربر پسند است که باعث می‌شود کار با آن بسیار ساده و راحت باشد. Ubuntu که توسط شرکت Canonical پشتیبانی می‌شود، یک مرکز نرم افزاری (Software Center) دارد که برای کاربرانی که با استفاده از کامند لاین نمی‌توانند بسته‌های نرم افزاری را نصب کنند، بسیار مفید و کارآمد است.

این نمای کلی و بخشی از دنیای بزرگ لینوکس بود که با آن آشنا شدید. قطعاً گنجاندن تمام اطلاعات و نکات در مورد لینوکس و توزیع‌های آن در یک مطلب ناممکن است. 

نظر شما در مورد این سیستم عامل اپن سورس چیست؟ به نظر شما این سیستم عامل چه برتری‌هایی نسبت به دیگر سیستم عامل‌ها داشته و چه آینده یی در انتظارش است؟ در مورد توزیع‌های لینوکس چطور؟ کدام یک را بیشتر می‌پسندید؟

منبع