This week I read the 2007 draft of a book by Francisco J Ballesteros, ‘Introduction to Operating System Abstractions Using Plan 9 from Bell Labs’. I suspect a lot of readers will not be familiar with Plan 9. It is the true and rightful successor of Unix. Talented, high-profile programmers at Bell Labs designed and developed Plan 9 as an operating system for research. It contains a number of interesting features and the book discusses those, as will I. Plan 9 truly is a terrific operating system.
But if Plan 9 is so great then why haven’t you heard about it before? Because look at it. That picture is from the year 2006, and the interface still looks like that. I attempt to maintain the attitude of, “Don’t judge a book by its cover.” Let’s be honest though: that user interface is a crime; it makes me yearn for the days of Windows 3.1.
Let’s focus on the book though.
A Complaint About the Preface
I must be honest about something: I find the Plan 9 community to be arrogant more often than not. I do not wish to paint a negative picture about everyone involved with Plan 9, but the vocal minority representing Plan 9 comes across as condescending or just straight-out rude, in my opinion. For example, this is the second paragraph from the preface of the book:
Traditionally, Operating Systems courses used UNIX to do this. However, today there is no such thing as UNIX. Linux is a huge system, full of inconsistencies, with programs that do multiple tasks and do not perform them well. Linux manual pages just cannot be read.
What is the value of such writing? The author does not like the quality of man pages in Linux, and I can understand that opinion; I even agree to some extent. But to take a hostile tone towards another operating system in the second paragraph of the entire book is juvenile at best. That same vocal minority—I hope they are the minority anyways—has a history of vitriol towards software.
I try not to let my negative opinion of the Plan 9 community affect my thoughts on the book, but that is impossible. So I want to admit from the start that my personal criticisms of prominent Plan 9 supports makes me approach the book with some amount of unfavorable bias.
What You Will Learn
The title of the book is slightly misleading. Some readers may interpret it to mean that it teaches operating system concepts using Plan 9 as the example. This is true, but more true than some will expect. The book is more concerned with teaching you how to understand and use Plan 9 specifically than anything common to operating systems in general. I expected to see some comparisons between Plan 9 and other operating systems to give the reader ideas about how other systems may approach certain tasks, but the text focuses exclusively on Plan 9.
If you want to understand how Plan 9 works then I doubt you will find a better book. This so-called ‘Introduction’ is much more than that. In close to four-hundred pages it presents a thorough examination and explanation of Plan 9, from how the kernel behaves at the lowest levels all the way up to the GUI, networking, and system security. When you are finished with the book you’ll know everything important about Plan 9 and how to use the operating system efficiently and effectively.
The preface says that it expects the reader to have some programming experience. The author means experience with the C language. If you are not comfortable with C then it could hinder what you may get out of the book.
Personally I do not see myself ever needing to use Plan 9. That said, I still recommend reading this book, particularly for its information on the file-system protocol and the
/proc file-system. The former is an interesting subject and the most impressive aspect of Plan 9 in my opinion, while the latter has practical uses outside of Plan 9 (e.g. Linux uses
/proc these days).
If there is some reason why you have to use Plan 9 then you will want this book because it will be an invaluable reference. For everyone else it serves as an interesting read about a niche operating system. I do not think a lot of readers will find much practical knowledge within its pages, but the book still provides plenty of intriguing ideas to examine and ponder over.
The book is a poor treatment of operating system abstractions in general, but a terrific study in a specific operating system, and one which will be new to most readers. Its informative exposure of an uncommonly-used operating system makes it a worthwhile read and learning experience.
Next Book of the Week
The next book on my list to read is “Focus On Mod Programming in Quake III Arena” by Shawn Holmes. Honestly I doubt that I will learn anything practical from it. But I love Quake III Arena and so I want to read the book simply for fun. I made a few crappy maps for the game years ago, but never created any mods. I did do a little work on mods for the original Quake, so it will be entertaining to see how different the modding environment is in Quake III Arena.