Xv6 – A Simple Unix-Like Teaching Operating System
pdos.csail.mit.edu
pdos.csail.mit.edu
However, I wish they'd use something other than GAS for the Asm parts... a minimal self-assembling assembler (and a C-subset compiler written in it, to bootstrap the whole thing) would be nice.
https://github.com/rswier/swieros/blob/master/root/bin/c.c
It's part of an OS he's building based on xv6
It worked well enough to compile early Linux kernels.
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?
[0] http://www.amazon.com/Lions-Commentary-Unix-John/dp/15739801...
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.
I disagree that you completely wasted your time in college - sounds like you enjoyed yourself!
In the end, you only get one life and there will always be things you wish you had done.
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.
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.
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].
[1]http://pdos.csail.mit.edu/6.828/2011/overview.html [2]http://en.wikipedia.org/wiki/Exokernel
It's certainly more work than the 12 units it's rated for though.
Listed on some course webpage was this:
You can find the labs right now under the lab tab of http://pdos.csail.mit.edu/6.828/2014/
MINIX didn't have multiprocessor support until MINIX 3. Unlike MINIX 2, MINIX 3 is not designed as a teaching OS.