Hacker News new | past | comments | ask | show | jobs | submit login
Think OS: A Brief Introduction to Operating Systems (greenteapress.com)
257 points by edgarvm on Feb 2, 2017 | hide | past | web | favorite | 18 comments

For those looking for a bottom-up approach to learning what OSes do:


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.

My personal recommendation concerning OS development is xv6: 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

Book: 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

(Github Repositories:

> https://github.com/mit-pdos/xv6-public

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

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.

Try this too: 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.

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.

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.

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)

It takes you 6 months to read two books?

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).

> These are not books that you read as leisure

Depends on the person. :-)

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.

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.

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

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

Thanks for posting. Their other books look interesting too.

Little Book of Semaphores is extremely good.

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.


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