add a readme
This commit is contained in:
parent
8587532a5e
commit
54deaf1782
75
README.md
Normal file
75
README.md
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
pH Hypervisor
|
||||||
|
=============
|
||||||
|
|
||||||
|
pH is a KVM hypervisor for Linux written in the Rust programming language as a tool
|
||||||
|
for isolating desktop application running environments in Subgraph OS.
|
||||||
|
|
||||||
|
Building pH
|
||||||
|
-----------
|
||||||
|
|
||||||
|
$ sudo apt install wget bc libelf-dev pkg-config libwayland-dev libxcb-composite0-dev libxkbcommon-dev libgbm-dev libpixman-1-dev libdrm-dev libdbus-1-dev
|
||||||
|
$ cargo build --release
|
||||||
|
|
||||||
|
Running pH
|
||||||
|
----------
|
||||||
|
|
||||||
|
After successfully building pH the only artifact you need is the pH binary itself. You can copy it
|
||||||
|
anywhere any use it.
|
||||||
|
|
||||||
|
If you run pH in citadel, you can simply pass it the name of a realm:
|
||||||
|
|
||||||
|
$ ./pH --realm main
|
||||||
|
|
||||||
|
This will use the correct realmfs image as a block device for the root filesystem and
|
||||||
|
mount the realm home directory as a 9p filesystem.
|
||||||
|
|
||||||
|
Without any arguments, pH will self-host on the current filesystem by mounting the
|
||||||
|
root directory as a read-only 9p filesystem. Currently it is assumed that the
|
||||||
|
home directory is /home/user and if you have a different home directory you'll
|
||||||
|
need to tell pH about it:
|
||||||
|
|
||||||
|
$ ./pH --home /home/citadel
|
||||||
|
|
||||||
|
By default a shell inside the pH instance will be launched as the user account,
|
||||||
|
but you can also add --root flag to launch a root shell instead:
|
||||||
|
|
||||||
|
$ ./pH --home /home/citadel --root
|
||||||
|
|
||||||
|
Devices
|
||||||
|
-------
|
||||||
|
|
||||||
|
The hardware emulation in pH consists of a minimal set of small legacy devices needed to
|
||||||
|
boot the system as well as several Virtio devices. Virtio is a standard interface
|
||||||
|
for efficient communication between a guest operating system and a hypervisor such that
|
||||||
|
the same guest drivers will work with any hypervisor implemention of the emulated
|
||||||
|
virtio devices.
|
||||||
|
|
||||||
|
|
||||||
|
### virtio-block
|
||||||
|
|
||||||
|
A block device driver.
|
||||||
|
|
||||||
|
#### Disk Images
|
||||||
|
|
||||||
|
Raw ext4 disk images are supported, as well as realmfs images, but currently they
|
||||||
|
are not mounted with dm-verity.
|
||||||
|
|
||||||
|
### virtio-9p
|
||||||
|
|
||||||
|
A 9P filesystem server which can be used to mount filesystem trees on the host into
|
||||||
|
the guest.
|
||||||
|
|
||||||
|
### virtio-rng
|
||||||
|
|
||||||
|
Provides entropy from /dev/urandom on the host to the guest.
|
||||||
|
|
||||||
|
### virtio-serial
|
||||||
|
|
||||||
|
A serial port device which is used to provide an interactive console on the guest.
|
||||||
|
|
||||||
|
### virtio-wl
|
||||||
|
|
||||||
|
Proxies Wayland messages from the guest to a wayland compositor running on the host. Also
|
||||||
|
allocates and shares memory and DMA-Buf allocations into the guest.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user