The sixth week of the quarter has just come to an end, and that leaves five more weeks until summer. Even though the coursework load has been pretty intense, I've really been enjoying it.

There's just something really satisfying about successfully completing operating systems projects, because they're just so freaking cool. For the first project, I had to write a shell similar to bash. This is pretty much one of those standard projects that you'll see being assigned in any decent OS course anywhere. As one of my challenge problems (think of it as sort of like extra credit), I read through the documentation for the GNU Readline library and implemented tab-completion and a command history for the shell as well. That actually made it a lot more usable, as you can imagine. ;)

The second project involved jumping right into the Linux kernel and writing a driver for a lockable RAMdisk. Lots of crazy synchronization issues, and potential deadlock situations to watch out for in this one. The worst part is if you didn't detect and handle a deadlock, the whole machine would lock up and you'd have to power it down and back up each time. :D Made debugging an absolute nightmare, but it's lots of fun to be programming at such a low level and seeing how everything comes together. Even better, for the next project, I'll be working on writing a filesystem. Good times! :D