O EMBox é um RTOS configurável projetado para sistemas restritos e incorporados a recursos. A principal idéia do Embox é usar o software Linux sem Linux.
Listas de correspondência:
Telegrama bate -papos:
Aqui está uma rápida visão geral sobre como construir e executar o embox.
Ambiente necessário:
gcc e makePara sistemas baseados em Debian (a maioria dos pacotes é instalada fora da caixa):
$ 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 (requer instalado em casa):
$ brew install i686-elf-binutils i686-elf-gcc awk cpio qemu python
Para qualquer sistema com Docker (mais informações sobre o Wiki Emdocker):
$ ./scripts/docker/docker_start.sh
$ . ./scripts/docker/docker_rc.sh
Em primeiro lugar:
$ git clone https://github.com/embox/embox.git embox
$ cd embox
Como o Embox é um projeto altamente configurável, é necessário especificar módulos a serem construídos e params para eles. Para construir o comando, o make é usado. Todos os comandos descritos abaixo são chamados do diretório embox , que inclui src/ , templates/ , ...
Para configurar, é necessário especificar parâmetros e módulos que supostamente estão incluídos no sistema. Existem duas maneiras de configurar uma configuração atual:
make confload-<template> - construir artefatos gerados em um local fixo./confset <template> - Construir artefatos mantidos em caminhos de trabalho dependentes do projeto Enquanto make confload-<template> é usado, os arquivos da pasta do modelo são copiados para './conf'. Você pode modificá -los. Enquanto confset <template> é usado, os arquivos da pasta do modelo são copiados para ./work/<template>/conf e um link './conf' é criado para ./work/<template>/conf conf. Esse uso é adequado para alternância rápida entre seus modelos, porque são evitadas reconstruções completas. Além disso, também são mantidos conferimentos de trabalho, quando você muda a criação, por exemplo, entre o Target Real e o Qemu e novamente. Somente desvantagem do uso do método Confset: mais uso de SSD/HDD, dependente do número de projetos paralelos.
O Embox tem vários modelos preparados, para listá -los, use o seguinte comando:
$ make confload
A maneira mais simples de carregar um modelo é especificar seu nome no comando:
$ ./confset <template>
ou
$ make confload-<template>
Para a rápida visão geral, você pode usar um dos modelos qemu que existem para a maioria das arquiteturas, ou seja, x86/qemu para x86:
$ ./confset x86/qemu (mas nenhum preenchimento automático/-guggest quando apenas uma peça é digitada: fazer)
ou
$ make confload-x86/qemu
Depois de configurar o projeto, basta make uma criação para construir:
$ make
A imagem resultante agora pode ser executada no Qemu. A maneira mais simples é executar ./scripts/qemu/auto_qemu script:
$ sudo ./scripts/qemu/auto_qemu
sudo é redigido para configurar um dispositivo TUN/TAP necessário para emular a rede.
Depois que o sistema for carregado, você verá o prompt embox> , agora poderá executar comandos. Por exemplo, help lista todos os comandos existentes.
Para testar a conexão:
ping 10.0.2.16
Se estiver tudo bem, você pode se conectar ao terminal do EMBox via telnet .
Para sair do Qemu, tipo Ctrl + A e X depois disso.
Você pode usar o mesmo script com -s -s -machine accel = sinalizadores tcg para depuração:
$ sudo ./scripts/qemu/auto_qemu -s -S -machine accel=tcg
Depois de executar o QEMU, aguarda uma conexão de um client GDB. Execute o GDB no outro terminal:
$ gdb ./build/base/bin/embox
...
(gdb) target extended-remote :1234
(gdb) continue
O sistema começa a carregar.
A qualquer momento no terminal GDB, você pode digitar Ctrl + C e ver a pilha do encadeamento atual ( backtrace ) ou definir pontos de interrupção ( break <function name> , break <file name>:<line number> ).
O EMBox suporta as seguintes arquiteturas da CPU: x86, braço, microblaze, SPARC, PPC, MIPS.
Para trabalhar com arquiteturas diferentes do X86, você precisará de um compilador cruzado. Depois de instalar o compilador cruzado, apenas repita a etapa acima, começando com a configuração:
make confload-<arch>/qemu
make
sudo ./scripts/qemu/auto_qemu
A saída é exatamente a mesma que no caso da arquitetura x86.
O EMBox suporta redes no QEMU X86, ARM, MIPS e MICROBLAZE.