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
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.
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
SUBARCH environment variable specifies which architecture to build Lyos for. Currently only
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 ..
-m option of
setup.sh specifies the architecture to build the toolchain and packages for.
Now build the kernel and servers:
setup.sh only builds some core userspace packages like
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:
This will create a disk image
lyos-disk.img under the current directory which can be launched with QEMU.
：Code submit frequency
：React/respond to issue & PR etc.
：Well-balanced team members and collaboration
：Recent popularity of project
：Star counts, download counts etc.