Development environment
Prerequisites
You will need two tools to build AArch-OS:
-
Docker (
docker)The build scripts do not use
sudowhen invoking Docker, so you will need to ensure the daemon is configured to run in rootless mode or that your user is a member of thedockergroup. Alternatively, you can update the scripts to usesudoas appropriate, if you prefer to run Docker in the traditional way. -
GNU Make (
make)The build scripts may use some GNU-specific features and, so, might not be compatible with other versions of Make.
Ensure that both are installed and available in your PATH before proceeding.
The Docker image
To achieve reproducibility and consistency, AArch-OS uses a containerised environment, based on Docker, for building and testing. This is a single image which includes all the necessary tooling for building the OS and running it on a QEMU virtual machine. The Dockerfile for the image can be found in the repository at env/Dockerfile.
WIP
- SSH configuration (port 2222,
root:root)
A Makefile is also provided in the same directory, which contains a number of targets for building and running the image:
build: build the imagestart: create and start a container from the imageshell: start a shell in the container- ...
To simplify building code for the arm64 architecture, the image itself must be arm64 too. Non-arm64 hosts can still use the containerised environment by taking advantage of Docker's emulation support.