MINimum system
A small set of scripts to build an absolutely minimalist system using
the musl libc, mksh, the "one true awk", and other tools.
~~I'm purposely trying to avoid large or complex projects such as Busybox. Not that they don't have their place, or that there's anything wrong with them, but IMO they take the fun out of it because they have absolutely everything you need. The Linux Kernel will be the glaring exception here.~~
# passwd
Enter new password:
Segmentation fault
The above was wishful thinking. I may debug the suckless tools in the future
but they're nowhere near complete enough to build a distro around. Although
the ed implementation works rather well.
Currently it's just building a minimal set of tools into pfx/ eventually
the scripts will encompass building a virtual machine image with a boot
loader and all the bells and whistles. ( if I get around to it ha ha )
Will your system include a compiler?
Probably not, but I've thought about this one, it'd be cool to make it "self-hosting" in a sense.
What Linux distribution are you building this on?
Gentoo at the moment, it should work on any Linux distribution.
Why?
I want to learn more about how operating systems are built and doing something that someone else has already laid out for you ( such as the LFS project ) is just too tedious and boring for me, I'd rather do something different.
The process so far:
Acquire a toolchain and set it in ./inc I used musl-cross-make
and placed the output folder into ./x86_64-linux-musl where x86_64 is
the arch you're compiling for, in theory this should work for ARM and the like
but I haven't gotten around to testing.
If you wish to set this up automatically run sh scripts/musl-cross-make.sh
after sh scripts/get_sources.sh
Run scripts/get_sources.sh and then scripts/build.sh It's rather important
to run them from the min directory so the paths and imports will be correct.
Note:
Because I've not yet been able to make some programs statically linked you
might need a symlink for programs to find musl libc, or just switch
the $PATH order in ./inc
sudo ln -sv ${base_dir}/pfx/usr/lib/libc.so /lib/ld-musl-x86_64.so.1
