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