I fondly remember building linux from scratch in the early 00's and learning quite a bit about how a system is put together by doing (and troubleshooting) the steps. IIRC bootstrapping the compiler was the trickiest bit since the fedora (or maybe it was still redhat back then) gcc didn't like to play nice with its younger siblings.
The point of homework is to do it yourself, not to clone a repo with the answers.
I've had a lot of fun with LFS, but if everything goes smoothly it is a bit pointless. When builds broke or I missed components there was an opportunity to better my understanding of the system. Experience with multiple failure modes in a safe environment - it counts for a lot.
It also forces you to learn what the dependency graph looks like and a little bit of why, which can be helpful.
Linux kernel + busybox + few unit scripts == lean
But, you know, to each their own -- don't get me wrong, I really enjoyed tinkering with LFS back in the day.
https://zwischenzugs.com/2015/01/12/make-your-own-bespoke-do...
it was a great learning experience but take-up was 0 :)
I want to deep dive into building Linux from scratch (step by step, not via a magic script) to get intimately familiar with the OS, but wonder if I ought to invest my time in a more recent version.
So, why I've built such script? I think it is needed for the next steps, where you actually might want to modify kernel/tools/configuration to gain the knowledge how things are (not-)working.
Version 4.12 was from July 2017 until September 2017 (0)
Right now the main line kernel is at 4.14, but it has not changed so much that it really matters for learning Linux.
[0] https://en.wikipedia.org/wiki/Linux_kernel#4.x.y_releases
Anyway, it should be possible to build image for docker container if necessary.
Any thoughts on using a virtual machine to practice while I travel? VMWare Fusion?
Edit: low and behold under "License"...
"This work is based on instructions from Linux from Scratch project and provided with MIT license."