runtime/README.md

19 lines
897 B
Markdown
Raw Normal View History

2024-06-08 09:28:22 +00:00
# MCPI Runtime
**Fact:** MCPI is a 32-bit ARM binary.
**Another fact:** Most modern computers do not use 32-bit ARM and therefore cannot run MCPI natively.
**Solution:** This project allows MCPI to run on modern computers.
## How
This project works differently depending on the host system's architecture.
### 64-Bit x86 Host
On this platform, a patched version of QEMU is used.
QEMU emulates ARM code so MCPI can run on x86 hardware. And the patch adds a system-call which allows MCPI to run graphics code on the host. This prevents the need for emulated GPU drivers.
### 64-Bit ARM Host
QEMU is not necessary on this platform because it can already run 32-bit ARM code natively.
Instead, the runtime is implemented as two processes: a parent and a child. The child becomes MCPI and can send graphics commands to the parent. And because the parent is 64-bit, 32-bit drivers are not needed.