I suspect this is a common feeling, but boy did I waste my time at university. Spent it running a bar, chasing women instead of knuckling down and doing things like this - I would love to take a year off and go back and just learn again.
It's probably a case of the grass is greener, I could find more time if I really wanted. Anyway, I had a helluva great time. Should have attend some lectures though ...
Hmm, less than 10,000 lines of C (quite a lot less). Has anyone any experience of this OS/ course ? Could you comment?
You can keep learning, just slowly. But it works: I decided a while ago to go back and learn the parts of CS that I skipped that felt unreachably wizardly to me. I'm currently working, very slowly, through the excellent Coursera compilers class, 25 minutes at a time on the bus to and from work. I say go for it :-)
I recently started to bring my laptop when travelling on the subway. It’s very nice to see that one can actually make progress (albeit slowly) on a project even with just 50 minutes a day (or less). 'patio11 inspired me :)
I printed out a copy of the source into a spiral-bound notebook to read/annotate. It can boot on real hardware which is pretty neat. It can even do multiprocessing on multiple cores (processes, no threads).
It uses "ATA PIO Mode" for the disk driver which is very simple and available on all ATA drives, but horribly slow. The console output is similarly naive but easy to understand. It even has a stripped down user-space, shell, C library etc.
It's a really good top-to-bottom look at a simple OS.
If you are going to study this you should also read the Lion's Commentary of the Unix 6th Edition (kernel)[0]. It provides a line by line commentary of the whole kernel (minus some of the hardware specific drivers). Xv6 is a port of the edition 6 kernel to x86 (with some minor changes).
I was lucky enough to take 6.828 a few years ago, it was quite a bit of fun!
Oddly, we tended to use xv6 just as a reference rather than anything else, as we built a custom version of JoS[1], which turned out to actually be an exokernel[2].
You could always dive in to a Coursera course over the holidays.
Alternatively for those who studied too much in university/didn't enjoy the rigors of studying engineering much (me), I recommend taking a few months off to study at a language university abroad.
We used it for the operating systems course I took as a reference OS while building a microkernel. It really is quite good, reading the code is far more helpful than reading a textbook.
We're using JOS lab assignments in the master's OS class at University of Washington this quarter. I think the labs are quite good at illustrating basic OS principles through having you implement the core functionality (paging, interrupts/exceptions, user mode environments, scheduling and context switching, etc.). Some of the hairy x86 scaffolding C and assembly code is provided - you concentrate on the core OS functionality. The downside is you don't learn how to write an OS completely from scratch, and more reading of x86 manuals would be required.
I disagree that you completely wasted your time in college - sounds like you enjoyed yourself!
I managed to make myself sound like John Belushi's bigger roommate ... Definitely not true! But thanks to the surprising number of supportive comments.
I think what attracts me is the coherence of a real course of study again. I learn something every day but it's across economics, option pricing, handling profilers across threads, whatever is on fire or on the reading list this week. the subject matter and themes are there but I have to reach for them. It was nice reading through the text and thinking the hard work had already been done I just needed to follow on.
But thank you for commenting - probably biggest response for a while and very inspiring.
It's probably a case of the grass is greener, I could find more time if I really wanted. Anyway, I had a helluva great time. Should have attend some lectures though ...
Hmm, less than 10,000 lines of C (quite a lot less). Has anyone any experience of this OS/ course ? Could you comment?