
Think OS: A Brief Introduction to Operating Systems - edgarvm
http://greenteapress.com/thinkos/
======
hardwaresofton
For those looking for a bottom-up approach to learning what OSes do:

[https://www.bottomupcs.com/](https://www.bottomupcs.com/)

Pretty great resource, read through it just recently, and while it had some
unfinished sections, it was just what I need to answer definitively a question
like "How do threads work on linux", with excruciating detail.

------
wolfgke
My personal recommendation concerning OS development is xv6:
[https://pdos.csail.mit.edu/6.828/2016/xv6.html](https://pdos.csail.mit.edu/6.828/2016/xv6.html)

Printout of important parts of the source code:
[https://pdos.csail.mit.edu/6.828/2016/xv6/xv6-rev9.pdf](https://pdos.csail.mit.edu/6.828/2016/xv6/xv6-rev9.pdf)

Book: [https://pdos.csail.mit.edu/6.828/2016/xv6/book-
rev9.pdf](https://pdos.csail.mit.edu/6.828/2016/xv6/book-rev9.pdf)

(both are linked in the menu at the top of the page)

Review by John Regehr:
[http://blog.regehr.org/archives/1114](http://blog.regehr.org/archives/1114)

(Github Repositories:

> [https://github.com/mit-pdos/xv6-public](https://github.com/mit-
> pdos/xv6-public)

> [https://github.com/mit-pdos/xv6-book](https://github.com/mit-
> pdos/xv6-book)).

~~~
stevekemp
Thanks for the pointer. I just spent 30 minutes moving the binaries into
`/bin`, in the generated filesystem, then making the shell find them via a
PATH-search.

Made me appreciate some of this stuff all over again.

------
prando
Try this too:
[http://pages.cs.wisc.edu/~remzi/OSTEP/](http://pages.cs.wisc.edu/~remzi/OSTEP/).
OS - Three Easy Pieces. It has the right mix of text and relevant code to
drive down the concepts.

------
athyuttamre
I love Allen Downey's books. His "How to Think Like a Computer Scientist" was
the first CS book I used in high school, and it has given me the strongest
fundamentals I could ever ask for.

I'm a college student now taking OS, so hoping this will be a good complement
to my education.

------
rkrzr
As a comprehensive textbook on operating systems I would recommend reading
"Modern Operating Systems" by Andrew S. Tanenbaum.

Yes, it's almost a 1000 pages, but it's written very accessibly and
understandably.

------
itsmemattchung
How does this book compare with "Operating System Concepts" (aka the dinosaur
book) ? I've read neither, but plan on teaching myself more about OS—after I
complete "Elements of Computing" and "Computer Systems: A programmer's
perspective." (hopefully in the next six months)

~~~
truth_sentinell
It takes you 6 months to read two books?

~~~
brunoluiz
These are not books that you read as leisure, so probably one can't read it
continuously. And I would recommend to have a personal project (or maybe one
borrowed from another person) to test the concepts as you read. As people have
social life and work, this 6 months time span seems acceptable.

About the books: I can't say about these two books because I learned it
through a Brazilian book and I was applying it directly at my job (so I had to
learn it faster).

~~~
truth_sentinell
I understand one has a job and stuff to do, but 6 months is 4320 hours. Let's
say you waste 10 hours a day commuting and in your job, that's 1200 hours in 6
months. You have 3120 hours left to sleep and do whatever you want to do
(obviously you have to factor out bed time), unless you have two jobs or
children to raise, I think that's enough time to read at least six good size
books. I myself am a book junkie, and I always make time everyday to read,
because there are so many things to learn!

Mais assim não da.

~~~
deathgrindfreak
Not all books are created equal. I'm not the fastest reader, but if I can read
a novel in a week or so by just reading 1-2 hours a night. Mathematics texts
on the other hand may require as much as 1-2 hours for 1-2 pages (depending on
how dense it is). CS texts tend to fall somewhere in the middle for me, but
there's a reason that science courses tend to cover half of a book in a
semester.

------
zenlot
My personal favorite still is: Operating Systems Design and Implementation, by
Andrew S Tanenbaum.

------
secfirstmd
Thanks for all these links and tips. Just starting a course on this myself!

------
dragthor
Thanks for posting. Their other books look interesting too.

~~~
timClicks
Little Book of Semaphores is extremely good.

------
Const-me
The very first page says “compiled languages are usually limited to static
types.”

It’s good authors of Objective-C or C# didn’t get the memo.

~~~
digi_owl
"usually"...

