Sunday, January 12, 2014

Linux from Scratch Take 2

OK, so I successfully was able to build a working Linux from Scratch distro with LFS 7.4 on 5 December 2013.  Yes, I marked the date as this was the first time that everything came together to enable me to fulfill this goal.  What is Linux from Scratch?  Well, the best way to understand it is to do it.  Go here to check it out.  Probably better if you roll up your sleeves and just go do it.  But in a nutshell it is building your own working Linux system from source code.  It is a really great way to see how the pieces come together to form the whole.  I first ran across the whole Linux from Scratch idea back in 2005 when I was looking for new Linux and Unix distros to play with other than Red Hat and SUSE.  Don't get me wrong, those are fine systems, but I wanted to (and still do) want to find the perfect system(s) to suit my needs and tastes.  That's what I love about Linux, it is fully open.  I can take it apart, analyze the core components from the raw source code and build it how I want and to also figure out what makes it tick.  Yeah, I was the kid that would take apart the clock radio - much to everyone's chagrin.  I was poking about Cheapbytes (I think they are no longer around - too bad I picked up lotsa cool geekery there but OSDisk seems like a nice alternative if you have to purchase copies instead of downloading an ISO off the web) looking for interesting things to try out and saw a book entitled Linux from Scratch by Gerard Beekmans.  I was intrigued - I just had to get it.  I did, but unfortunately at the time, life and other things conspired to keep me from following through on the promise that the book held.  Kids, work, illustration commissions, pets, life in general, etc. managed to take my focus away from my Linux passion and it wasn't until the Government Sequestration and the resultant furlough days that I was forced out of complacency and to a decision point. 

The long and the short of it is that I decided that it was time to come back to my passion for Linux.  I'll admit that I'm no uberLinux nerd that knows every kernel module by heart but I'm getting there.  But I digress, BACK TO THE NARRATIVE!!

So in my newly found free time, I decided to maximize my downtime and use my powers for good (or well, at least constructively).  I divided my time between art, writing, game development, programming, and Linux time.  Yeah, I managed to stay busy and it sure was nice to get some of my tech chops back.  So I pushed ahead with my long time goal of getting my OWN LFS system up and running.  I ran into a few frustrations, switched between 7.3 and 7.4 midway through, and lost the laptop I was working on when a freak lightning storm zapped our house.  However, I persisted and continued to spend my evening TV time, with my new laptop compiling source code and hacking away at my soon to be functional system.  It went smooth for the most part but I did have a few issues at the end trying to get the GRUB2 Bootloader to work and to get the system to boot up.  After almost throwing in the towel, I restarted the VM I was working in and was greeted with the console logon for Johnix (yes, I named it after me - it's my baby afterall, hehe).  I continued on with the Beyond Linux from Scratch to add more functionality to the system and had fun with that and have learned a lot along the way.  I decided that I wanted to add a package manager to try and make life easier.  After much struggle and angst over the course of about two weeks, I was successfully able to get Gentoo's Portage installed.  However, I realize at that point that my once clean and relatively unencumbered system had become a bit cludgy. 

So now here I am, time to go for another pass.  This time with some stated design goals other than just to get a working system.  At the top of the list is to actually document my progress.  Right here on my blog.  Second, I want a smaller host system so that I can wean off of that to the LF system and actually create a Liveboot version of Johnix.  Third, Johnix will be a lightweight system that will be a launch platform for different things.  First on the list is to build in some security tools (lik Kali or Blackbox) but only the ones I use on a regular basis like Nessus, Metasploit, Nmap, etc.  I also want to port it to Raspberry Pi and the ARM architecture to build a lightweight clustered environment leveraging the low cost and small footprint platform.  And I'm sure these things will change a bit as I go.  But the last two design goals will be immutable - to Have Fun and Learn a Lot.  Maybe you will too.

Ciao for now!

No comments:

Post a Comment