أوجه تفضيل نظام تشغيل ديبيان جنو/لينكس

من موسوعة حسوب
مراجعة 14:38، 19 يناير 2022 بواسطة أسامه-دمراني (نقاش | مساهمات) (2.0 محتوى الصفحة)
اذهب إلى التنقل اذهب إلى البحث

ديبيان هي توزيعة جنو/لينكس، وتمثل أيضًا أحد أنظمة التشغيل الشبيهة بنظام تشغيل يونكس، وتفصل هذه الصفحة في الأسباب التي تجعلها أفضل مما سواها من التوزيعات من ناحية، وفي الأسباب التي تفضل نظام تشغيل لينكس عمومًا عن غيره.

فلسفة النظام ومجتمعه

تمثل الفلسفة التي تقوم عليها نظم تشغيل الحواسيب الموجودة الفرق الجوهري بين تلك النظم، فنتائج الأداء تتغير، وكذلك سهولة الاستخدام وثبات النظام والبرمجيات ومدى توافرها وإتاحتها، وينبغي إعادة تقييم هذه المعايير بشكل دوري مع الوقت. إذا جمعنا فلسفة النظام إلى المجتمع الذي يستخدمه فإنهما يمثلان معًا السببين الرئيسيين اللذين يدفعان المستخدمين إلى اختيار نظام التشغيل عن غيره. وسبب تفضيل البرمجيات الحرة عن غيرها في الغالب في نظر المبرمجين أو العاملين فيها أن لها رونقًا عن البرمجيات المملة التي تتبع الشركات في الغالب، أو أنها مجانية في أحيان كثيرة. كذلك فإن دوافع المبرمجين الذين يكتبون تلك البرمجيات تتفاوت، لكنهم يتفقون أن المقابل الذي يحصلون عليه في الغالب هو شهرتهم في مجالهم وبين زملائهم، أو خبرة يمكن استغلالها في أعمال ووظائف أخرى قد تكون مدفوعة أو تابعة لشركات. غير أن السبب الأساسي الذي قد يعطي البرمجيات الحرة أفضليتها هو الوقوف على أكتاف العمالقة، وبأخذ مثال من طريقة إجراء الأبحاث الأكاديمية، فإذا اضطر الباحثون إلى إعادة اختراع العجلة واكتشاف ما ليس موجودًا في الكتب بأنفسهم فسيكون التقدم العلمي بطيئًا جدًا، وإنما يبدأ الباحث مثلًا بالنظر في المواد الموجودة من قبل واستقراء ما يجذب انتباهه فيها، وربط ذلك مع أوراق بحثية أخرى قد لا تكون مرتبطة ببحثه، وذلك بناءً على أفكار باحثين آخرين في مجاله. أما السرية التي تكتنف البحوث فلا تكون في الغالب إلا إلى مرحلة نشر ذلك البحث، ثم يتشارك الناس تلك الأوراق والعلوم التي فيها والنتائج التي وصلوا إليها من تلك الأوراق نفسها أو بالبناء عليها، فنستنتج من ذلك أن قابلية إعادة إنتاج الأفكار من أكثر أسباب نجاحها وتطورها. لكن البرمجيات مغلقة المصدر تكون على النقيض من ذلك، إذ يبدأ من يريد أن يكتب برنامجًا فيها من الصفر في كل مرة، مما يزيد من الموارد المستهلكة في إعادة اختراع العجلة في كل مرة من الوقت والجهد وتكلفة عملية كتابة البرامج من الصفر في كل مرة، على خلاف إن كنا نسمح بمشاركة الأفكار والبناء عليها لتقليل استهلاك تلك الموارد وتوفير الوقت الضائع في البرمجة والتنقيح، ويكون الفيصل هنا هو ضمان بقاء حافز الإنجاز، سواء كان ذلك الحافز ماديًا أم لا. وهذا يقودنا إلى رخصة جنو العامة GNU Public License والمنظور الذي تتبناه مؤسسة البرمجيات الحرة، بدلًا من رخصة BSD مثلًا رغم أنها رخصة برمجيات حرة كذلك، ومن ثم إلى نظام ديبيان جنو/لينكس، ذلك أن رخصة BSD لم تركز على حرية البرمجيات بقدر رخصة جنو التي يهمها أن تبني مجتمعًا يتشارك أفراده الأفكار والمعلومات المفيدة بينهم. ونظام ديبيان مثال عظيم يجسد ثقافة البرمجيات الحرة عمومًا، فوثيقة ديبيان المجتمعية Debian Social Contract تشكل عاملًا مهمًا في اختيار هذا النظام لما فيها من التزام بثقافة البرمجيات الحرة والاعتراف بأنه ستكون حالات يُحتاج فيها إلى استخدام برامج لا تتوافق مع تلك الثقافة. كذلك فإن المجتمع الذي ينشأ حول البرمجيات الحرة عمومًا ولينكس خصوصًا يُعد سببًا آخر لتفضيل رخصة جنو ولينكس عمومًا عن اليونكسات والأنظمة التي تتبنى رخصة BSD، خاصة في الأيام الأولى لتطور تلك الرخص، فمن ذلك أنه ليس فيه الطبقية التي في مجتمع BSD، التي تقسم المطورين إلى مطورين محترفين ومساهمين مبتدئين، فقد كان مجتمع لينكس على النقيض من هذا في تشعبه وشموليته، حيث لم تكن خلفية المطور ولا سمعته أهم من الشيفرة التي يكتبها، ويستطيع كل أحد أن يشارك في تطوير نظام التشغيل نفسه، فيشعر المطور أن له يدًا في تطور ونجاح نظام التشغيل مع كل تحديث واقتراح وتعديل يساهم به.

فوائد ديبيان وسهولة استخدامه

يبحث أغلب الناس حين يختارون نظام تشغيل عن الفائدة التي سيحصلون عليها من استخدامه، وعن سهولة ذلك الاستخدام، وذلك بعد تكلفته قطعًا، ولا شك أن قابلية الاستخدام تعتمد على الأهداف التي يُستخدم نظام التشغيل لها ومتطلبات تلك الأهداف، غير أنه توجد مساحة واسعة يمكن الاتفاق عليها. ويتكون نظام التشغيل من برمجيات كثيرة غير نواة لينكس التي تشتهر بين الناس إذا ذُكرت توزيعات لينكس، ولهذا فمن اللازم وجود تكامل قوي بين تلك البرمجيات وبعضها وإن كان هذا أمر يُهمل في الغالب عند الحديث عن مزايا نظام تشغيل ما، فنظام التشغيل الذي تتكامل برامجه فيما بينها يكون استخدامه أسهل من غيره، ويقدم مزايا قد لا تستطيع نظم التشغيل المنافسة له تقديمها بنفس الجودة. ونظام ديبيان واحد من تلك النظم المتكاملة جيدًا، حيث تتتبع الحزم التي فيه علاقاتها مع بعضها بعضًا من خلال مجموعة غنية من العلاقات الدقيقة، وليس من خلال آلية الاعتمادية/التعارض dependencey/conflict فقط، فمنها مثلًا علاقة الاعتمادية الاستباقية pre-dependency، إضافة إلى علاقة الاعتمادية المعتادة، والتوصيات recommendations، والاقتراحات suggestions، والتعارضات conflicts، والعلاقات المحسنة enhanced relationships. وقد صُنِّفت الحزم في ديبيان وفقًا للأولوية -الضرورية essential إلى الإضافية extra-، ووفقًا لوظيفتها، ومن هذا التنوع في العلاقات بين الحزم -والذي يدركه نظام التحزيم packaging system وينتبه إليه-، نستطيع أن نرى المستوى الذي تتوافق فيه الحزم مع بعضها بعضًا. وقد قام على تطوير نظام ديبيان أكثر من ألف متطوع، مما يعني أن كل مطور كان حرًا في متابعة أداء البرامج التي تهمه أو التي يحتاج إليها لمهامه الخاصة، بل وتحديثها كذلك، ولهذا يستطيع نظام ديبيان أن يغطي شرائح مختلفة من التخصصات بما أن كل مطور كان يحل مشاكله التي تواجهه شخصيًا في الغالب، وهذا يختلف عن التوجه الواسع الذي تنتهجه توزيعات لينكس التجارية التي تحاول تغطية المهام الشائعة فحسب.

وقد وُجد أن الحواسيب العاملة بديبيان تحتاج إلى متابعة يدوية أقل، وأسهل في التحديث، ولا تتعطل بنفس المقدار الذي تتعطل به الحواسيب العاملة بتوزيعات أخرى مثل ريدهات RedHat وماندريك Mandrake -التي صارت ماندريفا لاحقًا ثم توقف تطويرها-، كذلك الحال بالنسبة لنظام SunOS، نظام شبيه بيونكس يعتمد على BSD طورته شركة Sun Microsystems لأجهزتها، ثم بُني في إصداره الخامس على نسخة SystemV من يونكس وتم تسويقه تحت اسم Solaris.

وأحد الأسباب التي ترجح اختيار ديبيان كنظام تشغيل عن غيرها من توزيعات لينكس، هو المقدار الهائل لمشروعها الذي يشير إلى أن ديبيان لن تختفي فجأة فيصبح المستخدم لها عالقًا دون دعم فني، فليس من الممكن مثلًا أن تفلس إذ أنها ليست شركة، بل هي عقد مجتمعي لا يسمح للمشروع أن يقرر فجأة ألا يدعم الإصدارات غير التجارية من التوزيعة، لئلا يقع المستخدمون العاديون تحت رحمة رغبات الشركات من نظام التشغيل.

توفر ديبيان ثلاثة إصدارات مستقلة من كل نسخة جديدة منها هي stable و testing و unstable، ويمكن الاختيار من بينها وفقًا للوظائف والمهام التي لدينا، فالأولى هي stable، وهي تصلح للخوادم وبيئات العمل التي ليس فيها تغيير كبير في المهام التي تنفذها -مثل منصات الأكشاك التفاعلية kiosks التي تكون في الأسواق والمتاجر-. أما الإصدارة الثانية فهي testing، وهي تصلح لمحطات العمل الشخصية، ولا توجد تحديثات أمنية لهذه الإصدارة، والجميل هنا هو القدرة على اتخاذ قرارات مفصَّلة وفقًا لحالة كل حاسوب ومهامه، على أن الخيارات التي تبدو غير مستقرة في ظاهرها تكون ثابتة بما يكفي لئلا تتعطل -نظريًا على الأقل-، أما إصدارة stable، فهي لا تتعطل أبدًا.

كذلك تقدم ديبيان قدرًا كبيرًا من التغذية الراجعة feedback، فمشروع XFree على سبيل المثال لا يتابع أو ينقح X بنفسه لكل المعماريات التي تدعمها ديبيان، بل يعتمد على ديبيان نفسها في ذلك، وقد تمت عدة إصلاحات عميقة لـ libc -كان هناك خطأ في عدٍ مرجعي reference counting مؤخرًا في glibc عند تحميل dlopening كائن مشترك باعتماديات ELF معينة، وقد اكتشفها مطورو ديبيان-. إن هذا الانتباه للتفاصيل يندر أن يوجد في أي توزيعة لينكس أخرى بنفس مقدار الخبرة والسرعة والرغبة في مساعدة المستخدمين النهائيين، مما يوفر دعمًا من طرف ثالث دون الحاجة لتواجد موظفين ذوي خبرة داخل الشركات التي تعتمد على ديبيان في مهامها.

أما بالنسبة للأنظمة المشتقة فيعمل كل من DSFG و main على تبسيط بناء الأنظمة بتراخيص يمكن التنبؤ بها.

جودة التنفيذ

يختار المستخدمون نظام ديبيان في العادة بسبب أداة apt-get، غير أن هذه الأداة ليست السبب في تجربة استخدام ديبيان الممتازة، فهي مجرد ميزة يعاد إنتاجها بسهولة، ولا تتساوى مع الأدوات المشابهة في التوزيعات الأخرى سواء كانت yum أو urpmi أو apt4rpm أو غيرها، فالعامل المميِّز على الحقيقة هو سياسة ديبيان، وعملية الضمان الصارمة لصيغة التحزيم، فأشياء مثل apt-listchanges و apt-list-bugs و dpkg-builddeps و pbuilder و pbuilder-uml --، ما كانت لتنُفَّذ لو كانت لا تطابق سياسة التحزيم.

وهذا الاعتقاد الشائع أن سبب نجاح ديبيان هي apt-get يشبه المعتقد المسمى بديانات الشحن Cargo religions، وهو ما انتهجته بعض الشعوب التي لم تختلط بالحياة الحديثة ثم فوجئت بمئات الآلاف من الجنود الأمريكيين يعبرون من أراضيهم في الحرب العالمية الثانية محملين بالمؤن والسلاح، فظنوا أن الأرواح التي تذهب وراء البحار -بزعمهم- هي التي أرسلت لهم المؤن ثم اعترضها الجنود الأمريكيون، فعكفوا على محاكاة التدريبات العسكرية للجنود ولو كان بأسلحة من خشب أو وهمية، وبناء مدرجات للطائرات مع أبراج تحكم وهواتف وهمية من خشب، ظنًا أن هذا يجعل الأرواح ترسل لهم المؤن من جديد.

وقد تسبب هذا المعتقد بشأن أداة apt-get في قيام كل توزيعة باستنساخ المفهوم إليها ظنًا منها أن هذا يجذب المستخدمين إليها، فنسخت القشرة الخارجية الظاهرة لبنية تحزيم ديبيان، دون معالجة المشاكل العميقة لسياسة التحزيم نفسها أو تعارضات المتطلبات التقنية مع ضرورات التسويق الاقتصادية، وهو الأمر الذي يوجد في توزيعات جنو/لينكس أيضًا مثل البرمجيات المغلقة، وإن كان بصورة أقل ضررًا.

وتمتلك توزيعات مثل ريدهات وماندريفا وغيرها من فئتهما نسخًا كبيرة الحجم جدًا، والغالب في سبب هذا أن تثبيت البرمجيات فيها صعب حتى مع استخدام RPM، على عكس نظام ديبيان الذي يسهل تثبيت الحزم فيه للغاية موازنة بها. وعلى ذلك يكون السبب في تميز ديبيان على الحقيقة هو سياستها، وفريق الحماية والأمن فيها، وآليات أولوية الزلات البرمجية الرسمية فيها bug priority mechanisms، وسياسة الزلات البرمجية نفسها -أي ملف ثنائي binary دون صفحة man يُعد تقريرًا لزلة برمجية، وأي تفاعل مع المستخدم دون استخدام debconf يُعد زلة أيضًا-، وتوضح صفحة Why Debian Rocks ذلك كما يلي:

إن وضوح سياسة ديبيان وفرضها من خلال الأدوات والبرامج التي تُستخدم كل يوم هو القلب النابض لتفوق ديبيان عن جميع أنظمة التشغيل الأخرى، وهكذا فإن استخدام apt-get install مثلًا لتثبيت برنامج هو فرض ضمني لسياسة ديبيان نفسها وليس مجرد تثبيت برنامج، سياسة هدفها ضمان وجود أفضل نظام ممكن.

هذه السياسة لا تخط حدود المستخدم فقط في أفعاله داخل النظام، وإنما ترسم حدود ديبيان نفسها، فتقرر الأجزاء التي يستطيع نظام إدارة الحزم أن يجري تعديلات عليها، وكيفية التعامل مع ملفات الإعدادات configuration files وغيرها، وتقييد التوزيع بهذه الطريقة يمكِّن مدير النظام من إجراء تعديلات خارج حدوده دون خوف من أن تغير حزم ديبيان في تلك التعديلات.

تقدم سياسة ديبيان فئة جديدة من الزلات البرمجية، وهي زلّات سياسة التشغيل policy bugs، وهي زلات تُصنف أنها حرجة وتؤثر في وجود الحزمة في ديبيان المستقرة من عدمه، أي أنها release-critical، فأي حزمة تخرق سياسة ديبيان لن تُدرَج في إصدارة stable من ديبيان.

يضاف إلى ما سبق فريق QA في ديبيان الذي يقوم بتحميلات "غير المشرفين" أو Non Maintainer Uploads -وهي عملية تحميل حزمة إلى أرشيف ديبيان من قِبل مطور غير المطور المسؤول عن متابعة الحزمة وصيانتها-، ويساعد في تنقيح الزلات البرمجية، وإجراء التحديثات الأمنية، ويضمن تكامل بناء النظام ككل بدلًا من إصلاح الحزم منفصلة عن بعضها. كذلك توجد أدوات كثيرة في النظام الفرعي لضمان الجودة لمساعدة المطورين على العناية بحزمهم، وذلك هو السبب الذي يجعل ديبيان مرغوبة فيها.

كذلك فإن عملية التقييم التي تمر بها كل حزمة في التوزيعة غير المستقرة unstable قبل أن تنتقل إلى نسخة testing تعزز من جودة المنتج النهائي لديبيان في المجمل، حيث تنتقل الحزمة إلى نسخة testing إذا لم تظهر فيها مشكلة كبيرة لمدة معينة، وتكون تلك النسخة مرشحة لتكون الإصدارة التالية للتوزيعة المستقرة، والتي لا تُطلّق إلا عند حل جميع الزلات البرمجية الحرجة، وعملية الاختبارات الدقيقة تلك هي السبب الذي يجعل دورة إصدار ديبيان أطول من التوزيعات الأخرى، لكن هذا مزية من منظور الاستقرار، إذا وازنا ذلك مع توزيعة RedHat Enterprise Linux التي تجعل دورة الإصدار بين العام والعامين، وهو ما كانت ديبيان تتبعه قديمًا.

يعزز دعم ديبيان لعدة معماريات من جودة الحزم، ذلك أن عملية استيراد البرمجيات أو نقلها porting تكشف عن الأخطاء الموجودة في الشيفرة، إضافة إلى أن جميع البرمجيات في ديبيان تمر بعشرة عمليات بناء آلية daemon builds على الأقل -يشار إليها باسم buildd-، وتحتاج إلى أن تكون خالية من الأخطاء عند البناء في تلك البيئات المختلفة، وأن تكون كلًا من سكربتات البناء والتثبيت ثابتة للغاية، وتحتاج إلى تتبع صارم لاعتماديات وقت البناء، إضافة إلى مرايا أرشيفات المصادر source archive mirrors، وتتبع الإصدارات version tracking، ليكون لدينا نظام ثابت ومستقر (يوفر رابط snapshot.debian.org طريقة سهلة لعمليات التراجع).

يمثل نظام تتبع الزلات البرمجية في ديبيان ركنًا أساسيًا في جودة التوزيعة، وبما أن الإصدارات ترتبط بعدد الزلات البرمجية الحرجة في النظام فإنه يضمن أن جودة الإصدارة أفضل من أي يونكس آخر، ومدير الإصدارة هنا لا يتردد في التخلي عن أي حزمة غير ضرورية فيها زلة حرجة إذا لم يتم إصلاحها، أو عن تأخير الإصدارة إذا كانت الحزمة ضرورية أو حرجة.

تميل ديبيان إلى تنفيذ الأمور على أتم وجه في كل إصدارة بدلًا من استعجال العمل لإطلاق التوزيعة قبل عيد ما أو إجازة سنوية، ويتحقق لها ذلك لغياب مواعيد التسليم المرتبطة بالدورات التجارية business cycles، ولأن نسبة المطورين إلى الحزم عالية بالموازنة مع التوزيعات الأخرى.

اختيار البرامج في ديبيان

تحتوي ديبيان على أكثر من 29 ألف حزمة برمجية، يقوم على متابعة كل منها مطور ما ليضمن خلوها من الزلات البرمجية وتحديثها وتكاملها مع باقي النظام، وتبذل ديبيان جهدًا دُوليًا كبيرًا في ترجمة التوثيقات الخاصة بالحزم، وقد يترجم أحد ما صفحة man لحزمة يقوم على تطويرها مبرمج آخر، وكذلك سكربتات التثبيت والإعدادات حيث يمكن تنفيذ ذلك مع جميع تفاعلات debconf، وما يسهل تنفيذ تلك الأعمال هو مجتمع المستخدمين الممتد على رقعة جغرافية كبيرة فيها الكثير من اللغات، وهو جهد يضاهي ذلك المبذول في بيئتي سطح المكتب جنوم Gnome و كِدي KDE.

تجدر الإشارة إلى بعض المشاريع الأخرى التي تميز ديبيان عن غيرها، فمن ذلك مشروع توثيق ديبيان، وخادم Alioth -الذي استُبدل خادم Salsa به في 2017-، ومثبِّت ديبيان، وقرص ديبيان المدمج، وحزمة Lintian، ونظام تتبع الحزم. كذلك من المزايا الأخرى التي تختص بها ديبيان ما يلي:

1. debconf والقدرة على الإعداد المسبق لقواعد البيانات. 2. make-dpkg مع إغلاق محثات install-time. 3. ‎/usr/share/doc/{Changelog.Debian,changelog,copyright,README.Debian}

كذلك تحتوي ديبيان على مجموعة عظيمة من الأدوات لمطوري النواة أو التوزيعات، وكذلك مهندسي تكامل النظم system integrators، مثل debbootstrap، chroots، user mode Linux، Xen، وغيرها من الأدوات التي يستخدمها مطورو التوزيعات في آليات التثبيت والأنوية وتعريفات العتاد.

توجد عدة مجتمعات من بين تلك التي تستخدم ديبيان، تمثل مشروعات فرعية، مثل Debian-Jr الموجهة للأطفال، و Debian-med الموجهة للأبحاث الطبية، و Debian-Edu المخصصة للبيئات التعليمية والمدارس، و Debian-non-profit للمنظمات غير الربحية، وكذلك Debian-lex المجهزة للمؤسسات القانونية. هذا إضافة إلى أن العديد من مطوري ديبيان من المكفوفين، وعلى ذلك فقد جُهز النظام بالعديد من أدوات قراءة المخرجات ودعم الإدخال بلغة برايل إما بلوحات مفاتيح مخصصة لذلك أو بلوحة المفاتيح العادية باستخدام brltty.

الأنوية Kernels

تبدو أنوية BSD أكثر استقرارًا وأفضل جودة من أنوية لينكس، فهي أسهل في القراءة والفهم، لكن من الناحية الأخرى فإن أنوية لينكس فيها مزايا وخصائص أكثر، وقد تحسنت جودة أنوية لينكس تحسنًا ملحوظًا في الآونة الأخيرة من حيث الأداء ودعم العتاد إلى حد أن دعم العتاد في BSD أحيانًا قد يكون متأخرًا عن نظيره في أنوية لينكس بخمس سنوات.

رغم أن ذلك الدعم المتزايد للعتاد كان يعني بالضرورة زيادة الزلات البرمجية bugs إلا أن القدر الموجود لا يصل إلى حد إعاقة العمل على النواة أو استخدامها، إضافة إلى أن الثغرات قد تكون في مزايا غير موجودة في أنظمة BSD أصلًا، كما حدث في ثغرة استدعاء mremap(2) قديمًا، وعلى كل فيمكن الجمع بين حسنات النظامين لمن أراد من خلال استخدام ديبيان Gnu/FreeBSD.

مساحة المستخدم User Land

تختلف مساحة المستخدم في BSD عنها في جنو، وقد استخدمت مساحة جنو على حواسيب Ultrix/Aix/HP-UX -وهي يونكسات قديمة من إنتاج IBM و DEC و HP- من أجل توحيد تجربة الاستخدام، ولأني رأيتها مريحة أكثر.

لكن يجب ملاحظة أنه من الممكن تثبيت مساحة مستخدم جنو في حواسيب - كما في ‎/usr/local/gnu/*‎-، وتشير تقارير استخدام تلك البيئات إلى تفضيل المستخدمين أدوات جنو حتى لو لم تكن هي الأدوات الافتراضية، وذلك لأن أدوات FreeBSD صممت لتكون صغيرة الحجم وخفيفة في الأداء على الحواسيب القديمة، لكن هذا جاء على حساب المزايا التي يمكن تضمينها فيها، ثم تطورت إمكانيات الحواسيب فلم يعد حجم الأداة معيقًا لأدائها لوظيفتها على الحاسوب بأي حال. كذلك يفضل المستخدمون أدوات جنو أكثر بسبب الدعم الموجود في سطر الأوامر عن نظيره في BSD، حيث يستطيع المستخدم أن يصل إلى توثيق كامل عن كل أمر وأداة بمجرد كتابة اسمها في سطر الأوامر متبوعًا بـ ‎--help.

من ناحية أخرى، فإن مساحة المستخدم في OpenBSD تكاد تكون كاملة ويمكن العمل بها واستخدامها، رغم أني أفضل مساحة جنو لأني معتاد عليها، أما FreeBSD فتختلف في أنها سعت لإنتاج نظام خفيف وصغير الحجم نسبيًا، مع توقعهم أن المستخدم لن يكتفي به وسيثبت المزيد من الأدوات والمنافذ ports كي يستطيع استخدام النظام، وقد صار FBSD هو أشبه نظام بديبيان في عائلة BSD، حيث يكون لديك نظام أساسي تستطيع البناء عليه، وتكون مساحة المستخدم فيه أي واحدة تشاء تثبيتها.

صيانة النظام وإدارته

يقال أن ترقيات النظام في ديبيان هي الميزة التي تدفع أغلب المستخدمين لاختياره، وآلية الترقية والتوزيع في ديبيان هي الشبكة network، أما سياسة تلك الترقيات، والتخطيط الذي تم في سكربتات الصيانة، والطرق التي تُستدعى بها، والتصنيف الطبوغرافي الكامل على شبكة الاعتماديات من خلال أداة apt وأخواتها، كل ذلك يعمل معًا لضمان أن الترقيات الموجودة تعمل بسلاسة، فلم أضطر إلى إعادة تثبيت النظام على أي من حواسيبي، رغم أن بعضها قد أجريت عليه ترقيات على مدار السنوات الخمس الماضية. أما أنظمة BSD فالترقيات فيها قد تحتاج إلى إعادة تثبيت، بل قد أرسل OpenBSD رسائل مرتين إلى المستخدمين الذين لديهم حواسيب i386 منذ الإصدار 2.8 أو 2.9، يخبرهم فيها أن الترقية لم تعد مدعومة أو لا يُنصح بها، وأن عليهم إعادة التثبيت من جديد.

وإن سهولة الاستخدام تلك تلعب دورًا في أمان النظام، فترقيات الأمان أفضل في ديبيان عن النظم الأخرى، بفضل فريق الأمان لديهم، حيث نضمن تحديث حواسيبنا وترقيتها بسلاسة وسرعة قد تقل إلى مجرد بضع دقائق بعد اكتشاف أي ثغرة بسبب وجود debian.org في قائمة المصادر، في حين أن الطريقة التي يُنصح بها للترقية في أنظمة BSD تتضمن تصريف النظام بأكمله، أو "world" على الأقل. أما ديبيان فتحافظ على سهولة الترقيات بتخطي الإصدارات الرئيسية، وهو الأمر الذي لم أره مدعومًا في أي مكان آخر، فهذا يعيدنا إلى جودة التحزيم مرة أخرى.

تُعد إدارة ديبيان السبب الرئيسي في تفضيل المستخدمين لها، فلا أعرف توزيعة أخرى تستطيع كتابة apt-get install sendmail فيها لتحصل على خادم بريد كامل الوظائف، وفيه SASL و TLS، ومهيأ بالكامل مع الشهادات، وتتم كل المهام الإدارية باستخدام SSH بسرعات انترنت لا تتجاوز سرعات dial-up.

تضمن ديبيان أن تغييرات المستخدم لملفات الإعدادات configuration files ستظل محفوظة، وأن كل ملفات الإعدادات تلك ستوجد في /etc، على عكس غيرها من النظم التي تتناثر فيها تلك الملفات في كل مكان في النظام، وهذا يجعل عملية النسخ الاحتياطي أسهل. تتوافق ديبيان مع FHS -وهو معيار التسلسل الهرمي لنظام الملفات Filesystem Hierarchy Standard-، وتنتهج أسلوبًا في تطويرها تتوافق فيه مع قاعدة لينكس القياسية Linux Standard Base - LSB، وهو مشروع يتبع مؤسسة لينكس هدفه توحيد الهيكل البرمجي للنظام، وقد بُني على مواصفات ومعايير POSIX التي نُشرت في الثمانينات بهدف ضمان التوافقية بين أنظمة تشغيل الحواسيب، وكذلك Single Unix Specification - SUS، وغيرها من المعايير مفتوحة المصدر.

يسهل إنشاء مستودع من الحزم المخصصة التي يمكن توزيعها فيما بعد، وذلك بسبب الطبيعة اللامركزية للتطوير والتوزيع في ديبيان، وتضمن السياسة وآلية البناء هنا أن الأطراف الثالثة تستطيع بناء النظام بنفس السهولة، وبطريقة قابلة للتكرار.

المحمولية ودعم العتاد

يميل لينكس إلى دعم العتاد المتخصص أو الذي يُستخدم من قبل فئة ما أكثر مما يفعل BSD، وقد يمثل هذا مشكلة أو مزية وفقًا لحالة كل مستخدم، ويمكن قول مثل ذلك على دعم العتاد عالي الجودة، باستثناء عتاد RAID، حيث دُعمت بطاقات 3ware RAID في BSD بعد مدة غير قصيرة من دعمها في لينكس. ويُعد دعم الشركات الكبرى للينكس من خلال ضمان دعمه لعتادها من المزايا الإضافية التي تُحسب للينكس، مثل دعم IBM له في جميع عتادها، وكذلك الحال بالنسبة لشركة HP.

أما من حيث المحمولية فعلى عكس المتوقع الذي يفترض أن يكون لنظام مثل NetBSD أفضلية هنا، فإن ديبيان تدعم عتادًا أكثر من NBSD الذي -مع هذا- يدعم عتادًا قديمًا أو لم يعد موجودًا مثل حواسيب sun2 -ذات معالجات m68010- وحواسيب PC532، وكذلك حواسيب VAX، وهي حواسيب كانت تصنعها شركة DEC قديمًا في سبعينيات القرن الماضي. ربما تجدر الإشارة إلى أن المعمارية في NBSD تُسمى معماريات فرعية sub-architectures في ديبيان، وعليه فلا تُحسب ضمن المعماريات الإحدى عشرة المدعومة.

البناء المصدري Source Builds

لقد سمعت الكثير عن آلية المنافذ في BSD وأنظمة النقل portage في توزيعة جِنتو Gentoo، كما سمعت عن المشاكل التي تحدث للمستخدمين أثناء التصريف في نظام المنافذ، هذا غير حقيقة أن تصريف كل شيء بسرعة صار أمرًا قديمًا بقِدم لينكس نفسه، حيث استخدمته في توزيعة SLS في 93.

وليس الأمر أنك لا تستطيع إنشاء منفذ مثل auto-build الخاص بديبيان، فلدينا auto-builders في إحدى عشرة معمارية تفعل ذلك، باستمرار، وكل يوم، أما السؤال فهو لماذا قد يرغب أحد في هذا، فلم أر إلى الآن اختبارًا قابلًا للتكرار يوضح أي أثر ملحوظ في الأداء بواسطة تصريفات محسنة ومخصصة محليًا، فضلًا أن يبرر هذا في عيني الوقت المبذول في تعديل وبناء البرمجية ككل.

وقد قال أحدهم أنه حين كان يحب خداع البعض عبر تعديل معامِلات لا أثر لها على حواسيبهم ثم يخبرهم أن الحاسوب صار أسرع بمقدار 5% لكنهم قد لا يستطيعون ملاحظة ذلك، ومع تحدٍ كهذا يجيبون أنهم مقتنعون تمامًا أن الحاسوب صار أسرع، وأنهم صاروا يلحظون تلك 5% في التحسن.


ويبدو أن الحكمة التقليدية تشير إلى أن أداء النظام ككل يتحسن بأقل من 1%، وقد تستفيد بعض البرامج كثيرًا رغم هذا، وتستطيع تعديل تطبيق حرج لبيئتك في ديبيان، وأظن أن أي وقت توفره بتشغيل نظام محسن يعوَّض بما فيه الكفاية بالوقت المبذول في بناء النظام، وبناء ترقيات ذلك النظام، وقد سمعت عن أشخاص يجرون تحديثاتهم اليومية في الخلفية أثناء تنفيذ مهام أخرى على الحاسوب.


ناهيك عن الكيفية التي يعاني بها التكامل من عدم وجود موقع مركزي يمكن اختبار قابلية التشغيل البيني interoperability للأجزاء المختلفة من النظام، بما أن كل نظام قد يختلف كثيرًا عن المرجع. يُعد النظام المبني مصدريًا أمرًا مشكلًا حين يأتي الأمر للترقيات الكبيرة، ولدي أدلة سردية على أنه ليس آمنًا وعقلانيًا موازنة بآليات الترقية في ديبيان.


على أي حال، فإذا أردت أن أبني حزمًا من المصدر في ديبيان، أستطيع استخدام apt-get source -b، أو أي أدوات أخرى، وعند تنفيذ بناء محلي فإني أثق أن حزم deb المبنية محليًا ستكون مثبتة بطريقة آمنة وعقلانية، وتحل محل الحزم القديمة بسهولة ويسر، ويسحب البناء أي اعتماديات مطلوبة لعملية البناء، وإنني أبني بانتظام ببرنامج pbuilder-user-mode-linux لضمان عمليات بناء موحدة.


أما النقطة الحقيقية هنا هي أن توزيعة جِنتو تستقطب هواة لينكس ممن يحبون بناء تطبيقاتهم الخاصة، وأنا أعرف أنها توفر ملفات ثنائية مسبقة التصريف، لكن أليس هذا يناقض مزيتها التي أنشئت من أجلها؟ إن هذا النمط لا يصلح للبيئات التجارية حيث يكلف وقت التوقف مالًا، وتأتي ديبيان هنا لتوفر الحل المثالي، ويمكن لأولئك الذين يديرون حواسيب كثيرة أن يفضلوا تنفيذ عمليات تحديث وترقية مؤتمتة مثل apt-get update && apt-get upgrade، على تحميل وتهيئة وتصريف وتثبيت البرمجيات لكل حاسوب على حدة، دون أي شكل من أشكال الأتمتة، رغم أني قد لا أكون عادلًا هنا مع emerge/portage، إلا أني آمل أن تكون الفكرة قد اتضحت.

أستطيع التركيز على هذه النقطة أكثر، من أجل الاستخدام الجاد واستخدامات البيئة الإنتاجية، ذلك أن التوزيعات الثنائية هي الحل الأفضل والوحيد، وديبيان إحدى أفضل تلك التوزيعات بسبب أداة APT والجهد المبذول من DD لضمان صحة الحزم، ولقد جربت التوزيعات الأخرى مثل ريدهات وسوزا وماندريك -التي صارت ماندريفا لاحقًا قبل أن يتوقف تطويرها-، ولن أعود إلى أي منها لأفضلية ديبيان عليها، كما أن جِنتو ليست خيارًا أيضًا.


الأمان والموثوقية

هناك مفاضلة دومًا بين الأمان والراحة، فالحاسوب الآمن في النهاية هو ذاك الذي لا يتم تشغيله أبدًا، فهو آمن، لكنه لا فائدة منه، فيجب أن تقرر في النهاية أين ستكون منطقة راحتك.


فما الذي يفكر المرء فيه حين يذكر موضوع الأمان واليونكسات -أو الأنظمة الشبيهة بيونكس-؟ ستكون الإجابة هنا هي OpenBSD، مع بعض التعديلات عليه.

سيكون هذا النظام قابلًا للمراقبة وصغير الحجم، ولا يتطلب كثيرًا من المواصفات، وسيكون تثبيته نصيًا بالكامل دون واجهة رسومية، فإذا اقتصرت على تثبيت الأساسيات فقط، فستحصل على نظام -يمكن مراقبته-، وليس فيه خدمات مفعلة افتراضيًا، وفيه ضمان أنه لا يحتوي على ثغرات في التثبيت الافتراضي يمكن أن تؤدي إلى اختراق عن بعد للجذر remote root compromise.


غير أن هذا يعني أيضًا أن النظام سيكون قديمًا وأن التثبيت الافتراضي لا يفعل شيئًا يذكر من المهام التي لديك، باستثناء إضافة الخاصية W^X -تُنطق W xor X، وهي سياسة لحماية الذاكرة تجعل كل صفحة في عملية ما أو في مساحة عنوان للنواة إما قابلة للكتابة أو التنفيذ-، وكذلك الحماية من طفح المكدسات stack overflows، وتقنية ProPolice -رُقع حماية في مصرِّف جنو GCC طورتها IBM للحماية من تدمير المكدسات stack smashing وتخريب المؤشرات pointer corruption، من خلال منع الوصول إلى مواقع عشوائية في الذاكرة- على نظام OBSD -انظر [تفاصيل الإصدار 3.3 من OpenBSD|https://www.openbsd.org/33.html]. يمكن قول مثل ذلك على رُقع exec-shield و Adamantix (PaX) في لينكس، وقد تضطر إلى إعادة تصريف النواة على ديبيان لهذين.


يتفق أغلب الناس على أن جزء الأمان والمراقبة في OBSD لا يوفر جميع البرمجيات التي يحتاجون إليها، وكذلك فإن أرقام OBSD في الأداء فقيرة مقارنة بأداء SELinux على نواة 2.6.3 -للموازنة، فنواة لينكس الحالية هي 5.16-.


لا شك أن سمعة OBSD في الأمان مبررة، لكن حين تعرف المشروع حق المعرفة، وتكون معتادًا على ما يغطيه حقًا، فقد يكون جدارًا ناريًا ممتازًا أو خادم ويب ساكن، طالما أنك تجعله خاليًا من المنافذ، فيكون لديك حينئذ نظامًا مراقَبًا وآمنًا، لكن هذا النظام لا يصلح إلا لتطبيقات قليلة، أما منافذ مساحة المستخدم في OBSD فتتعطل أكثر من النسخة المستقرة في ديبيان، لكنها ليست جزءًا من النظام، وستعتمد على نفسك إذا حدثت مشكلة أمنية في أحد تلك المنافذ.


من الناحية الأخرى، يمكن القول أن ديبيان المستقرة تعادل أو تغلب تلك الادعاءات، ويبدو أنه لا يوجد فرق حقيقي بين ديبيان وOBSD هنا، حتى لو كان المستخدم مضطرًا إلى تدعيم ديبيان ببعض الحزم ذات الأولوية القياسية، إلا أن هذا لا يستغرق بضع دقائق لمديري النظم. أما مراقبة الشيفرة في OBSD فمتقدمة جدًا، لكن مع هذا فتوجد زلات برمجية بارزة في OpenSSH مؤخرًا، لذا يجب أمر المراقبة هنا ونتائجها بقليل من الريبة.


تركز توزيعة ديبيان جنو/لينكس بشدة على الأمان والاستقرار، ولدينا فريق أمان لهذا، مع أنظمة بناء آلية لمساعدته على بناء الإصدارات بسرعة بين جميع المعماريات المدعومة، وتتحرك سياستها نحو تلك الأهداف، يمكن الرجوع إلى [هذه الموازنة بين الخصائص الأمنية -بالإنجليزية- بين ديبيان و OBSD|https://lists.debian.org/debian-user/2003/debian-user-200308/msg00541.html].


ورغم عدم الحاجة في الغالب إلى سلسلة أدوات على كل نظام هدف من BSD من أجل تنفيذ التحديثات الأمنية -make release أو make package على حاسوب ما، ثم التثبيت في حاسوب آخر-، إذ أن هذا غير مريح إلى حد ما موازنة بنظام التحزيم في ديبيان، فهي تعالج توزيع الحزم الثنائية أفضل من ذلك، فيمكن للمستخدم أن يمتلك أرشيفه المناسبة ثم يغذي به كل خوادم الإنتاج باستخدام آليات ديبيان الافتراضية.


وحين يأتي الأمر للأمان فلا يستطيع المستخدم أن يكون آمنًا بدون متحكمات أو ضوابط وصول إلزامية، لذا ستكون SELinux و TrustedBSD الناشئة خيارات أفضل من OBSD أو إصدارة ديبيان المستقرة الأساسية. لكن حتى بدون SELinux يمكن الشعور باستقرار إصدارة stable من ديبيان، مع الاطمئنان الذي يأتي من إصلاحات التحميل العكسي back ports الأمنية التي يوفرها الفريق الأمني، فمن السهل للمستقبل غير المتخصص أن يبقى مطلعًا على آخر المستجدات الأمنية، ويقلل احتمالية الاختراق، وهذا أمر غاية في الأهمية في البيئات التجارية التي فيها عدد كبير من الحواسيب حيث يكون من المهم ألا تتم ترقية البرمجيات أو النظام كل بضعة أشهر.


هناك فائدة أخرى للفريق الأمني في ديبيان حين يأتي الأمر للتوزيع المستقر، وهو أن هناك إصدارًا واحدًا فقط من شجرة المنافذ، على عكس ديبيان التي يكون فيها عدة إصدارات من أباتشي apache و KDE و X11، حيث يكون لدينا إصدار لكل حزمة مع تحديثات أمنية للحزمة المستقرة، وهو الأمر غير الموجود في FreeBSD.

رغم أن المنفذ makefile سيتم تحديثه إذا تم اكتشاف ثغرة في إحدى الحزم، وستكون الطريقة الوحيدة لسد الثغرة هنا هي تثبيت النسخة الجديدة من الحزمة، مع كل المشاكل المحتملة التي قد تحدث نتيجة ذلك. أما في ديبيان فبما أن لدينا القدرة على تثبيت نفس الإصدار من البرنامج مع الإصلاح الأمني المحمّل عكسيًا back ported، وإذا كنت تعمل مع نسخة من تلك الحزمة المخترقة فيها تلك التحميلات فستظل معرضًا للاختراق طالما أن التصريف لا زال جاريًا، وهي عملية قد تستغرق وقتًا ليس بالقليل.


إن لدي بعض البيانات التي توازن بين توزيعات لينكس من حيث الوقت المستغرق لترقيع كل ثغرة أمنية، لكن لا يوجد لدي بيانات عن نظام BSD، وهذه البيانات يمكن الوصول إليها من خلال [هذه الصفحة باللغة الإنجليزية|https://people.debian.org/~jfs/debconf3/security/data/].


الأداء وقابلية التوسع

لم أكن لأتحدث في البداية عن الأداء والأرقام بما أن هذه الأمور لا تهمني، وأن أرقام الأداء تتغير من إصدار لآخر، لكني أدرك أن هذا معيار حرج في اتخاذ القرار بالنسبة لبعض الناس وقد حاولت أن أنظر في تلك الأرقام نظرة فاحصة لأجل ذلك. يمكن الرجوع إلى [المجموعة الكاملة من المعايير -مع الشيفرات- في هذا الرابط|http://bulk.fefe.de/scalability/]. إليك كلماته من قسم الخاتمة، محدثًا ليوافق المعايير الأخيرة.

تتوسع لينكس 2.6 O(1) في كل المعايير، وهذا أمر مذهل، فإذا كنت تستخدم لينكس 2.4 الآن فإني أهيب بك أن ترقي إلى لينكس 2.6 الآن.

NetBSD لديها قابلية للتوسع أفضل من FreeBSD.

أداء FreeBSD 5.1 مذهل وكذلك قابليته للتوسع، لاحظ أنها لم تصدر بعد رسميًا، وقد افترضت بحماقة أن جميع نسخ BSD ستعمل بنفس مستويات الأداء، بما أنها تتشارك كثيرًا من الشيفرات وتستطيع دمج شيفرات كل منها بحرية، لكني كنت مخطئًا، ذلك أن FreeBSD هي صاحبة ثاني أفضل أداء في كل نسخ BSD، بل تكاد تقترب من لينكس 2.6.

لينكس 2.4 ليس سيئة، لكن توسعها سيء لكل من mmap و fork.

كان أداء OBSD فقيرًا في تلك الاختبارات، فأداء القرص كان مقرفًا، والنواة لم تكن مستقرة، وكان أداء NetBSD في توسع الشبكة أفضل منه، كذلك تخصم بعض النقاط منه بسبب التخريب الذي فيه فيما يتعلق بمكدس IPv6، فإذا كنت تستخدم OBSD فيجب أن تتوقف الآن.


خاتمة

ليس هناك نظام تشغيل أو توزيعة أعرفها فيها ذلك الخليط من الخصائص -سهولة الصيانة ومجانية الثمن والاستقرار والحجم وقابلية التخصيص، والدعم القوي-، ولا أريد أن أعدّل كثيرًا في حاسوبي، بل أريد أن أفتحه لإجراء عملية أو تنفيذ مهمة ثم أغلقه، بسهولة وأمان ومع أقل جهد يمكن بذله في العناية بالعتاد الذي أستخدمه، وديبيان تحقق هذا.

ولا زال هذا هو السبب الرئيسي الذي يجعلني أستخدمها اليوم، من وجهة نظر تقنية، من حيث تثبيت البرمجيات والترقية، فالحزم البرمجية ممتازة في التثبيت والترقية، وصيانة تلك البرمجيات لا زالت جزءًا كبيرًا من مهام أي مدير نظم، لكن مع ديبيان فقد صارت مهمة تافهة إلى الحد الذي لم تعد تمثل فيه مشكلة، فلا ترقى إلى كونها مشكلة عند الحديث عن مشاكل ديبيان.


انظر أيضًا


المصادر