I just want a linux distro that boots fast, has a bash terminal (no gui) and busybox.
Is there any such distro or is it hard to compile a kernel and just make one myself?
What you are searching for is called ttylinux.
The distribution was hosted at Ttylinux.net, and is currently not maintained.
A good linux distro that I've fallen in love with (and also has no GUI) is MicroCore Linux. It also has an older brother TinyCore Linux that does have a GUI (a pretty crappy one though).
You could always try DSL (Damn Small Linux)
I don't think any of these explicitly come with busybox (I don't know of any distro that ships with it), but it shouldn't be too hard to install it afterwards. From what I understand your main concern is a small fast system with a decent shell.
The best most current distribution I can think of is Debian NetInst: http://www.debian.org/CD/netinst/
There are a number of small Linux distributions out there but this one I think will be among the best maintained. Another thing is, if you need to grow it to full size, it's a trivial operation.
"Alpine Linux is a security-oriented, lightweight Linux distribution based on musl libc and busybox."
Minimal Linux Live
https://github.com/ivandavidov/minimal
For a more interesting interactive system, this is a (mostly educational) small script that:
The ISO then leaves you in a minimal shell with busybox.
With QEMU you can easily boot into the system.
I have modified it to allow running it from the kernel source directory: https://github.com/cirosantilli/runlinux
Usage:
git clone https://github.com/ivandavidov/minimal
cd minimal/src
./build_minimal_linux_live.sh
# Wait.
# Install QEMU.
# minimal_linux_live.iso was generated
./qemu64.sh
and you will be left inside a QEMU Window with you new minimal system. Awesome.
Since it is small, this is a good option to read the source and understand what is going on.
Tested on Ubuntu 16.04.
Buildroot
Large set of Makefile scripts that manage:
Minimal example:
git clone git://git.buildroot.net/buildroot
cd buildroot
git checkout 2016.05
make qemu_x86_defconfig
# Can't use -jN, use `BR2_JLEVEL=2` instead.
BR2_JLEVEL=2 make
# Wait.
# cat board/qemu/x86_64/readme.txt
qemu-system-x86_64 -M pc -kernel output/images/bzImage -drive file=output/images/rootfs.ext2,if=virtio,format=raw -append root=/dev/vda -net nic,model=virtio -net user
# You are now in a shell with BusyBox utilities.
Professional stuff.
Alpine Linux
https://github.com/gliderlabs/docker-alpine
Embedded distribution with a package manager that offers precompiled binaries from a website.
Single executable rootfs
The absolute minimum system runs a single /init
program as I've explained at https://superuser.com/a/991733/128124
You should try Arch Linux. It let's you choose what you do and do not want to install on your system. You could even choose to not install bash :p Alternatively you could try Gentoo, where you have to compile everything from scratch.
bash
. (It's easy to replace SysVinit with systemd, though.)
Jul 6, 2011 at 14:28
busybox, musl C library, gcc, binutils, make, bash, and the Linux kernel.
busybox, musl and the Linux Kernel
Well you could use Yocto to bitbake (or whatever it uses these days) a tiny distribution that has just what you want (including appropriate hardware drivers).
sh
.