
Roll your own Unix - fogus
http://www.jamesmolloy.co.uk/tutorial_html/
======
enneff
Also see xv6, "a simple Unix-like teaching operating system":
<http://pdos.csail.mit.edu/6.828/2011/xv6.html> and its textbook:
<http://pdos.csail.mit.edu/6.828/2011/xv6/book-rev6.pdf>

~~~
4ad
Yep, great successor to Lions' Commentary on UNIX 6th Edition.

Another great book in the same style is Notes on the Plan 9 3rd edition Kernel
Source, also free: <http://lsub.org/who/nemo/9.pdf>

Plan 9 might be obscure to most HN readers, but fundamentally these books
teach concepts, and the code base is much more clear and understandable than
mainstream kernels.

~~~
Sodel
Holy crackers, that document is one of the most exciting things I've
encountered in a long time. I had no idea it existed! I wish it was featured
more prominently in the Plan 9 community.

The Plan 9 source is really a work of art. I cannot wait to sink my teeth into
this commentary. Thank you so much for sharing!

------
exDM69
This is a quite nice tutorial. There's a quite bit of half-chewed reference
material in the osdev wiki. It's quite x86 centric, but that's what makes it
especially valuable to me. I already have OS books that I read in Uni courses:
<http://wiki.osdev.org/>

Writing your own hobby operating system is a very nice project to learn about
your computer's internals and hone your low level programming skills. Here's
the start of my hobby OS: <https://github.com/rikusalminen/danjeros>

Also, don't be fooled to thinking that you won't need the skills
professionally, because Linux/Windows/*BSD already exists. In fact, at work we
have an original in-house small "toy" operating system, but it's not a toy.
It's actually used for testing new system on chips when they roll out the
factory as well as doing some special purpose tasks on actual devices that are
shipped to millions of customers. It's only a few thousand lines of code and
looks a lot like one of these schoolbook/hobby operating systems.
Unfortunately, I cannot tell you anything more about it.

------
stephen_g
I'm not sure if he updated it on the site linked above (it's not loading for
me), but as I remember James was working on a better code base for his
tutorials. The theory on this website was good but the code had problems. The
updated code was hosted at Google code - <http://code.google.com/p/jamesm-
tutorials/source/browse/>

------
dhoe
Is anybody aware of similar projects that target databases instead of
operating systems?

~~~
nodemaker
The book "Database Systems Implementation" by Hector Garcia Molina is a good
start.Building a database system from scratch has one of the most rewarding
exercises.

Also check out this stanford course
<http://infolab.stanford.edu/~widom/cs346/>

------
ams6110
Andrew Tanenbaum's _Operating Systems Design and Implementation_ , in which he
uses MINIX as the teaching OS, is also good.

------
loeg
Server seems severely overloaded -- here's the latest archive.org mirror:
[http://web.archive.org/web/20101017092822/http://www.jamesmo...](http://web.archive.org/web/20101017092822/http://www.jamesmolloy.co.uk/tutorial_html/)

------
wtracy
I'm aware that ARM is not a single, monolithic target like x86. That said, are
there any articles that discuss ARM targeted at newbie OS developers?

------
buster
Wow.. that brings back memories of old days, text mode, directly writing into
the graphic cards memory... :)

------
akg
An interesting take on Operating System design is the Synthesis Kernel that
makes use of techniques like lockless data structures and run-time code
synthesis:

<http://valerieaurora.org/synthesis/SynthesisOS/>

------
a3_nm
Note that this tutorial is intended for the x86 architecture and for older
versions of Bochs. If you're running an amd64 system or using a recent Bochs,
you will need to tweak stuff in the Makefile and in bochsrc.txt.

------
xd
If you go down this path, and I highly recommend every coder gives writing
their own OS a go, be sure to bookmark: <http://nondot.org/sabre/os/articles>

------
chjj
The only working mirror I could find:

[http://web.archive.org/web/20101019051118/http://www.jamesmo...](http://web.archive.org/web/20101019051118/http://www.jamesmolloy.co.uk/tutorial_html/index.html)

