A minimal, custom linux-based "operating system", with custom shell, init, busybox, v6.1 kernel, etc.
/- Main project directory/shell- Custom shell implementation/init- Custom init.sh + init.c wrapper implementation/initramfs- Generated directory for initial ramdiskMakefile- Main build systemkernel.config.tiny- Smaller linux kernel configurationkernel.config.def- Default/heavier linux kernel configurationbusybox.config- BusyBox configurationinitramfs-shallow- Hard files to copy into initramfs
- GCC and development tools
- Linux kernel source code in
../linux(relative to the meowos directory) - Internet connection (for downloading BusyBox)
- QEMU for testing
# Build everything for x86_64 -> bzImage,cpio + iso (shell, init, busybox, initramfs, kernel)
make all
# Build just the shell
make {shell,init}
# Menuconfig for kernel, busybox
make {menuconfig_kernel,menuconfig_busybox}
# Clean build artifacts
make clean
# Clean everything including downloaded components
make distclean
# Run the OS in QEMU
make run# From the meowos parent directory
git submodule add --depth=1 https://github.com/torvalds/linux.git linux
git submodule update --init --depth=1 linux
cd linux
git checkout v6.1 # or your desired stable version