Operating Systems Textbook Released In Free, Modifiable Form Posted on August 4th, 2011 by

Five years ago the textbook for my Operating Systems course, Operating Systems and Middleware: Supporting Controlled Interaction was published by Course Technology. It has been used at scattered universities and colleges around the world and even attracted a few fans, but it never caught on enough to be a commercial success. Last fall, Course Technology graciously assigned the copyright back to me so that I could give the text a new life with a revised edition.

In the revised edition, I made various improvements throughout, and also two more substantive changes: a totally replaced section to reflect a complete change in how Linux schedules tasks to run on processor cores, and a brand new section on the topic of nonblocking synchronization, which has become increasingly important. (Throughout the book, I found that updates were likely to reflect topics that already existed five years ago, but had now emerged from being esoteric research to being well-established practice, suitable for inclusion in an undergraduate text. It was less common for me to include something that was genuinely new.)

But the really dramatic change was in how the book is released. Instead of a commercial, hardbound book, it is available on the web under a Creative Commons license that not only permits free use, but also modification. I’m actively encouraging others to contribute to the further development of the text; for that reason, I’ve made modification practical (rather than merely legal) by releasing the source files from which the book is produced. Opening a book for modification rather than merely use is rare, so I’m waiting to see how it will pan out.



  1. Joe Lencioni says:

    I think this is a great idea and I hope it takes off.

    Might you consider setting up a git repository (or something similar) so that those who wish to contribute would have a familiar and relatively easy way to do so? Github would be a great place for something like this and it is free for open source projects.

    Obviously, this would have other benefits such as revision tracking and an issue tracker.

    • Thanks, Joe, for your encouragement and the suggestion. That certainly sounds like a reasonable approach, but before investing the effort into it, I want to wait to see two things. One is whether I get any other contributors — if not, there’s really no point. (I already have my local CVS repository.) The other is whether anyone is sufficiently enthused to take my suggestion of converting the text into a more intrinsically contribution-friendly form, such as a wiki.

  2. David Wolfe says:

    The difference between GIT and CSV is huge. GIT is far better at managing branching and merging, making it easy for another party to maintain a second parallel version of the textbook tailored to a particular need, and to pull in corrections or improvements as they happen with the original textbook.

  3. Thanks, David, for weighing in. I was aware of the difference between git and cvs (though I don’t have your git experience), and perhaps didn’t make my point clear enough. What I meant was that so long as I continued to be the only one working on the text, it wouldn’t make any difference to move to git with its support for forking, because there wouldn’t be anyone forking anyhow. In that case, I might as well save the trouble, and the lack of continuity, and stick with the cvs that the text has been stored in since before git even existed. But I suppose there is some risk I might not know of someone’s desire to fork until after it was too late, and making the move to git isn’t tough, particularly given that I’m willing to just start with the current version, rather than importing all the prior history. So, OK, you’ve persuaded me: I’ve put it on my to-do list for today. It will give me one more way to avoid working on my syllabi for algorithms and graph theory, both of which are more than a little daunting — I’m not used to being so far out of my comfort zone. (I last taught algorithms in 1994 and never taught graph theory.)

    • Milo Martin says:

      Glad to see the book released under the creative commons license. Too bad I don’t teach operating systems.

      Also, I’m pretty sure there is a way to convert to git keeping all the CVS history.

      – Milo

      P.S. Algorithms in 1994? I think I was in that class…

  4. OK, i’ve got the github repository setup now, thanks to the prodding from Joe and David. The main information page for the book remains at Gustavus.

    And Milo, yes, you were in the 1994 class; your presentation was on a convex hull algorithm.

  5. Milo Martin says:

    Yea, I remember giving that convex hull algorithm talk. I also recall thinking that if giving a short presentation/lecture was so much work, I *certainly* didn’t want to do that multiple times every week like professors have to do. 🙂

  6. Joe Lencioni says:

    If any of you are redditors, I posted this to reddit to help spread the word and hopefully drum up interest.

  7. Alex Wauck says:

    Very cool. I’ll have to inform my fellow CS graduates.

    Also, thanks to Joe and David for the prodding. I think having the sources in a git repository on Github will lower the barrier to entry for contribution considerably.

  8. Justin Stevens says:

    Awesome! Now I really don’t have an excuse to put off reading it. I’ll queue it up for right after my C# & ASP.NET crash course.