A hobby OS with a custom kernel and userspace, with many ported software including musl libc, SDL2 and even Qt5!
GPL-3.0 License
LaylaOS is a hobby operating system with a kernel that is written in C. The project started around 2015 and took almost 9 years to reach a stable point where I felt it could be shared with the world. It is meant as a learning tool to better understand the internal workings of an Operating System's kernel, how system calls work and how to implement a Graphical User Interface (GUI) environment.
It is definitely not a system meant for everyday use (not yet, at least).
The project's features include:
This is mostly to keep track of where we are at and what needs to be done next:
You can download a prebuilt bootable disk image that includes everything (including the ported software) from the releases page. Be mindful, however, that the unzipped disk image is likely to be big (3+ GiB in size). You can use this image to run LaylaOS under Bochs or QEmu.
If you want to try LaylaOS under Oracle VM VirtualBox, you will need to convert the bootable disk image into a VDI image. This can be done by running:
VBoxManage convertfromraw bootable_disk.img bootable_disk.vdi
You can then create a new virtual machine under VirtualBox using the disk image. You will probably face a problem as the image contains two files (/boot/grub/grub.cfg
and /etc/fstab
) with a hardcoded boot device name (something like /dev/hda4
). To be able to use this disk as a SATA (or AHCI) disk under VirtualBox you need to either:
/dev/sda4
(assuming you connect the disk at SATA port 0; the image contains 4 partitions)./create_bootable_disk.sh rootdev sda4
See below if you decided to build LaylaOS from source.
To build LaylaOS from source:
cd ~/downloads/laylaos-master
build-scripts
subdirectory in the source tree: cd build-scripts
build-scripts
directory): ./buildos.sh
./create_bootable_disk.sh
bootable_disk.img
and is created by default in the current working directory (you can run ./create_bootable_disk.sh help
to see the list of options)bochsrc
file is automatically created alongside bootable_disk.img
(you might want to fix the name of the wireless device you use in the file). You can now run Bochs: bochs -q
qemu.sh
is also created to let you test the OS under QEmu. However, you need a TUN/TAP network device to run LaylaOS under QEmu using the provided script. You need to first run sudo ./netprep.sh
to create the network device, then you can proceed with running qemu.sh
copyright.txt
file).