For this Summer reading season, I went looking for serious professional technical material, the sort that enriches the reader, providing ample opportunity to become significantly smarter about the topic.
My search coincided with the news that, "The Design and Implementation of the FreeBSD Operating System," the long-awaited update to, "The Design and Implementation of the 4.4BSD Operating System," was due in August. My interest piqued, I contacted Eugenia at OSNews immediately with an offer to read and review both texts.
I read, "The Design and Implementation of the 4.4BSD Operating System," first, reasoning the effort essential to properly review the latest edition. After a brief break, I read, "The Design and Implementation of the FreeBSD Operating System," and then wrote this review.
Both books share identical goals, foci, clarity, and organization. Neither are anything like simple, annotated source code listings (despite the inherent value of such material). Rather, both provide a tremendous depth of background. Unlike a great many computer-related titles currently available, these are designed to serve as texts for Computer Science students as well as authoritative reference material for professional consumption.
The authors rigorously achieve the stated goals of both books (to serve as an authoritative study of the inner workings of 4.4BSD and FreeBSD, respectively). These texts were never intended to serve as published man pages or variations of the excellent web page documentation for administrators as well as end users. Rather, the words, C-like pseudocode fragments, and graphical representations contained in each chapter are composed to answer the, "why," and, "how," questions pertaining to the internal structure of the operating system.
The authors never depart from the stated foci ("concepts, data structures and algorithms") either. Although the reader will learn a LOT about kernel organization, process and memory management, devices, filesystems, the terminal interface, how TCP/IP is implemented, and system startup, there is absolutely no treatment of such topics as shell scripting, X11, graphical desktop environments, electronic mail, apache, samba, etc. These topics clearly fall well beyond the scope of the book. No collection of elementary How-To's this.
As to clarity, I have to confess that I was concerned that a book of such an intense technical nature could be--while technically precise--quite the difficult reading experience.
I am happy to report that both texts share a common clarity of written word (lucid, readable prose), pseudocode fragment presentation (concise and to the point), and graphical representation (simple yet descriptive). At no time during my reading was effort wasted on trying to discern how the authors were trying to explain the material.
Finally, the organization of both texts is quite sensible. Both start with a solid preface and progress into a history of UNIX. The new edition adds quite a bit about FreeBSD in particular, as would be expected. I have to admit that I enjoyed the two-page timeline in the earlier edition and think it should be present in the current edition as well, but that is because of my fascination with UNIX history.
Other than the chapters on history and system startup (which can be read separately) the best strategy (at least initially) is reading each chapter within each part in sequence. I have not yet attempted the code review mentioned above. However, one of these days I will, and at that point I imagine that reading chapters out of sequence will prove invaluable.
These texts are not lightweight reading, and, quite frankly, having read both I cannot envision an editing strategy that could significantly cut their length without abandoning the depth necessary to be an authoritative reference and university level text.
- "BSD Book, Page 1/2"
- "BSD Book, Page 2/2"