Slashdot Mirror


The Design and Implementation of the FreeBSD OS

n0dez writes "Peter H. Salus has written a review of The Design and Implementation of the FreeBSD Operating System on UnixReview. "If you need to understand just how a kernel works, you need this book. McKusick and Neville-Neil have done the community a favor, and this book deserves to be a best seller." This book is an update to The Design and Implementation of the 4.4BSD Operating System by Marshall Kirk McKusick."

5 of 52 comments (clear)

  1. Re:uhh.. by Money+for+Nothin' · · Score: 5, Informative

    I don't know about this new FreeBSD-specific book, but the previous 4.4BSD book (also by McKusick, etc.) was a combination of code and design explanation. I didn't read the whole thing, but I used much of the book for a term paper about FreeBSD's design a year ago, and probably 80% or so of the book was design info, not code.

    That makes sense too -- after all, the code is bound to be changed sooner or later, making the book out of date, even though the same design principles may be in-use. This was a good move on McKusick's & Co's part, b/c much of the information they published back in 1996 still applies even today to FreeBSD 5.x (that said, 5.x is definitely a major change, particularly w.r.t. the process scheduler).

    Go to a university library if you want to find a copy without buying it. Most normal public libraries won't have a copy (alternatively, you can hang out at Borders or Barnes and Noble and browse through it there).

    Speaking from experience though, if you want a "book that explains the guts" without forcing you to read reams of code (and why would you? The source is available online for free to read instead!), then you want McKusick, etc.'s book (I imagine this new FreeBSD-specific book is similar to the 4.4BSD book).

    I looked hard (as in, for the better part of a semester) -- there simply is not a more-comprehensive BSD OS-design reference anywhere. And yes, I got an 'A' on my paper (updated from the 4.4BSD's era to include FreeBSD-specific info, including through FBSD-5.1, however). :)

  2. Re:Happy Birthday to Me!! by agent+dero · · Score: 4, Funny

    However, my gf *did* get me a mess of other cool stuff- a new GeForce video card, a pile of video games for PC and PS2 (she's always telling me that i need to play more games....), some Lego...

    Something tells me your bluffing, like the "gf" & "play more games" in one sentence ;)

    However, if I had a pretend-girlfriend, i'd want her to buy me the book too.

    --
    Error 407 - No creative sig found
  3. Re:uhh.. by Calvinhood · · Score: 5, Informative

    For the most part the book presents the organization and major algorithms used in FreeBSD, and then presents the theory and rational behind the choice. It also presents some alternative implementations that could have been used and explains why they weren't.

    As far as code, I don't think there's a single line of it in the book.

  4. Not Another Linux Distro by cipher+chort · · Score: 4, Interesting

    "I'm looking at running a modified linux kernel on x86, x86-64, PPC & Itanium"

    Assuming your goal is to create a pretty desktop OS like OS X, why would you run it on Itanium? Itanium is designed specifically as a "RISC killer" for high-end RISC/UNIX shops (and it's failing miserably, I might add). To my understanding, OS X Server isn't even the same code-base as normal OS X. Supposedly it's more NeXTish. The point is that Apple's servers don't really run the same OS that their desktops and laptops do.

    It always strikes me as funny when Linux people whine about the lack of a Linux distribution that works like OS X. Hmmm, maybe that's because Apple pays developers market wage to create their interface, rather than relying on community contributions by random, unaccountable people? Also, it seems that the Enlightenment WM is really supposed to mimmic OS X, so perhaps the lament should be "I wish there was a WM..." rather than "I wish there was a distro...". Besides, if you recognize that OS X is so much better, why don't you just buy a system with OS X? Do you not believe in paying for quality, or should everything just be handed to you on a silver platter?

    Then again, that's the problem with the Linux community. Instead of contributing towards a common project and common goals, everyone goes off and totally duplicates the effort of everyone else. You end up with dozens of WMs, dozens of text editors, dozens of e-mail clients, a dozen web browsers, hundreds of OSs (that's what a distro is, after all) and not ONE of them approaches the quality of a commercial OS.

    If free software is ever going to approach the quality of commercial software, people have to stop this assinine "I'll start my own ___" mentality and learn to work in productive teams. The Apache web server and OpenSSL should be examples of how to do things. There aren't 10 different common SSL implementations in Open Source.

    Getting slightly back on topic, BSD should serve as a good example for how to do OSS right. Have large groups of developers working on an integrated project, i.e. a whole OS. Pick one default for everything, and don't duplicate effort all over the place. There are only really four free BSDs (Dragonfly, Free, Net, Open) and they share code heavily. The default installations have one sane selection for each task, and you can add more from ports if you really, really feel like it. Development is a lot more cohesive and as a result, the BSD releases tend to work a lot more reliably. Imagine that!

    --
    Someone is WRONG on the Internet!
  5. Re:NeXTish by Guy+Harris · · Score: 4, Informative
    I saw it in a "complete family tree of UNIX", which I'm furiously trying to locate.

    This one? If so, note that the OS X Server releases starting with the one labeled "Mac OS X Server 10.0.3" have arrows from the OS X client line. The earlier OS X Server releases didn't have an Aqua GUI - they had a more Mac-like GUI (more Rhapsody-derived).

    I also found http://www.macintouch.com/mxs.html which near the very top is talking about how the interface is heavily NeXT and not like traditional Mac OS, granted it's quite old information

    Exactly. It's talking about one of the old OS X server 1.x releases that came out before the client OS X 10.0.

    but that tends to confirm what I gathered informally from other sources.

    Perhaps those other sources think OS X Server is still more like the older 1.x releases, without all the stuff added on the client side since then, including the Aqua GUI (or are old source from when it was one of the older 1.x releases).

    but it seems (again, from informal observation) that the consumer version is much more FreeBSDish and the server version is much more Machish

    The Mach stuff that's generally visible is mainly the object file format; that stuff is present in both client and server, as is the Mach+BSD kernel (/mach_kernel) and Mach-related user-mode servers such as mach_init. What stuff have you observed that shows the client being "more FreeBSDish" and the server ("server" meaning "server with the same version as the client", e.g. if your client is 10.3[.x], the server should be another 10.3 version, not one of the really old servers) being "more Machish"?