Lyos is an open source microkernel multitasking operating system, it runs on 32-bit x86-based PCs. It is distributed under the GNU General Public License.
To try out Lyos without building the whole system, you can download a xz-compressed nightly image, uncompress the image and run it with QEMU:
qemu-system-x86_64 -smp 2 -drive id=hda,file=lyos-i686.img,format=raw,if=none -device virtio-blk-pci,drive=hda -m 2048 -serial stdio -vga virtio -sdl -cpu host,pmu=true --enable-kvm
Lyos has many standard features:
First we will clone the repository into the lyos
directory:
git clone https://github.com/Jimx-/lyos.git
cd lyos
Since Lyos requires various build-time dependencies, it is recommended to set up a Docker instance as the build environment to make sure the correct versions of these dependencies are installed:
docker build -t lyos_build .
After building the Docker image, start a container:
docker run -v $PWD:/workspace/lyos -it lyos_build
If everything is set up properly, you should see the bash prompt and a lyos
directory under /workspace
containing the source files in the repository:
root@2519c5bdfad9:/# ls /workspace
lyos
Now you can switch to the /workspace/lyos
directory and proceed to the Building section.
cd /workspace/lyos
Alternatively, you can install the dependencies manually if you prefer to build Lyos on the host system directly. The complete list of required dependencies is in Dockerfile
. You can install the dependencies with a standard package manager (e.g. apt
on Ubuntu).
Make sure that you are in the root directory of this repository (/workspace/lyos
if you are using a Docker container). First we need to create the build configuration file and install some userspace headers to the cross-compile system root:
make SUBARCH=i686 defconfig objdirs install-headers
The SUBARCH
environment variable specifies which architecture to build Lyos for. Currently only i686
and riscv64
are supported.
Set up the toolchain and userspace packages for building Lyos:
cd toolchain
./download.sh
BUILD_EVERYTHING=true ./setup.sh -m i686
cd ..
Similar to SUBARCH
, the -m
option of setup.sh
specifies the architecture to build the toolchain and packages for.
Now build the kernel and servers:
make SUBARCH=i686
(Optionally) setup.sh
only builds some core userspace packages like bash
and coreutils
. You still need to build some extra packages if you want to use graphical interface:
cd toolchain
BUILD_EVERYTHING=true ./setup-extra.sh -m i686
BUILD_EVERYTHING=true ./setup-x11.sh -m i686
cd ..
Now you can create the disk image for Lyos:
sudo ./scripts/setup-disk.sh
This will create a disk image lyos-disk.img
under the current directory which can be launched with QEMU.
Sign in for post a comment
Comments ( 3 )