
iPhone 11 محاكى على QEMU
QEMU هو محاكي آلات ومساحة مستخدم ومُظاهر عام ومفتوح المصدر.
QEMU قادر على محاكاة آلة كاملة برمجياً دون الحاجة لدعم ظاهرية العتاد. باستخدام الترجمة الديناميكية، يحقق أداءً جيداً جداً. يمكن لـ QEMU أيضاً التكامل مع مُظاهري Xen و KVM لتوفير عتاد محاكى مع السماح للمُظاهر بإدارة وحدة المعالجة المركزية (CPU). بدعم من المُظاهر، يمكن لـ QEMU تحقيق أداء قريب من الأداء الأصلي لوحدات المعالجة. عندما يقوم QEMU بمحاكاة وحدات المعالجة مباشرة، فإنه قادر على تشغيل أنظمة تشغيل مصممة لآلة معينة (مثل لوحة ARMv7) على آلة مختلفة (مثل لوحة x86_64 PC).
QEMU قادر أيضاً على توفير ظاهرية لواجهة برمجة التطبيقات (API) لمساحة المستخدم لواجهات نواة Linux و BSD. هذا يسمح بتشغيل ملفات ثنائية تم تجميعها وفق واجهة ABI لهندسة معمارية واحدة (مثل ABI لـ Linux PPC64) على مضيف يستخدم واجهة ABI لهندسة معمارية مختلفة (مثل ABI لـ Linux x86_64). لا يتضمن ذلك أي محاكاة عتاد، بل فقط محاكاة لوحدة المعالجة واستدعاءات النظام.
يهدف QEMU إلى التوافق مع مجموعة متنوعة من حالات الاستخدام. يمكن استدعاؤه مباشرة من قبل المستخدمين الذين يرغبون في السيطرة الكاملة على سلوكه وإعداداته. كما يهدف إلى تسهيل التكامل في طبقات الإدارة العليا، من خلال توفير واجهة سطر أوامر ثابتة وواجهة برمجة تطبيقات للمراقبة (monitor API). يتم استدعاؤه بشكل غير مباشر عادةً عبر مكتبة libvirt عند استخدام تطبيقات مفتوحة المصدر مثل oVirt و OpenStack و virt-manager.
يتم إصدار QEMU بالكامل بموجب رخصة GNU العمومية العامة، الإصدار 2. للحصول على تفاصيل الترخيص الكاملة، راجع ملف LICENSE.
يمكن العثور على التوثيق عبر الإنترنت على
<https://www.qemu.org/documentation/>. التوثيق لإصدار التطوير الحالي المتاح على
<https://www.qemu.org/docs/master/> يتم إنشاؤه من مجلد docs/
في شجرة المصدر، ويتم بناؤه بواسطة Sphinx <https://www.sphinx-doc.org/en/master/>_.
QEMU هو برنامج متعدد المنصات مصمم ليكون قابلاً للبناء على جميع منصات Linux الحديثة، OS-X، Win32 (عبر سلسلة أدوات Mingw64) ومجموعة متنوعة من أهداف UNIX الأخرى. الخطوات البسيطة لبناء QEMU هي:
.. code-block:: shell
mkdir build cd build ../configure make
يمكن العثور على معلومات إضافية أيضاً عبر الإنترنت من خلال موقع QEMU:
<https://wiki.qemu.org/Hosts/Linux>_<https://wiki.qemu.org/Hosts/Mac>_<https://wiki.qemu.org/Hosts/W32>_يتم الحفاظ على الكود المصدري لـ QEMU تحت نظام التحكم في الإصدارات GIT.
.. code-block:: shell
git clone https://gitlab.com/qemu-project/qemu.git
عند تقديم التصحيحات، أحد الأساليب الشائعة هو استخدام 'git
format-patch' و/أو 'git send-email' لتنسيق وإرسال البريد إلى
القائمة البريدية [email protected]. يجب أن تحتوي جميع التصحيحات المقدمة على
سطر 'Signed-off-by' من المؤلف. يجب أن تتبع التصحيحات الإرشادات
الموضحة في قسم الأسلوب <https://www.qemu.org/docs/master/devel/style.html>_ من
دليل المطورين.
يمكن العثور على معلومات إضافية حول تقديم التصحيحات عبر الإنترنت من خلال موقع QEMU:
<https://wiki.qemu.org/Contribute/SubmitAPatch>_<https://wiki.qemu.org/Contribute/TrivialPatches>_يتم أيضاً الحفاظ على موقع QEMU تحت التحكم في المصدر.
.. code-block:: shell
git clone https://gitlab.com/qemu-project/qemu-web.git
<https://www.qemu.org/2017/02/04/the-new-qemu-website-is-up/>_تم إنشاء أداة 'git-publish' لجعل العملية المذكورة أعلاه أقل إرهاقاً، ويوصى بها بشدة للمساهمات المنتظمة، أو حتى لمجرد إرسال مراجعات متتالية لسلسلة التصحيحات. تتطلب أيضاً إعداد 'git send-email' فعال، وبشكل افتراضي لا تقوم بأتمتة كل شيء، لذا قد ترغب في اتباع الخطوات المذكورة أعلاه يدوياً لمرة واحدة.
لتعليمات التثبيت، يرجى الذهاب إلى
<https://github.com/stefanha/git-publish>_سير العمل باستخدام 'git-publish' هو:
.. code-block:: shell
$ git checkout master -b my-feature $ # العمل على الالتزامات الجديدة، أضف سطور 'Signed-off-by' لكل منها $ git publish
سيتم إرسال سلسلة التصحيحات الخاصة بك ووسمها كـ my-feature-v1 إذا كنت بحاجة إلى الرجوع إليها في المستقبل.
إرسال v2:
.. code-block:: shell
$ git checkout my-feature # نفس فرع الموضوع $ # إجراء تغييرات على الالتزامات (باستخدام 'git rebase' مثلاً) $ git publish
سيتم إرسال سلسلة التصحيحات الخاصة بك مع وسم 'v2' في الموضوع وسيتم وسم قمته كـ my-feature-v2.
يستخدم مشروع QEMU مشكلات GitLab لتتبع الأخطاء. الأخطاء التي يتم العثور عليها عند تشغيل الكود المبنى من QEMU git أو مصادر الإصدارات العامة يجب الإبلاغ عنها عبر:
<https://gitlab.com/qemu-project/qemu/-/issues>_إذا كنت تستخدم QEMU عبر حزمة ثنائية مبنية مسبقاً من بائع نظام تشغيل، فمن الأفضل الإبلاغ عن الأخطاء إلى متتبع الأخطاء الخاص بالبائع أولاً. إذا كان الخطأ معروفاً أيضاً بأنه يؤثر على أحدث كود من المنبع، فيمكن أيضاً الإبلاغ عنه عبر GitLab.
لمعلومات إضافية حول الإبلاغ عن الأخطاء، استشر:
<https://wiki.qemu.org/Contribute/ReportABug>_لتاريخ الإصدار وملاحظات الإصدار، يرجى زيارة
<https://wiki.qemu.org/ChangeLog/>_ أو الاطلاع على تاريخ git لمزيد
من المعلومات التفصيلية.
يمكن الاتصال بمجتمع QEMU بعدة طرق، مع كون الطريقتين الرئيسيتين هما البريد الإلكتروني و IRC
<mailto:[email protected]>_<https://lists.nongnu.org/mailman/listinfo/qemu-devel>_يمكن العثور على معلومات حول طرق إضافية للاتصال بالمجتمع عبر الإنترنت من خلال موقع QEMU:
<https://wiki.qemu.org/Contribute/StartHere>_