Hacker News new | past | comments | ask | show | jobs | submit login
Operating Systems: Three Easy Pieces (wisc.edu)
334 points by acdanger on Sept 7, 2015 | hide | past | favorite | 35 comments

I had Remzi for two courses at UW, one of them being Operating Systems. He's the best professor I've ever had, and this book is an amazing tool for learning the basics of an Operating System. It's a quick read, and I would recommend it to anyone looking for a free Intro to OS resource.

Same, easily my favorite professor. We were one of the first classes to use the book (he was still writing it), and it's been a godsend. I've nailed every OS-related interview question and use a bunch of the concepts daily.

4 years after I took the course I ran into him at an event at Google, and he remembered me without pause. Really a great guy.

Remzi gets bashful hearing this kind of praise, but I'll pile on. He's had a profound effect on me in the classroom and as a mentor. A lot of you probably use techniques Andrea and Remzi were directly involved in advancing -- MapReduce, in-FS checksumming, etc etc.

This book was already the the core of the intro OS class when I took it several years ago; it's only gotten better and more complete since then.

> I would recommend it to anyone looking for a free Intro to OS resource.

Can you say how it compares to Tanenbaum's 'Modern Operating Systems'?

I haven't read more than a few bits of Tanenbaum's book so I can't give a direct comparison, sorry.

Sadly, I didn't have Remzi at UW although I heard he was a great professor. Our OS class used his book and I'd vouch for it in a heartbeat. Worth a read if you want digestible CS. I remember being most interested in the 'free' part as a broke college kid, but it turned out to be one of my favorite CS books.

I'm in the Operating System class right now for my CS degree and thought I might look into some alternative resources to supplement the class material. This looks super useful, thanks for the recommendation!

I've learned/taught from the "dinosaur book" [1] and for the price tag it's pretty bad. It's a nice overview but it has several problems. First of all the section on CPU scheduling is pretty sparse and confusing. I skimmed through this book and it seems on par. But the one thing this book skips is Rate monotonic and Earliest deadline first - which I found to be rather difficult algorithms. This is because whenever you would research it - I would find other professors using screenshots from the dinosaur book that doesn't help explain it at all. I would be happy to give you my notes on it.

I really wish that was a an open source project that took developers and/or students from start to finish of an operating system. I should preface that and say that it should be easy to understand and use. I know about xv6 and I feel like that's too complex. I've found MikeOS [2] but I will have to study/extract it into pieces.

In any case - I really think this practice should be more widespread. Unfortunately, I've found many people to offer "lazy criticism" they point out something is wrong but don't want to offer any help to make it better. The Rooks Guide to C++ is a perfect example of this - yeah it's not perfect and doesn't contain all C++ knowledge you could ever know about (there have been a lot of negative criticism about the book). But that's not the point - it's designed for people who know nothing about programming to learn about C++ in a 16 week course. It's goal isn't to replace the Stroustrup expert C++ book.

[1] http://www.amazon.com/Operating-System-Concepts-Abraham-Silb...

[2] http://mikeos.sourceforge.net/

Might be good to clarify that the "dinosaur book" is not the same as the Arpaci-Dusseau book linked above.

The Arpaci-Dusseaus are some of my favorite professors at the UW - they're not only first-rate researchers but fantastic teachers.

Remzi in particular has a very dry but hilarious sense of humor. His exams are a hoot (but are also great questions to see if you really know your material)


"virtualization, concurrency, and persistence" I would have said something like memory management, interrupt handlers and system calls.

If anyone is looking for a better OS book, hands down the best one for last 2 decades has been this one by Prof Andy Tanenbaum : https://books.google.com/books?id=9gqnngEACAAJ&dq=modern+ope...

previous discussion from two years ago:


Wow, what a coincidence! I'm just about to start my Operating Systems class. This will come in handy.

Most useful thing I have picked up from this is the notion of interposablity. It captures the basic idea behind both LD_PRELOAD hacks on unix and the way servers can be stacked in Plan 9. Very useful new term.

So, what are the pre-reqs for studying operating systems? I'm guessing C and Architecture? Or would it be better to study architecture after an OS course/book?

After searching online for common paths into studying operating systems I've come to the conclusion that you should be fairly comfortable with C and probably read 'Computer Systems: A Programmer's Perspective' before an OS or Architecture book. ~ At least that's what I am going to do.

CSAPP: http://www.csapp.cs.cmu.edu/

I found the book very accessible because a lot of the concepts are high level abstractions. So I'd say it's worth reading without worrying about prerequisites. Since the PDF is free, it's just a matter of time.

I pretty much learned C in this class. I had written a single, very simple C program in a prereq class (write a C program, then rewrite it in assembly was the gist of the class).

You honestly just need C, although your C doesn't even need to be that strong for this particular book because it's more focused on the theory.

I don't think architecture is necessary to learn first. At least at my school neither were prerequisites for the other.

Don't worry, there is no actual technical thing called architecture, its a management topic.

Yep like I said. Even the wikipedia page has a power point slide on it.

Personally, I enjoyed the "Operating System Design: The Xinu Approach", by Comer:


This looks great. Besides being available for free, how does this book compare to APUE? http://www.apuebook.com

Apples and oranges. APUE is an application development book, i.e. it takes the Operating System calls mostly for granted. Operating Systems books explain how the syscalls and internal services are created/managed and what the trade-offs are.

This was an absolute necessity for my operating systems module in class. Cannot recommend it enough

Just a heads up- I purchased the ebook sometime ago (v0.6.1 I think) and as new versions came out lulu.com declined to offer me the updated versions without making a new purchase.

Maybe the policy has changed- I don't know. Just thought I'd let others know, as I've been spoiled by O'Reilly

Do you know how Andrea and Remzi feel about that? They've generously made the book free overall, so I'd guess (without real evidence) that they'd prefer for people to get version updates if they do choose to purchase this format.

Thanks for the tip; like you, I have come to expect automatic eBook updates now!

> This book is and will always be free in PDF form

> I purchased the ebook

This confuses me.

Look at the website- all the content is there, just in multiple PDF files.

In the spirit of supporting an open textbook effort, I ponied up $10 for the 'combined' PDF that has some other little niceties.

Well, this book certainly looks like it deserves a donation — I just don't like when people use the term "buy" when they offer the same item for free.

but... they did buy it... he got something not being offered for free: the combined ebook, which is in a different file format and contains extra material

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