How much space is needed for a minimal (but usable) Linux distribution?
(I guess it all depends on how you define usable.)
Highly experimental.
Please note that this Linux distro is slightly corrosive, and may cause damage if used without proper equipment and expertise.
- planning phase
- get a working system first.
- working
chroot
- shell (
loksh
) - coreutils (sbase + ubase)
- fetch script
- core filesystem
- editor (
vi
)
- shell (
- working boot (on
x86_64
)- kernel
- init system
- working
- minification
This project aims to fit the following components into as little space as possible:
- init system
- custom script
hummingbird, orsystemd
. After all, it's only 16MB, and it has service supervision, and...
- a shell
- loksh (see: dimkr/loksh)
theash
shell.why not a custom shell.
musl
libc (statically linked)- basic set of coreutils with
util-linux
stripped down busybox.bareutils (would require bash as shell...)- sbase + ubase
- an editor
vi
(sorry)a custom editor- oh wait, ed is the standard text editor. never mind.
- tiny fetch script
- a slightly modified version of golfetch (see: caustic-sysinfo)
- kernel
- nothing else.
- no service supervisor.
- no windowing system. (X11, Wayland, whatever)
- no package manager/package system (as of now anyway...)
- no unicorns or rainbows.
- etc etc etc
You will need:
- GNU Make (bmake is untested...)
- POSIX-compatible
/bin/sh
wget
git
tar
find
andxargs
...in addition to a C99 compiler and the rest of the components needed to build the kernel, sbase, ubase, and loksh. Please refer to those project's documentation to ensure you have them all installed.
Then, retrieve the repository source via either git
and wget
and run:
$ make build
$ make chroot
This will create a chroot
-able directory in ./root
. You may then use the
scripts/caustic-chroot
script to chroot
into the directory and run
du -sh
.
WARNING: This project has only been tested on armv6l
, so if you are using
a different architecture, you must expect most things to be broken and be
prepared to fix it yourself.