Hacker News new | past | comments | ask | show | jobs | submit login
Roll your own Unix (jamesmolloy.co.uk)
159 points by fogus on Jan 6, 2012 | hide | past | favorite | 17 comments



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


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.


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!


Wow!

I'm currently playing with some plan9front VMs (the plan9 fork from the cat-v.org people) and his intro to plan9 looks fantastic: http://lsub.org/who/nemo/9.intro.pdf

I had trouble finding information on Plan9, thank you so much for this link!


Looks really well written... man I have too much stuff stacked up in my to-read list.


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.


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/


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


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/


Andrew Tanenbaum's Operating Systems Design and Implementation, in which he uses MINIX as the teaching OS, is also good.


Server seems severely overloaded -- here's the latest archive.org mirror: http://web.archive.org/web/20101017092822/http://www.jamesmo...


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?


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


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/


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.


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





Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: