This binaries
branch contains a collection of files that, while related to Diosix, do not need to be checked out from version control to build, run, test, or develop the project. The build system may fetch some of these files, such as the guest binaries, directly if they are needed. Below is a description of what you can find in this branch.
The buildroot-guests
directory contains one or more Busybox-based Linux guest operating systems built using Buildroot. These are self-contained binaries featuring a kernel and user-space programs in an initrd file-system that are unpacked into RAM and run by the hypervisor in a virtualized environment.
To create a guest binary yourself, follow these steps on a Linux host system to configure and run Buildroot for the desired binary:
- Ensure you have installed the necessary packages to build Buildroot.
- Check out the latest Buildroot source from its Git repository and enter its directory using:
git clone https://git.busybox.net/buildroot
cd buildroot
- Copy a configuration file for the desired guest binary to
.config
inside the buildroot source directory. The configuration file is specified below for each binary file, and its file path is relative to the root directory of themain
branch of the Diosix project. For example, to copy the configuration file for the binaryriscv64-linux-busybox
to the buildroot source directory, use:
cp /path/to/diosix/boot/buildroot/riscv64-linux-busybox.config .config
- Run
make
to start the build. When it is complete, the fileoutput/images/vmlinux
will be the guest binary that can be used with Diosix. Copy it to theboot/guests
directory in the Diosix project tree. To continue with the example ofriscv64-linux-busybox
, use:
cp output/images/vmlinux /path/to/diosix/boot/guests/riscv64-linux-busybox
Below is a table of the available guest binaries along with a description and configuration file path for each.
Filename | Description | Built | Configuration |
---|---|---|---|
riscv64-linux-busybox-micropython | RV64G (lp64d) Linux kernel version 5.10.13 with BusyBox 1.33.0, Micropython 1.13, zsh 5.8, less | Feb 28, 2021 | boot/buildroot/riscv64-linux-busybox-micropython.config |
riscv64-linux-busybox | RV64G (lp64d) Linux kernel version 5.10.13 with BusyBox 1.33.0 | Feb 21, 2021 | boot/buildroot/riscv64-linux-busybox.config |
A guest binary contains third-party free software, listed below, built from unmodified source code using Buildroot. If you wish to obtain the source for these components, please follow the links in the table.
Component | License | Source code |
---|---|---|
Linux kernel 5.10.13 | GPL 2.0 with Linux-syscall-note | git.kernel.org |
glibc 2.32 | GPL 2.0 | sourceware.org |
BusyBox 1.33.0 | GPL 2.0 | git.busybox.net |
Every so often, built versions of Diosix will be uploaded to the diosix
directory in this branch to be used to quickly get started with the hypervisor in Qemu. Below are the available builds.
Filename | Description |
---|---|
diosix-0.0.2-debug-20210404 | Debug build of Diosix 0.0.2 built on April 4, 2021. This contains the same software as the March 7 build as well as various internal changes, such as being built without the use of the Mason build script system |
diosix-0.0.2-debug-20210307 | Debug build of Diosix 0.0.2 built on March 7, 2021 after the mega-merge of the november_reorg development branch. Contains the hypervisor, the gooey virtual console, and a Linux guest OS environment containing BusyBox, Micropything, zsh, and less |
Note: these builds include the third-party free software described above.
In January 2021, Diosix developer Chris Williams gave a 30-minute overview of the project to the British Computer Society's Open Source Specialists group. The slides for this presentation are in presentations/BCS-OpenSource-London-Jan-2021.pdf
, and you can watch a recording of the talk on YouTube by clicking on the preview below.