====== مكونات توزيعات لينكس ====== **توزيعات لينكس (Distributions)** هي أنظمة مختلفة تطوّرها جهات مختلفة، تشترك جميعها بكونها تستعمل نواة لينكس لكنّها قد تشحن ضمنها برمجيات أو أدوات مختلفة عن بعضها البعض. يمكنك أن تشبّه التوزيعات مثل إصدارات ويندوز 7 أو ويندوز 10، لكن الفرق هو أنّه في عالم لينكس يستطيع الجميع تطوير توزيعاتهم الخاصّة وإطلاقها للناس كيفما شاؤوا دون انتظار إذنٍ من أحد. تتكون التوزيعة من مئات أو ربما آلاف البرمجيات الصغيرة التي تقوم بمهام معيّنة لتشكّل في مجموعها كامل نظام التشغيل. كل برمجية مسؤولة عن أداء مهمّة معيّنة وبالتالي تتكافل جميعها لتوفير توزيعة لينكس النهائية. لكن هناك مكوّنات أساسية لا غنىً عنها في معظم توزيعات لينكس، وسنشرحها في هذا المقال. ===== مكوّنات توزيعات لينكس ===== ==== 1. النواة ==== **النواة (Kernel)** هي قلب نظام التشغيل، وهي الوحدة المسؤولة عن ربط العتاد الفيزيائي (Hardware) ببقية أجزاء نظام التشغيل؛ مثل مهام توفير الموارد (Resources) وإدارة العمليات وتوزيع الموارد على العمليات، بالإضافة إلى توفير تعريفات قطع العتاد المختلفة وتشغيلها. تستخدم جميع توزيعات لينكس نواة لينكس (Linux Kernel) التي يشرف عليها لينوس تورفالدز، ولا تسمّى توزيعة لينكس بذاك الاسم إن لم تكن تستخدم نواة لينكس (لأنّه من الممكن مثلًا استخدام بقية الأجزاء لتطوير توزيعات من أنوية أخرى مثل BSD). لكن لاحظ أنّ توزيعات لينكس قد تختلف فيما بينها من ناحية النواة حتّى وإن كانت تتشارك باستخدام نواة لينكس؛ فبعضها قد يشحن بعض الترقيعات (Patches) التي تحلّ بعض المشاكل المعيّنة للمستخدمين أو تحسّن من الأداء، بينما غيرها قد يأتي بالنسخة الفانيلا من نواة لينكس القادمة من موقع [[https://Kernel.org|Kernel.org]]. هناك إصدارات معدّلة من نواة لينكس مثلًا مخصصصة للأداء العالي أو لتشغيل الألعاب بقوّة أكبر، مثل نواة [[https://liquorix.net/|Liquorix]]. قد تستخدم توزيعات لينكس إصداراتٍ مختلفة من نواة لينكس؛ فبعضها يأتي مثلًا بالإصدار 5.4 بينما غيرها يأتي بأحدث الإصدارات مثل 5.9، وكلّ توزيعة تتبع سياسة معيّنة في توفير تحديثات النواة ومتى تشحنها للمستخدمين ومتى تمتنع عن ذلك. ==== 2. الصَدَفَة ==== [[https://linux-2-day.com/lib/exe/fetch.php?tok=993f9d&media=https://linux-2-day.com/lib/plugins/ckgedit/fckeditor/userfiles/image/2021-08-05_23-30.png|{{ https://linux-2-day.com/lib/plugins/ckgedit/fckeditor/userfiles/image/2021-08-05_23-30.png?direct&767x520 }}]] تُحاط نواة نظام التشغيل بما يعرف **بالصَدَفَة (Shell)** ، ومن اسمها تفهم أنّها تلتف حول نواة نظام التشغيل وتحيط بها لتفصل بينها وبين بقية البرامج والعمليات على نظام التشغيل. الصدفة ليست متصلة مباشرةً بالنواة فالصدفة هي اﻷخرى ليست سوى برنامج من البرامج، لكنها تتعامل مع البنية التحتية لنظام التشغيل بصورة مباشرة. وظيفة الصدفة هي أن تعمل كوسيط بين نواة نظام التشغيل وبين بقية البرامج ومستخدم نظام التشغيل. النواة مسؤولة مثلًا عن إدارة العمليات والكتابة على الملفّات (I/O) بالإضافة لإدارة الموارد وغير ذلك. لكن ما تقوم به الصدفة هو أنّها تنظّم العلاقة بين النواة والبرامج أو بين النواة والمستخدم، بحيث يمكن للمستخدم أن يتفاعل مع مختلف أجزاء نظام التشغيل ويمرر أوامر (Commands) إليها فتقوم هي بتنفيذ الإجراءات التي يريدها المستخدم. أو يمكن للبرامج كذلك أن تجمع بيانات وتنفذ عمليات على مختلف أجزاء نظام التشغيل عن طريق الاتصال بالصدفة أوّلًا. فالصدفة هي - عمليًا - سطر الأوامر الذي تفتحه للتواصل مع مختلف أجزاء نظام التشغيل. الصدفة الافتراضية على معظم توزيعات لينكس هي [[https://www.gnu.org/software/bash/|Bash]]، وهناك صدفات أخرى مثل Zsh وFish وغيرها تأتي بمميزات وأهداف مختلفة. ==== 3. محمّل الإقلاع ==== [[https://linux-2-day.com/lib/exe/fetch.php?tok=0d1f93&media=https://linux-2-day.com/lib/plugins/ckgedit/fckeditor/userfiles/image/s5m71.jpg|{{ https://linux-2-day.com/lib/plugins/ckgedit/fckeditor/userfiles/image/s5m71.jpg?direct&800x450 |165.227.162.0_lib_plugins_ckgedit_fckeditor_userfiles_image_s5m71.jpg}}]] أوّل برنامج يعمل بعد الانتهاء من النظام الإقلاعي الخاصّ بالجهاز (BIOS) هو **محمّل الإقلاع (Bootloader)** الخاصّ بنظام التشغيل. وظيفة محمّل الإقلاع ببساطة تحميل نواة نظام التشغيل إلى الذاكرة العشوائية (RAM) ثمّ تشغيل أي برامج أخرى قد تكون مسؤولة عن متابعة عملية الإقلاع. محمّل الإقلاع الرئيسي على معظم - ولربما جميع - توزيعات لينكس هو محمّل GRUB2 الشهير. يسمح محمل الإقلاع بتثبيت أكثر من نظام تشغيل على نفس الحاسوب، ثم اختيار نظام التشغيل المطلوب عند الإقلاع لتشغيله. فيمكنك مثلًا تثبيت ويندوز و4 توزيعات مختلفة من لينكس على جهازك دون أي مشكلة. ==== 4. مدير النظام ==== البرامج ليست سيانًا على نظام التشغيل. هناك خدمات (Services) وهناك برامج تعمل من سطر الأوامر وهناك برامج تعمل في الخلفية (Daemons)، وهناك برامج رسومية وهناك صدفات وهناك خواديم عرض ووو… أشياء كثيرة وعريضة. وهذه الأشياء بحاجة إلى أن تُدار بطريقة معينة تسمح بتفعيلها أو تعطيلها أو فحصها أو إجراء أي عملية عليها متى ما احتيج ذلك من طرف نظام التشغيل. هنا يأتي دور مدير خدمات النظام (System Services Manager) وهو البرنامج الأوّل الذي يُحمّل بعد نواة نظام التشغيل، فوظيفة هذا البرنامج هو أن يبدأ تحميل وإدارة العمليات الأخرى التي تأتي بعده جميعًا، مثل خادوم العرض ومدير العرض وبيئة سطح المكتب والبرامج العادية وغير ذلك. مدير خدمات النظام مسؤول عن إدارة العمليات بصورة مباشرة داخل نطاق المستخدم. هناك تقسيمان لجميع البرمجيات التي تعمل على الحاسوب: - **User Space**: ويقصد بها مساحة تطبيقات المستخدم، أي أنّها البرامج المسؤولة عن التفاعل مع المستخدمين وأخذ أوامر الإدخال منهم وعرض المُعطيات لهم على الشاشة. النواة مثلًا ليست ضمن مساحة تطبيقات المستخدم فالنواة هي جزء أصيل من نظام التشغيل ذاته لا يعمل دونها. لكن مثلًا برنامج متصفّح فيرفكس أو بيئة سطح المكتب، هذه كلّها برامج ضمن مساحة المستخدم. - **Kernel Space**: مساحة النواة، ببساطة هي النواة ذاتها وكلّ ما يتعلق بها بصورة مباشرة. مثلًا إدارة عمليات الكتابة والقراءة من الملفّات بالإضافة لأنظمة الملفّات وغير ذلك. ==== 5. خادوم العرض ==== خادوم العرض (Display Server) هو البرمجية المسؤولة عن أخذ الإدخال (Input) من المستخدم وعرض الإخراج (Output) له ضمن نظام التشغيل. مثلًا مدير العرض هو المسؤول عن تحريك الفأرة باتجاه معيّن عندما تحرّكها أنت على طاولتك، فمدير العرض هنا يأخذ إدخالًا (Input) من جهاز الفأرة الخاصّة بك ويحوّلها إلى إخراج (Output) تراه أنت يتحرّك على الشاشة على شكل مؤشّر الفأرة. لأكثر من 30 عامًا كان Xorg هو خادوم العرض الافتراضي على أنظمة لينكس لكن هذا يتغيّر تدريجيًا، فقد ظهر بروتوكول (Protocol) جديد لخواديم العرض هو Wayland. وايلاند بحد ذاته ليس برمجية أو خادوم عرض بل هو معيار وطريقة تواصل، يأخذه المبرمجون ويفهمونه ثمّ يطبّقونه على بيئة سطح المكتب والتطبيقات المختلفة لجعلها متوافقة مع بروتوكول وايلاند. مثلًا GNOME Compositor وKWin Wayland Compositor هي خواديم عرض مختلفة تستعمل معيار وايلاند، لكن وايلاند بحد ذاته ليس شيئًا يمكنك تحميله مثلًا أو تثبيته. ما تزال خواديم العرض المكتوبة بوايلاند قيد التطوير والتجريب ولم تنتهي بعد، والهدف من تطويرها بالأساس هو حلّ بعض المشكلات الأمنية والمشكلات المتعلقة بالأداء التي كانت موجودة في السابق على خادوم Xorg. لكن العملية تستغرق وقتًا فوايلاند ما يزال تحت التطوير منذ 2008م. ==== 6. مدير العرض ==== مدير العرض (Display Manager) هو البرمجية المسؤولة عن أخذ عمليات تسجيل الدخول والخروج للمستخدمين إلى أنظمتهم، بالإضافة إلى تشغيل بيئة سطح المكتب المختلفة. مدير العرض هو البرمجية التي تسألك مثلًا عن اسم المستخدم وكلمة المرور قبل تسجيل الدخول إلى سطح المكتب الخاصّ بك. بعض التوزيعات تستعمل مدير عرض GDM بينما غيرها يستعمل KDM. هناك ربما 10-20 مدير عرض مختلف على أنظمة لينكس. ==== 7. بيئة سطح المكتب ==== [[https://linux-2-day.com/lib/exe/fetch.php?tok=b80088&media=https://linux-2-day.com/lib/plugins/ckgedit/fckeditor/userfiles/image/2021-08-05_23-34.png|{{ https://linux-2-day.com/lib/plugins/ckgedit/fckeditor/userfiles/image/2021-08-05_23-34.png?direct&1920x1080 }}]] بيئة سطح المكتب هي مجموعة من المكوّنات الرسومية التي يمكن للمستخدم التعامل معها لأداء مختلف المهام. تشمل تلك المهام تصفح الملفات وفتح الطرفية (Terminal) وتشغيل التطبيقات الأخرى المتوفرة على النظام بالإضافة لأي نشاطات إضافية قد يحتاجها المستخدم. هناك الكثير من بيئات سطح المكتب على لينكس، مثل جنوم وكدي وإكسفس وسينامُن وغيرها، لكن أشهرها على الإطلاق [[https://www.gnome.org/|جنوم]] و[[https://kde.org/|كدي]]. ==== 8. البرامج العادية ==== في النهاية لدينا البرامج العادية التي يستعملها المستخدم؛ مثل متصفح فيرفكس أو برنامج VLC أو غيرها من البرامج التي يمكن للمستخدم اختيار تثبيتها أو إزالتها بسهولة وقتما شاء. تختلف هذه البرامج بالطبع بين التوزيعة والأخرى، فالبرامج الافتراضية التي تأتي على توزيعةٍ ما لن تكون هي نفسها على توزيعةٍ أخرى. كما قد يختلف أداء هذه البرامج (والألعاب) بين توزيعات لينكس بسبب كونها تشحن إصدارات مختلفة من قطع البرمجيات السابقة التي تحدثنا عنها في هذه الصفحة، وقد يثبتون إضافات لها أو قد يحسنونها من طرفهم للحصول على أداء أفضل، وقد لا يفعلون ذلك. يأتي مطورو التوزيعات ويجمعون هذه المكونات مع بعضها البعض ثم يبنون التوزيعة عبر بعض الأدوات الخاصة للحصول على ملف ISO يمكن حرقه على فلاشة USB من طرف المستخدمين لتثبيت التوزيعة على أجهزتهم (أو قد يثبتون التوزيعة بأي طريقة أخرى عبر ملف الـISO ذاك). ينشر مطورو التوزيعات روابط تحميل ملفات الآيزو تلك على مواقعهم الرسمية، ثم يأتي المستخدمون ويحملونها ويثبتونها على أجهزتهم. ===== ما معنى أن "توزيعة كذا مبنية على كذا"؟ ===== يشيع مثلًا أن نقول أن توزيعة أوبونتو مبنية على توزيعة دبيان، وتكون هنا أوبونتو هي التوزيعة البنت ودبيان هي التوزيعة اﻷم. والمقصود بهذا هو أن مطوري توزيعة أوبونتو لم يأتوا ويبنوا جميع الحزم الخاصّة بتوزيعتهم من الصفر، بل استعملوا الحزم القادمة من دبيان لكي يقوموا ببناء توزيعتهم وعمل إضافات عليها، ولهذا نقول أن أوبونتو مبنية على دبيان، ونقول أيضًا أن توزيعة لينكس منت مبنية على أوبونتو بنفس الشكل.