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.
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.
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.
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!
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.
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!
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.
I also find it charming that the book is co-authored by a married couple.