EMBox عبارة عن RTOs قابلة للتكوين مصممة للموارد المقيدة والمدمجة. الفكرة الرئيسية لـ Embox هي استخدام برنامج Linux بدون Linux.
القوائم البريدية:
دردشات Telegram:
إليك نظرة عامة سريعة على كيفية بناء وتشغيل Embox.
البيئة المطلوبة:
gcc makeبالنسبة للأنظمة المستندة إلى دبيان (يتم تثبيت معظم الحزم خارج الصندوق):
$ sudo apt-get install build-essential gcc-multilib curl libmpc-dev python
ل Arch Linux:
$ sudo pacman -S make gcc-multilib cpio qemu
$ yay -S python2-bin
ل Fedora Linux:
$ sudo dnf install make gcc cpio qemu patch curl python
بالنسبة لـ Mac OS X (يتطلب تثبيت Homebrew):
$ brew install i686-elf-binutils i686-elf-gcc awk cpio qemu python
لأي نظام مع Docker (مزيد من المعلومات حول Wiki Emdocker):
$ ./scripts/docker/docker_start.sh
$ . ./scripts/docker/docker_rc.sh
أولاً:
$ git clone https://github.com/embox/embox.git embox
$ cd embox
نظرًا لأن EMBox هو مشروع قابل للتكوين بشكل كبير ، فمن الضروري تحديد الوحدات النمطية التي سيتم بناؤها وبرامزها. لإنشاء أمر make نظام التشغيل يستخدم. يتم استدعاء جميع الأوامر الموضحة أدناه من دليل embox ، والذي يتضمن src/ ، templates/ ، ...
لتكوين ، من الضروري تحديد المعلمات والوحدات النمطية التي من المفترض أن يتم تضمينها في النظام. هناك طريقتان لإعداد تكوين حالي:
make confload-<template> - إنشاء مصنوعات أثرية تم إنشاؤها في مكان ثابت./confset <template> - بناء chretefacts المحفوظة في مسارات العمل المعتمدة على المشروع أثناء استخدام make confload-<template> ، يتم نسخ الملفات من مجلد القالب إلى مجلد ./conf '. يمكنك تعديلها. بينما يتم استخدام confset <template> ، يتم ./work/<template>/conf الملفات من مجلد القالب إلى ./work/<template>/conf هذا الاستخدام مناسب للتبديل السريع بين القوالب الخاصة بك ، لأنه يتم تجنب عمليات إعادة البناء الكاملة. علاوة على ذلك ، يتم الاحتفاظ بالعمليات المتعلقة بالعمل أيضًا ، عندما تقوم بتبديل البناء على سبيل المثال بين الهدف الحقيقي و QEMU والعودة مرة أخرى. الجانب السلبي فقط لاستخدام طريقة confset: المزيد من استخدام SSD/HDD ، يعتمد على عدد المشاريع المتوازية.
يحتوي Embox على العديد من القوالب التي تم إعدادها ، لسردها ، استخدم الأمر التالي:
$ make confload
أبسط طريقة لتحميل القالب هي تحديد اسمه في الأمر:
$ ./confset <template>
أو
$ make confload-<template>
للحصول على نظرة عامة سريعة ، يمكنك استخدام أحد قوالب qemu الموجودة في معظم البنى ، أي x86/qemu لـ x86:
دولار $ ./confset x86/qemu
أو
$ make confload-x86/qemu
بعد تكوين المشروع ، فقط make ببناء:
$ make
يمكن الآن تشغيل الصورة الناتجة على QEMU. أبسط طريقة هي التنفيذ ./scripts/qemu/auto_qemu البرنامج النصي:
$ sudo ./scripts/qemu/auto_qemu
يتم إعادة صياغة sudo لإعداد جهاز TUN/TAP ضروري لمحاكاة الشبكات.
بعد تحميل النظام ، سترى موجه embox> ، الآن يمكنك تشغيل الأوامر. على سبيل المثال ، تسرد help جميع الأوامر الحالية.
لاختبار الاتصال:
ping 10.0.2.16
إذا كان كل شيء على ما يرام ، فيمكنك الاتصال بمحطة Embox عبر telnet .
للخروج من Qemu type Ctrl + A و X بعد ذلك.
يمكنك استخدام نفس البرنامج النصي مع -s -s -machine adcel = tcg flags للتصحيح:
$ sudo ./scripts/qemu/auto_qemu -s -S -machine accel=tcg
بعد تشغيل Qemu ينتظر اتصال من GDB-Client. تشغيل GDB في المحطة الأخرى:
$ gdb ./build/base/bin/embox
...
(gdb) target extended-remote :1234
(gdb) continue
يبدأ النظام في التحميل.
في أي لحظة في محطة GDB ، يمكنك كتابة Ctrl + C ومشاهدة مكدس مؤشر الترابط الحالي ( backtrace ) أو تعيين نقاط التوقف ( break <function name> ، break <file name>:<line number> ).
يدعم EMBox بنيات وحدة المعالجة المركزية التالية: X86 ، ARM ، Microblaze ، SPARC ، PPC ، MIPS.
من أجل العمل مع البنية بخلاف X86 ، ستحتاج إلى برنامج مترجم متقاطع. بعد تثبيت برنامج التحويل البرمجي المتقاطع ، فقط كرر الخطوة أعلاه ، بدءًا من التكوين:
make confload-<arch>/qemu
make
sudo ./scripts/qemu/auto_qemu
الإخراج هو نفسه تمامًا كما في حالة بنية x86.
يدعم EMBox الشبكات على QEMU X86 و ARM و MIPS و Microblaze.