Skip to content
/ caustic Public

How much space is needed for a minimal but usable Linux distribution?

License

Notifications You must be signed in to change notification settings

kiedtl/caustic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Caustic Linux

How much space is needed for a minimal (but usable) Linux distribution?

(I guess it all depends on how you define usable.)

Status

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)
    • working boot (on x86_64)
      • kernel
      • init system
  • minification

Components

This project aims to fit the following components into as little space as possible:

  • init system
    • custom script
    • hummingbird, or
    • systemd. After all, it's only 16MB, and it has service supervision, and...
  • a shell
    • loksh (see: dimkr/loksh)
    • the ash 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
  • 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

Build

You will need:

  • GNU Make (bmake is untested...)
  • POSIX-compatible /bin/sh
  • wget
  • git
  • tar
  • find and xargs

...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.

About

How much space is needed for a minimal but usable Linux distribution?

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published