bish, smile

Recent Twitting

  • 00:00 Here is your chance to win a free iPad, or 1 of @AmbrosiaSW's iPad games. Follow us and RT to win! #Ambrosia
    bit.ly/ASWiPad #
  • 00:21 The free @digg app is here for iPhone! To celebrate they're giving out 1 custom ColorWare #ipad everyday for 2 weeks! bit.ly/diggapp #
  • 00:25 Apple news: 300k iPads = Wow. iPhone OS 4 previewed Thursday = neat! New MacBooks released this month = interesting. #
  • 11:41 .@AmbrosiaSW releases 4 iPad games, and to celebrate they are giving away an iPad each day all week! #Ambrosia
    bit.ly/ASWiPad #
  • 17:59 the free @digg app comes to your iphone! to celebrate they're giving out a custom #ipad each day for 2 weeks! bit.ly/diggapp #
Automatically shipped by LoudTwitter
bish, smile

Recent Twitting

  • 21:44 Russians apparently exist by fiat. #
  • 10:46 (via @ElasmoNakago) Offensive, but funny and true: www.alanbaxteronline.com/2010/04/01/offensively-brilliantly-true.html #
  • 11:37 I think my #Lost loving tweeps will find this funner than I did: www.youtube.com/watch?v=c0MX6oqJBno #
  • 15:58 NPR told me that a rider was attached to the health care bill: All months will now have 29 days, to cut "per day" spending and reduce debt. #
  • 16:07 the free @digg app is here for iphone! they're giving out a custom ipad everyday for 2 weeks to celebrate! bit.ly/diggapp #
  • 16:28 NPR is now trying to sell me a 20 disc collection of underwriting credits. And going on about it for a while. #
Automatically shipped by LoudTwitter
bish, smile

Recent Twitting

  • 20:01 Power, Memory, Hard Drive, CPU, Network, Sound, DVD, CD-RW... I think it's ready to go. #
  • 20:02 Oh. Can't forget Kubuntu install CD. Need that too. #
  • 20:06 Hm. Power _cord_ is useful. Most desktops don't boot without one. #
  • 15:30 The free @digg app comes to your iPhone! They're giving out a custom iPad everyday for 2 weeks to celebrate! bit.ly/diggapp #
Automatically shipped by LoudTwitter
bish, smile

Recent Twitting

  • 00:35 Just saw The Departed. Well, then. #
  • 02:28 ...we often learn at the end of Mythbusters everyday objects can, in fact, be made lethal if Jamie builds a gun to shoot them. ~@donttrythis #
  • 17:20 The free @digg app comes to your iPhone! To celebrate they're giving out a custom ColorWare iPad each day for 2 weeks! bit.ly/diggapp #
Automatically shipped by LoudTwitter
bish, smile

Compiling Linux From Scratch

I'm going to blog about compiling Linux From Scratch... It's likely to be rambling and long and technical. You have been warned.

Linux From Scratch is two things. First, and most literal, is that I'm building Linux from first principles. Download everything needed for a "real" Linux system and build it myself. Secondly, it's a book. The book is "Copylefted" via the Creative Commons and periodically updated to keep up with the latest and greatest. The website has a load of information including a set of books to help move beyond a basic Linux installation, a set of patches to help tweak things the way you want, and a pile of hints on how you might want to do things. It's a great resource for a roll-your-own Linux "distribution".

The LFS book does a great job of explaining why you're typing in each step. It doesn't just say type to in

CC="$LFS_TGT-gcc -B/tools/lib/" \
AR=$LFS_TGT-ar RANLIB=$LFS_TGT-ranlib \
 ../gcc-4.4.3/configure --prefix=/tools \
 --with-local-prefix=/tools --enable-clocale=gnu \
 --enable-shared --enable-threads=posix \
 --enable-__cxa_atexit --enable-languages=c,c++ \
 --disable-libstdcxx-pch --disable-multilib \
 --disable-bootstrap
It also bothers to tell you what each of those options is and usually why you need it. Very very useful stuff. For instance, skipping --enable-__cxa_atexit would change the C++ ABI and make the new system binary incompatable with C++ programs from most Linuxen.

The next thing a rational person might ask is "For the love of penguins, WHY?" The LFS website says a bit about this, but that doesn't say why I'm doing it. Well, because I want to know what makes it tick. I know a lot about Linux. Heck, most of my friends consider me an expert. But I let Debian and Ubuntu tell me what goes where and how things work. This should help me get an understanding of what each piece does, how they hook together, and what's actually needed to make it work.

Also, I've done a little embedded work. I was mostly working off a framework someone else made, but doing this would let me build it myself. I'm also hoping that after this I can make a simple little uClibc/busybox VM. Might need to keep around a "host" system that does things like compiling pacakages, but hopefully I can even write a basic "package management" system. Reinventing the wheel, I know. But as a programmer, knowing the deep magic is important.

I was inspired to look into this by GoboLinux, a Linux distro that has a bit of the "do it from scratch" mentality, but mostly a "let's do it right, not just how it's always been done." It's an interesting setup, and apparently one that causes them some issues from time to time (autoconf is easy, things like CMake, rubygems, and CPAN give them headaches). But I like the concept, it's a lot like what Apple tries to do and what I've thought of from time to time. Put each "package" into it's own little bin rather than installing everything on top of each other. Compelling. I'm going to try it out after my LFS experiment.

Collapse )
  • Current Music
    White Stripes: Under Great White Northern Lights (via NPR)
  • Tags
    ,