Minimal Linux Live: a minimalistic distro with basic network support via DHCP
minimal.linux-bg.org
minimal.linux-bg.org
By comparison, 16 MiB buys you a full-fledged (windowed) Linux live CD: http://tinycorelinux.net/ (or you can use their 11MiB kernel-only environment).
The full build process is documented [1,2], and the sources are very readable and well-commented.
Also appears to include a basic install-to-disk script, which from the looks of it you definitely should not try unless you know how to fix your MBR after it overwrites whatever you've currently got in place.[3]
Github: https://github.com/ivandavidov/minimal
[1] http://blog.idzona.com/2016/04/component-architecture-of-min...
[2] https://github.com/ivandavidov/minimal/blob/master/src/the_d...
[3] https://github.com/ivandavidov/minimal/blob/master/src/overl...
The gcc runtime files by comparison are 12MB total (uncompressed): libstdc++ (7MB), libgcc_s (0.5MB), libasan (optional; 4.5MB).
I then spent a few minutes adding Micropython to the image, so now I have a 12MiB image that includes a pretty nice and very compact Python, although I haven't added my favorite uPython libraries yet.
There's also Damn Small Linux which is based on debian woody, you could install dos, then transfer DSL image using a null-modem cable and loadlin to disk and use that to bootstrap it from DOS
How would I go about bootstrapping DSL? What is a null-modem cable?
PS: I've also got a zip program and a C compiler on there. If I need to write software to make this happen I have the power to do so.
Another similar cool multi-platform project that has been around for a while is Aboriginal Linux.
Buildroot is a poor build system. Perhaps make has spoiled me, but I expect anything that calls itself a build system to be able to find on its own what needs to be rebuilt. With buildroot, when I changed a component, I either had to explicitly ask for it to be rebuilt (and the explicitly ask the final image to be rebuilt), or explicitly mark the component dirty. The problem with the latter being that it's a one-way action; there's no way to clear the dirty flag without a full clean and rebuild of that component. Made our custom kernel dev work painfully slow.
Yocto was simple enough to read about and understand the setup.
> The good news is that the build scripts are very small in size and simple to understand. You can easily learn from the scripts and later modify them to include more stuff (I encourage you to do so). After you learn the basics you will have all the necessary tools and skills to create your own fully functional Linux based operating system. Entirely from scratch!
Build your own lightweight linux-based systems and utilities, I guess. And learn while doing.