Buildroot
I have often wondered what it takes to start up linux. As I delve further into the Atlas tutorials I will understand it better. I believe yocto is the hardcore build environment but buildroot is a simpler substitute which, unsurprisingly, runs on linux.
A tool called vagrant makes it ridiculously easy to setup buildroot. As explained in a short tutorial by Dzone you simply download a vagrant configuration file and run vagrant to startup a VirtualBox ubuntu VM configured for buildroot. It works a dream.
I followed the second part of the Dzone tutorial to create a simple i386 linux including openssh.
This builds all necessary software and creates two output files, a kernel image (bzImage) and a file system (rootfs.ext2)
Qemu
Armed with these two files we can bring up linux. We don't have a specific hardware processer in mind for this OS so it makes sense to bring it up in a virtual machine. Qemu is the workhorse for linux VMs and initially I installed qemu on my buildroot VM. I can bring up linux and sign on to the console or ssh from the buildroot VM. The linux I have built is very simple. It is absolutely perfect to know that we have everything we need for a working linux system.
It doesn't make a lot of sense to run a qemu linux VM under VirtualBox ubuntu linux. Qemu is available for Windows so I moved my two files across to my PC and installed Qemu for windows. The batch file to start up qemu has a different format to the linux script but after a bit of trial and error I could start my qemu VM in Windows. Establishing the network under windows took a little care, I had to enable openssh server in Windows so that ssh communication from qemu to windows was possible.
RPI image
Clearly buildroot can create images for real hardware and I would like one for my trusty old RPI model 1B. Buildroot makes this childs play by giving you a default configuration for various RPI models. Within buildroot I simply ran "make raspberrypi_defconfig" and then "make" . The result was an image that I could burn to an SD card using Balena Etcher. I booted it up and I have a simple RPI build. This is excellent.
Qemu RPI
Rather than create SD cards for RPIs I would like to have an Qemu RPI VM working under Windows. Alistair Chapman has provided a little blog showing how to do this. It isn't a buildroot cutdown but a full RPI-buster-lite image. The real RPI kernel needs some tweaking to run under windows but Dhruv Vras has provided suitable kernels for each Raspbian release. With a tailored kernel and a standard Raspbian image you can startup a Qemu VM.
In fact it is slightly more complicated than suggested to get the build to work, a couple of files need editing to make the image work and I followed instructions in wiki helpfully provided by Dhruv. Awesome, I now have an RPI VM working under Windows10 without VirtualBox.
Conclusion
It is very educational to build linux systems yourself to gain a feel for what software you need and what hardware components it uses.