emulating ableos without qemu
Find a file
2025-02-09 13:24:11 +00:00
src replace HashSet and HashMap with BTreeSet and BTreeMap for performance gains. 2025-02-09 13:24:11 +00:00
.gitattributes getting started 2025-02-04 00:41:13 +00:00
.gitignore getting started 2025-02-04 00:41:13 +00:00
.gitmodules axe local sysdata, temp compat fixes 2025-02-05 17:34:02 +00:00
ableos-qemu.png ps/2 keyboard emulation, fix ps/2 mouse emulation. better readme. 2025-02-08 18:36:44 +00:00
Cargo.lock replace HashSet and HashMap with BTreeSet and BTreeMap for performance gains. 2025-02-09 13:24:11 +00:00
Cargo.toml replace HashSet and HashMap with BTreeSet and BTreeMap for performance gains. 2025-02-09 13:24:11 +00:00
fakern.png ps/2 keyboard emulation, fix ps/2 mouse emulation. better readme. 2025-02-08 18:36:44 +00:00
LICENSE Initial commit 2025-02-03 17:33:00 -06:00
README.md ps/2 keyboard emulation, fix ps/2 mouse emulation. better readme. 2025-02-08 18:36:44 +00:00
TODO.md replace SegQueue & ArrayQueue with VecDeque (gains) 2025-02-09 12:54:52 +00:00

fakern

for emulating ableos userspace without qemu.
created to allow for quick design and testing of user programs.

also a proof-of-concept demonstrating the portability of ableos' design.

it's also much faster than ableos on qemu!

currently supports:

  • all ableos ecalls, except:
    • x86 port io
    • x86 interrupt awaiting

    due to not emulating an x86 system

  • mouse and keyboard input (emulating PS/2 userspace buffers)
  • rendering
  • logging
  • (NOT) spawning/forking processes (because it is broken...)
  • buffer awaiting
  • all (most) existing ableos userspace programs

drawbacks:

  • userspace drivers are implemented directly in fakern, so adding additional ones is hard.
  • may not exactly follow ableos behaviour.
  • cursed unsafe rust

usage guide:

cargo run --features=[wayland/x11] --release /path/to/sysdata

i.e

cargo run --features=wayland --release ../ableos/sysdata

fakern ableos (qemu)
as you can see they are are basically identical