Hacker News new | past | comments | ask | show | jobs | submit login
Operating Systems: Three Easy Pieces (wisc.edu)
324 points by ingve on Feb 7, 2021 | hide | past | favorite | 28 comments



This book hadn’t been written yet when I was in undergrad. But this year, I found it and worked through it. Even with 20 years writing software professionally under my belt, the ways this book shifted my perceptions on topics I assumed I knew well was surprising!

I also find it charming that the book is co-authored by a married couple.


How do you go through it and how much time did it take?


Personally, I was super interested in reviewing memory virtualization and memory paging.

The bulk of my effort went into a very focused two day push. 200 pages in total: Chapters 1-6, 11-16, 18-24. Postponing all the homework.

I did all this reading on an ipad, highlighting everything in different colors, and adding blank pages every now and then for personal notes.

I then built and booted xv6 under emulation and started hacking. I would then look up areas of interest from my exploration of XV6 in the Linux 1.0 sources (super easy if you use something like [bootlin]) and tried to find the corresponding concepts. Then I slowly stepped forward through the linux releases. 2.4, 2.6, etc. until I had some ideas about how those concepts manifest in the current Linux kernel.

[bootlin]: https://elixir.bootlin.com/linux/1.3.100/source


I really like the idea of following specific subsystems of the Linux kernel forward from 1.0! That's a cool "basics-up" approach.


I had Remzi as a professor. He is one of the best educators I’ve encountered.


Me too. I was in the inaugural OS labs class (CS 537) and it was probably one of the best classes I took at UW. For my final project, I wrote a beep driver.


What a privilege.


I highly recommend this book. The chapters were "bite sized". Compared with the dinosaur book, it was easier to finish one chapter after I started on it. The chapters on concurrency made me cry with "so this is how XXX works" a lot. I also found the references near the end of each chapter were full of gems.

I self-taught CS, so not surprisingly there were lots of "void" and "dots" in my knowledge space. This book connected lots of dots together.


Reading this book right now. Very interesting/entertaining prose and I like how they contextualize things being discussed into the history of computing. It might not be as dense as some other texts, but it's worth the read if you haven't taken an OS course.


There was a long period of time after I “learned to code” where everything still seemed like magic. Working through this book for 10 weeks in my OS course at school was when the magic finally become real and concrete.

Edit: Just noticed my professor for that class contributed some new chapters! Cool!


OSTEP is a great OS book. I wish I had discovered it when I was doing my Cs degree.

I'm planning to follow through it this year to brush up my OS knowledge and will also use 6.828 as a guide for labs and video lectures [1].

[1] https://pdos.csail.mit.edu/6.828/2020/schedule.html


This book is awesome, I highly recommend it. It's one I've meant to go back to, just haven't had the time.


I taught an OS class (for the first time) in my career with this book (I taught many other classes before). It was a breeze, compared to the books used by faculty who taught earlier versions of the class. Students much enjoyed this book as well. The fact that it is freely available was a great plus.


Well, it looks amazing. And that list of non-tech books at the end put a couple new ones into my to-read list.


Totally agree.


I bought the paperback and read it front to back. Probably the most enjoyable technical book I've ever read. Before it, I considered low level systems programming an act of magic reserved for only the elite, but afterwards I felt like even I could do it.


I haven't read this book but I thoroughly recommend all programmers to study operating systems and write your own toy OS. It really gives you a deeper understanding of what it means to program a computer and operating systems require use of all the classical data structures. I like the book Operating System Design: The Xinu Approach because it walks you through the design and implementation of a real operating system that is small enough to understand in its entirety. But whatever path you take, studying operating systems will make you a better programmer and really set you apart from the majority of your peers. Plus it's fun!


I keep it closer to me. one of the most Easy.reads. this is how technical books should be


This is a terrific book, really solid technical content, historical perspective, and entertaining writing.

I feel like it needs a fourth piece, maybe 'distribution', focused on networking.


Heads up to anyone wanting to go through this book and use the code samples: they're all in Python 2.

Don't let it deter you though, it's a fantastic book.


I'm working through this now and have been able to run all the Python code I've come across so far with Python 3. For example https://github.com/remzi-arpacidusseau/ostep-homework/blob/m... is written to run under either 2 or 3.


Hmm, perhaps I somehow ended up with a really old copy of the code. I downloaded a tar.gz or zip file with a bunch of Python 2-only code (it definitely did not run under Python 3, I ran it under `2to3` without issue) directly from the wisc.edu site.


My memory was telling me the examples were all in C, so I went just now and picked a few random chapters, and the examples I saw were in C.


The book has a ton of C code snippets, and some other code examples, but all of the 'homework' problems are in Python.


Is there an ETA on an updated printed version?

I see the changelog has a lot of fixes and improvements for v1.01, but the print version is still being sold for v1.0


We used this in my undergrad OS class. Great book!


I took this course with Prof. Andrea, clearly the best course ever.


I bought this book for self study, but never got around to reading it.




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

Search: