لينكس في وضع المستخدم

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

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

التطبيقات

يُتيح استخدام لغة النمذجة الموحدة (UML) إمكانياتٍ عديدة. [ 1 ] يُمكن تشغيل خدمات الشبكة من بيئة UML مع الحفاظ على عزلة تامة عن نظام لينكس الرئيسي الذي تعمل عليه هذه البيئة. [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] كما يُمكن للمسؤولين استخدام UML لإنشاء أنظمة اختبار الاختراق (Honeypots) ، [ 7 ] مما يسمح باختبار أمان أجهزة الكمبيوتر أو الشبكة. يُمكن استخدام UML لاختبار وتصحيح البرامج الجديدة دون التأثير سلبًا على النظام المضيف. كما يُمكن استخدامها في التعليم والبحث، حيث تُوفر بيئة لينكس شبكية واقعية ذات مستوى عالٍ من الأمان.

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

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

يدعم libguestfs واجهة UML الخلفية منذ الإصدار 1.24 [ 8 ] كبديل لاستخدام QEMU أو KVM.

التكامل مع نواة لينكس

كان تطبيق UML الضيف (ملف ELF ثنائي لنظام Linux ) متاحًا في الأصل كتصحيح لبعض إصدارات النواة التي تزيد عن 2.2.x، وكان المضيف الذي يحتوي على أي إصدار نواة أعلى من 2.2.x يدعمه بسهولة في وضع الخيوط (أي غير SKAS3).

ابتداءً من إصدار لينكس 2.6.0، تم دمج هذه الميزة في شجرة مصدر النواة الرئيسية . وقد طُبقت طريقة لتشغيل مساحة عناوين نواة منفصلة (SKAS) لا تتطلب تعديل نواة النظام المضيف. يُحسّن هذا الأداء والأمان مقارنةً بنهج "الخيط المُتتبَّع" القديم، حيث تتشارك العمليات التي تعمل في UML نفس مساحة العناوين من وجهة نظر النظام المضيف، مما يجعل الذاكرة داخل UML غير محمية بواسطة وحدة إدارة الذاكرة . على عكس UML الحالي الذي يستخدم SKAS، قد تتمكن البرامج المعيبة أو الخبيثة داخل UML الذي يعمل على نظام مضيف لا يستخدم SKAS من قراءة مساحة ذاكرة عمليات UML الأخرى أو حتى ذاكرة نواة UML نفسها. [ 9 ]

مقارنة بالتقنيات الأخرى

يُعتبر نظام لينكس في وضع المستخدم عمومًا أقل أداءً من بعض التقنيات المنافسة مثل زين وأوبن في زد . وقد يُسهم العمل المستقبلي على إضافة دعم لتقنية المحاكاة الافتراضية x86 إلى نظام لينكس في وضع المستخدم في تقليل هذا العيب.

كثيراً ما يُشار إلى دعم التخزين المحلي للخيوط (TLS) كإحدى نقاط قوة Xen (وهي تقنية منافسة) . وهذا الدعم متوفر الآن أيضاً في أحدث نواة UML. يركز Xen على محاكاة الجهاز بالكامل، وبالتالي فإن جميع الأنظمة التي تعمل على جهاز Xen هي في الواقع أجهزة افتراضية. أما في UML، فلا تتم محاكاة الجهاز المضيف بأي شكل من الأشكال، والأنظمة الضيفة فقط هي التي تُعتبر أجهزة افتراضية حقيقية. يُتيح هذا لأنظمة UML الضيفة الوصول المباشر إلى أنظمة ملفات ومكونات الجهاز المضيف، حيث يشيع ربط دليل من دليل الجهاز المضيف (مثلاً، /uml/root/ ).

المنصات المدعومة

صُممت لغة UML في الأصل لمجموعة تعليمات x86 ، ولكن تم نقلها أيضًا إلى مجموعات أخرى بما في ذلك IA-64 و PowerPC . [ 10 ] [ 11 ] كما أنها تعمل على x86_64 [ 12 ] ومن المفترض أن تعمل على أي منصة نظرًا لأن ptrace في Linux موحد عبر المنصات.

انظر أيضاً

مراجع

  1. لاندلي، روب (16-12-2009). "دليل روب السريع والبسيط لـ UML" . تم الاسترجاع في 8-8-2023 .
  2. "وضع المستخدم في الشبكة الافتراضية لنظام لينكس" . 13 فبراير 2012. تم الاطلاع عليه بتاريخ 8 أغسطس 2023 .
  3. "Netkit: الميزات" . 2009-12-03. مؤرشف من الأصل في 2020-05-11 . تم الاطلاع عليه في 2023-08-08 .
  4. جان فنسنت لودو؛ لوكا سايو. "ماريونيت: مختبر شبكات افتراضية" . تم الاسترجاع في 2023-08-08 .
  5. "وثائق كلونيكس: الإصدار 03-04" . 2019-06-01 . تم الاطلاع عليه بتاريخ 2023-08-08 .
  6. "مرحباً بكم في جيني! مجموعة أدوات لبناء شبكات إنترنت مصغرة على مستوى المستخدم" . جامعة ماكجيل . 28-09-2009 . تم الاطلاع عليه بتاريخ 08-08-2023 .
  7. "UML كفخ" . 13-07-2007 . تم الاطلاع عليه بتاريخ 08-08-2023 .
  8. ريتشارد دبليو إم جونز (11 أغسطس 2013). "واجهة خلفية تجريبية لنظام لينكس في وضع المستخدم لمكتبة libguestfs" . تم الاطلاع عليه بتاريخ 29 أغسطس 2019 .
  9. دايك، جيف (12 أبريل 2006). وضع المستخدم في لينكس . برنتيس هول . ص 197. ISBN  9780131865051.
  10. دايك، جيف (5 نوفمبر 2001). "لينكس في وضع المستخدم" (ملف PDF) . ALS '01: وقائع المؤتمر والمعرض السنوي الخامس للينكس . 5 عبر مكتبة ACM الرقمية.
  11. "UML/ppc" . www.usenix.org . تم الاطلاع عليه بتاريخ 20 نوفمبر 2025 .
  12. "كيفية استخدام وضع المستخدم في لينكس" . xeiaso.net . تم الاطلاع عليه بتاريخ 2026-01-01 .