code.ivysaur.me
goix
A distro where go install is the only package manager.
Building
# 1. Create rootfs
# Run as regular user
DOCKER='sudo docker' ./make_rootfs.sh
# 2. Compile Linux kernel
# Run as regular user
DOCKER='sudo docker' ./make_kernel.sh
# 3. Pack into root disk image
# Run as root
./make_image.sh
# 4. Run in qemu
# Run as regular user
./run_qemu.sh
Progress
- rootfs: find coreutils implementations
- rootfs: find a shell implementation
- image: pack rootfs to image
- image: use gpt partition table on disk image
- kernel: compile in ext4 statically instead of as a module
- qemu: booting
- qemu: debug serial console support
- init: should reap children
- init: should mknod /dev /proc /sys, ensure that /dev/video exists, etc
- init: set a better PATH env for gosh
- kernel: reduce size, add only simpledrm devices as we have no firmware
- go: test it works inside image
- nyctal-dri: test
- add fynedesk
- networking support
- gup: test
- bootloader: make disk image standalone-bootable by copying in kernel image
See also
- FyshOS - Debian derivative, X11 GUI
- U-Root - Embedded rootfs, not updatable, no GUI
- https://popovicu.com/posts/making-a-micro-linux-distro/ U-Root derivative
- https://news.ycombinator.com/item?id=45703556 Comments