What I have learned from my work on EasyLFS
EasyLFS keeps growing and growing. 0.4 is slowly coming closer and it will be the greatest release so far (who would have expected that? ;-) ).
After already "abusing" my blog to post a few numbers around my project I want to take a few minutes to think about what I have learned by working on EasyLFS.
Of course I had to deal with Linux-internals. A lot of stuff is covered by the LFS-book, explaining the dependencies and stuff, but for EasyLFS there was also a bit more than that. Since I also had to learn how to make a LiveCD, I had to deal with including a lot of different drivers into the kernel.
I use the Linux Live Scripts, which are already pretty good and easy to use. But I had to make some changes here and there, especially when I decided to add a second kernel for SMP-support.
In addition to this I had some more contact with chroot. During my work on the scripts I learned that you cannot only chroot into an environment and then have a shell there, but that you can execute whatever you like inside the chroot-environment, not only a shell. That of course led to the installation as it is now. Before you had to call several scripts, but now it's all done with one script (which basically just is a wrapper for the other scripts, which are still there, but in a subdirectory ;-) ).
Also I could improve a lot on my shell-scripting. Having written more than 200 scripts for EasyLFS I could really enhance on that. Before my scripts where mostly just collections of calls, one after another. Or maybe one call with certain parameters. But for EasyLFS I had to work with lots of variables and conditional code.
Not only my bash-scripting has improved through this, but I also learned to use sed and awk, which I now find really useful.
Through what I have learned by using chroot-environments and all the scripting I could also implement some nice features for the coming version 0.4 of EasyLFS, like LVM- and RAID-support. This is done with an InitRamFs, which is like an InitRD, a little system only with the necessary stuff.
Work with that also motivated to try something else: chroot-jails. I did not find the time for this yet. And since it's unrelated to EasyLFS I'll probably play around with this after the release of EasyLFS 0.4.
Finally I had the chance to learn something about what I wanted to learn for quite some time: SELinux. Yes, it is complex, but it's also powerful. And when you have a look at the policy it actually isn't that hard anymore.
I still learn from my work with EasyLFS, especially about SELinux. But there's always something new to try and to learn. With this project I can try to make a little difference, to offer a source-based distro that has some really cool features, which even some popular distros still don't have.