Tue, 26 Nov 2013

Computer Literature Queue

The Ode Community Book Club has just started up its second edition: we're reading Dive into HTML5 and Beginning HTML and CSS. After this we'll probably read something on Git, so I've got my reading line d up for the next few months, but nonetheless I've also been adding some more to the list.

Last month I got a gift card for one of those online super-shops. I used it yesterday to finally purchase The Elements of Computing Systems from the nand2tetris project. I did some reading in the first chapter of this book a while ago, and put it aside to pick up when I can work through the whole book/project. I'm really looking forward to doing this.

I'm starting to get interested not only in simple systems but in learning about how they work and how to build them. I've been interested in the Tiny Core Linux project for a while; yesterday, browsing information and spin-offs of that, I came across this video of a talk on 'What is in a tiny Linux installation'. Malcolm Tredinnick from Australia exp lains a bit about the steps along the booting process, and how to choose what to put into a kernel and the rest of the boot process to boot a given sy stem.

I found I could follow this talk quite well. It was interesting to note where precisely I started to have trouble following. It may have been because I picked up the video again after twenty-four hours, but my eyes glazed over around 30 minutes where we get into c libraries 'because eventually you'll get sick of compiling everything statically'. Wait, what is static compiling and how will C libraries help us avoid it?

I find it really interesting how within one talk, wich is a coherent whole and the general message of which I can follow in its entirety (and probably could have a few years ago too), can contain some specific sections that I can follow with ease and others that I can only follow abstractly. I've ob viously gained a bit of knowledge about things like boot codes and virtual machines and filesystems and compile options that allow me to follow along when we're talking about choosing options to put into a kernel build, but I get lost when we get to 'static compiling' because I haven't had exposure to what this means (actually I have, I think, but not often enough, so I can't remember what it means).

This makes me think of a comment which was made the other day in the HTMl5 Book club at the ode forums. Although the books we're reading aren't perfect, they are worth reading because learning something new takes time and all the exposure we can get to something is useful (as long as it's not teaching us falsehoods). Even incomplete understanding helps us to move forward. In the same way, I now understand a bit m ore about the process of creating a custom Linux-based operating system and getting it to boot. And so I can better formulate to myself what it is tha t I next need to learn about.

But I'll save that for when I've finished the readings earlier in the queue. And, maybe after I've built my own operating s ystem. If that doesn't position me to understand the different types of compiling, I don't know what will.