Embox es un RTOS configurable diseñado para sistemas limitados e integrados de recursos. La idea principal de Embox es usar el software Linux sin Linux.
Listas de correo:
Chats de telegrama:
Aquí hay una visión general rápida sobre cómo construir y ejecutar Embox.
Entorno requerido:
gcc y makePara los sistemas basados en Debian (la mayoría de los paquetes están instalados fuera de caja):
$ sudo apt-get install build-essential gcc-multilib curl libmpc-dev python
Para Arch Linux:
$ sudo pacman -S make gcc-multilib cpio qemu
$ yay -S python2-bin
Para Fedora Linux:
$ sudo dnf install make gcc cpio qemu patch curl python
Para Mac OS X (requiere instalado Homebrew):
$ brew install i686-elf-binutils i686-elf-gcc awk cpio qemu python
Para cualquier sistema con Docker (más información sobre Wiki Emdocker):
$ ./scripts/docker/docker_start.sh
$ . ./scripts/docker/docker_rc.sh
En primer lugar:
$ git clone https://github.com/embox/embox.git embox
$ cd embox
Dado que Embox es un proyecto altamente configurable, es necesario especificar módulos para construir y parámetros para ellos. Para construir el comando OS make . Todos los comandos descritos a continuación se llaman desde el directorio embox , que incluye src/ , templates/ , ...
Para configurar, es necesario especificar parámetros y módulos que se supone que deben incluirse en el sistema. Hay dos formas de configurar una configuración actual:
make confload-<template> - construir artefactos generados en un lugar fijo./confset <template> - construir artefactos mantenidos en rutas de trabajo dependientes del proyecto Mientras se utiliza make confload-<template> , los archivos de la carpeta de la plantilla se copian en la carpeta './conf'. Puedes modificarlos. Mientras se usa confset <template> , los archivos de la carpeta de la plantilla se copian en la carpeta ./work/<template>/conf y un enlace './conf' se crea en ./work/<template>/conf . Este uso es adecuado para un cambio rápido entre sus plantillas, porque se evitan las reconstrucciones completas. Además, también se conservan los confisos de trabajo, cuando cambia la compilación, por ejemplo, entre el objetivo real y QEMU y vuelve a viceversa. Solo la desventaja del uso del método confetE: más uso de SSD/HDD, dependiente del número de proyectos paralelos.
Embox tiene varias plantillas preparadas, para enumerarlas, use el siguiente comando:
$ make confload
La forma más sencilla de cargar una plantilla es especificar su nombre en el comando:
$ ./confset <template>
o
$ make confload-<template>
Para la descripción general rápida, puede usar una de las plantillas qemu que existen para la mayoría de las arquitecturas, es decir, x86/qemu para x86:
$ ./confset x86/qemu (pero no hay autocompleto/-suggest cuando solo se escribe una parte: para hacer)
o
$ make confload-x86/qemu
Después de configurar el proyecto, simplemente ejecute make to Build:
$ make
La imagen resultante ahora se puede ejecutar en QEMU. La forma más simple es ejecutar ./scripts/qemu/auto_qemu script:
$ sudo ./scripts/qemu/auto_qemu
sudo se requisita para configurar un dispositivo TUN/TAP necesario para emular redes.
Después de cargar el sistema, verá el indicador embox> , ahora puede ejecutar comandos. Por ejemplo, help enumera todos los comandos existentes.
Para probar la conexión:
ping 10.0.2.16
Si todo está bien, puede conectarse al terminal EMBOX a través de telnet .
Para salir de QEMU Ctrl + A y X después de eso.
Puede usar el mismo script con los indicadores -s -s -machine acel = tcg para la depuración:
$ sudo ./scripts/qemu/auto_qemu -s -S -machine accel=tcg
Después de ejecutar que QEMU espera una conexión de un GDB-Client. Ejecute GDB en la otra terminal:
$ gdb ./build/base/bin/embox
...
(gdb) target extended-remote :1234
(gdb) continue
El sistema comienza a cargarse.
En cualquier momento en el terminal GDB, puede escribir Ctrl + C y ver la pila del subproceso actual ( backtrace ) o establecer puntos de interrupción ( break <function name> , break <file name>:<line number> ).
Embox admite las siguientes arquitecturas de CPU: X86, ARM, MicroBlaze, SPARC, PPC, MIPS.
Para trabajar con arquitecturas distintas a X86, necesitará un compilador cruzado. Después de instalar el compilador cruzado, simplemente repita el paso anterior, comenzando con la configuración:
make confload-<arch>/qemu
make
sudo ./scripts/qemu/auto_qemu
La salida es bastante igual que en el caso de la arquitectura X86.
Embox admite redes en QEMU X86, ARM, MIPS y MicroBlaze.