85 lines
2.9 KiB
Markdown
85 lines
2.9 KiB
Markdown
# PROMETEU
|
|
|
|
PROMETEU é um **ecossistema educacional e experimental** inspirado em consoles clássicos, com foco em **ensinar programação, arquitetura de sistemas e conceitos de hardware através de software**.
|
|
|
|
> PROMETEU é uma máquina virtual simples, explícita e didática.
|
|
|
|
---
|
|
|
|
## 🎯 Objetivos do Projeto
|
|
|
|
- **Simular um “hardware lógico” simples**: Criar uma barreira de entrada baixa para entender como computadores funcionam.
|
|
- **Loop Determinístico**: Garantir que o mesmo código produza o mesmo resultado em qualquer plataforma.
|
|
- **Portabilidade Total**: O núcleo não depende de sistema operacional, permitindo rodar de computadores modernos a hardware dedicado.
|
|
- **Ferramentas de Primeiro Nível**: Oferecer depuração e inspeção profunda como parte central da experiência.
|
|
|
|
---
|
|
|
|
## 🧠 Filosofia de Design
|
|
|
|
- **Sem magia**: tudo é explícito.
|
|
- **Sem heurística implícita**: o sistema não “adivinha intenções”.
|
|
- **Determinístico**: mesmo input → mesmo resultado.
|
|
- **Hardware-first**: APIs modelam periféricos, não frameworks modernos.
|
|
- **Portável por definição**: se não funciona em todas as plataformas, não existe.
|
|
|
|
---
|
|
|
|
## 📦 Estrutura do Monorepo
|
|
|
|
Este repositório é organizado como um workspace Rust e contém diversos componentes:
|
|
|
|
- **[crates/](./crates)**: Implementação do software em Rust.
|
|
- **[prometeu](./crates/prometeu)**: Interface de linha de comando (CLI) unificada.
|
|
- **[prometeu-core](./crates/prometeu-core)**: O núcleo lógico, VM e SO interno.
|
|
- **[prometeu-runtime-desktop](./crates/prometeu-runtime-desktop)**: Host para execução em sistemas Desktop.
|
|
- **[docs/](./docs)**: Documentação técnica e especificações do sistema.
|
|
- **[devtools-protocol/](./devtools-protocol)**: Definição do protocolo de comunicação para ferramentas de desenvolvimento.
|
|
- **[test-cartridges/](./test-cartridges)**: Exemplos e suítes de teste de cartuchos.
|
|
|
|
---
|
|
|
|
## 🛠️ Requisitos
|
|
|
|
- **Rust**: Versão definida em `rust-toolchain.toml`.
|
|
- **Instalação**: Use o [rustup](https://rustup.rs/) para instalar a toolchain necessária.
|
|
|
|
---
|
|
|
|
## ▶️ Início Rápido
|
|
|
|
Para compilar o projeto completo:
|
|
|
|
```bash
|
|
cargo build
|
|
```
|
|
|
|
Para rodar um cartucho de exemplo:
|
|
|
|
```bash
|
|
./target/debug/prometeu run test-cartridges/color-square
|
|
```
|
|
|
|
Para mais detalhes sobre como usar a CLI, veja o README de **[prometeu](./crates/prometeu)**.
|
|
|
|
---
|
|
|
|
## 🚧 Status do Projeto
|
|
|
|
⚠️ **Em estágio inicial (bootstrap)**
|
|
|
|
Atualmente o foco é na estabilização da arquitetura do core e do protocolo de depuração. Nada aqui deve ser considerado uma API estável ainda.
|
|
|
|
---
|
|
|
|
## 📜 Licença
|
|
|
|
Este projeto está licenciado sob a Licença MIT - veja o arquivo [LICENSE](LICENSE) para detalhes.
|
|
|
|
---
|
|
|
|
## ✨ Nota Final
|
|
|
|
PROMETEU é tanto um projeto técnico quanto pedagógico. A ideia não é esconder complexidade, mas **expor a complexidade certa**, no nível certo, para que ela possa ser entendida, estudada e explorada.
|
|
|