Embox adalah RTO yang dapat dikonfigurasi yang dirancang untuk sistem yang dibatasi sumber daya dan tertanam. Gagasan utama Embox adalah menggunakan perangkat lunak Linux tanpa Linux.
Milis:
Obrolan Telegram:
Berikut ini gambaran singkat tentang cara membangun dan menjalankan Embox.
Lingkungan yang diperlukan:
gcc dan makeUntuk sistem berbasis Debian (sebagian besar paket diinstal di luar kotak):
$ sudo apt-get install build-essential gcc-multilib curl libmpc-dev python
Untuk Arch Linux:
$ sudo pacman -S make gcc-multilib cpio qemu
$ yay -S python2-bin
Untuk Fedora Linux:
$ sudo dnf install make gcc cpio qemu patch curl python
Untuk Mac OS X (membutuhkan homebrew yang diinstal):
$ brew install i686-elf-binutils i686-elf-gcc awk cpio qemu python
Untuk sistem apa pun dengan Docker (info lebih lanjut tentang wiki emdocker):
$ ./scripts/docker/docker_start.sh
$ . ./scripts/docker/docker_rc.sh
Pertama:
$ git clone https://github.com/embox/embox.git embox
$ cd embox
Karena Embox adalah proyek yang sangat dapat dikonfigurasi, perlu untuk menentukan modul yang akan dibangun dan param untuk mereka. Untuk membangun perintah make OS digunakan. Semua perintah yang dijelaskan di bawah ini dipanggil dari Direktori embox , yang mencakup src/ , templates/ , ...
Untuk mengonfigurasi perlu untuk menentukan parameter dan modul yang seharusnya dimasukkan ke dalam sistem. Ada dua cara untuk mengatur konfigurasi saat ini:
make confload-<template> - Bangun artefak yang dihasilkan di tempat yang tetap./confset <template> - Bangun artefak yang dikelola dalam jalur kerja yang bergantung pada proyek Sementara make confload-<template> digunakan, file dari folder template disalin ke folder './conf'. Anda dapat memodifikasinya. Sementara confset <template> digunakan, file dari folder template disalin ke ./work/<template>/conf folder dan tautan './conf' dibuat untuk ./work/<template>/conf conf. Penggunaan ini cocok untuk beralih cepat di antara templat Anda, karena pembangunan kembali penuh dihindari. Selain itu, conf-settings yang berfungsi juga dipertahankan, ketika Anda beralih membangun misalnya antara target nyata dan qemu dan kembali lagi. Hanya downside menggunakan metode confset: lebih banyak penggunaan SSD/HDD, tergantung pada jumlah proyek paralel.
Embox memiliki beberapa templat yang disiapkan, untuk mendaftar mereka menggunakan perintah berikut:
$ make confload
Cara paling sederhana untuk memuat templat adalah dengan menentukan namanya di perintah:
$ ./confset <template>
atau
$ make confload-<template>
Untuk ikhtisar cepat Anda dapat menggunakan salah satu templat qemu yang ada untuk sebagian besar arsitektur, yaitu, x86/qemu untuk x86:
$ ./confset x86/qemu (namun tidak ada AutoComplete/-sugrest ketika hanya suatu bagian yang diketik: untuk melakukan)
atau
$ make confload-x86/qemu
Setelah mengkonfigurasi proyek, jalankan, make untuk membangun:
$ make
Gambar yang dihasilkan sekarang dapat dijalankan di QEMU. Cara paling sederhana adalah dengan mengeksekusi ./scripts/qemu/auto_qemu Script:
$ sudo ./scripts/qemu/auto_qemu
sudo direquried untuk mengatur perangkat tun/tap yang diperlukan untuk meniru jaringan.
Setelah sistem dimuat, Anda akan melihat prompt embox> , sekarang Anda dapat menjalankan perintah. Misalnya, help mencantumkan semua perintah yang ada.
Untuk menguji koneksi:
ping 10.0.2.16
Jika semuanya baik -baik saja, Anda dapat terhubung ke terminal Embox melalui telnet .
Untuk keluar dari qemu type ctrl + a dan x setelah itu.
Anda dapat menggunakan skrip yang sama dengan -s -s -machine accel = bendera TCG untuk debugging:
$ sudo ./scripts/qemu/auto_qemu -s -S -machine accel=tcg
Setelah menjalankan qemu itu menunggu koneksi dari gdb-klien. Jalankan GDB di terminal lain:
$ gdb ./build/base/bin/embox
...
(gdb) target extended-remote :1234
(gdb) continue
Sistem mulai memuat.
Setiap saat di terminal GDB Anda dapat mengetik ctrl + c dan melihat tumpukan utas saat ini ( backtrace ) atau mengatur breakpoint ( break <function name> , break <file name>:<line number> ).
Embox mendukung arsitektur CPU berikut: x86, lengan, microblaze, sparc, ppc, mips.
Untuk bekerja dengan arsitektur selain x86 Anda akan memerlukan kompiler silang. Setelah menginstal Cross Compiler cukup ulangi langkah di atas, mulai dengan mengkonfigurasi:
make confload-<arch>/qemu
make
sudo ./scripts/qemu/auto_qemu
Outputnya sama seperti dalam kasus arsitektur X86.
Embox mendukung jaringan di QEMU X86, ARM, MIPS dan Microblaze.