I have a very dog eared copy of the first edition and ordered this one. I also bought a copy of the CS class that Kirk taught at UCB on VHS video tape back when I was at NetApp.
I sort of think of three books as being core of a curriculum understanding operating systems, this book, "The Design of the UNIX Operating System"[1] by Bach, and "Operating System Concepts" by Silbershatz. Owning and understanding those three texts will give you everything you need to know about working in the kernel and designing your own OS code.
Can anyone with an account please check how much shipping to germany costs? I don't want to set up an account with another site just to check shipping costs. I can get the book from Amazon but the Bok + eBook bundle informit offers looks attractive, but it all depends on the shipping costs.
The FreeBSD foundation is one of the charities that smile.amazon.com donates to, so if you're not already using it, consider purchasing the booking through smile.amazon.com so 0.5% of your purchase goes to them.
I audited McKusick's kernel class at Berkeley extension. 8 hour sessions every Saturday for a couple of months. I don't have a formal CS background but at the time had 10-12 years of professional experience. It was the most useful class I have ever taken, removing the magic behind the OS.
As a long-time user of FBSD (since 4.x), the book looks like it's quite comprehensive. Keeping up with all the recent changes is difficult, and this detailed reference covers an impressive range of topics (as far as I can determine from the preview), particularly newer and updated features like the Capsicum framework, security features, ZFS, geom among others.
One disappointment is the book doesn't have much to say about UEFI and Secure Boot, which will be important to easily integrate FBSD with other systems on current PC hardware. Understandable though, as they're still in development and the authors not yet ready to discuss it.
For an 800+ page book the price is rather modest. Looks like one that will have to go on my "must get" list.
If it wasn't ready by print date, it would be a very ugly section. ;) None of the tools people have made to get BIOS 'nixes to install on UEFI worked for me. (Debian still has no install for UEFI.) Maybe this process would work for FreeBSD. Here's what I had to do to get crunchbang going on a 2009 MacBook Pro (which is UEFI):
1. Install Linux Mint via USB thumbdrive (Ubuntu has UEFI support)
Use to format and partition destinination drive appropriately
2. install grml-rescueboot
3. cp crunchbang .iso to /boot/grml-rescueboot
4. In the grub CLI (that 40x80 first stage GRUB prompt), set the $root variable
5. > linux ($root)/install/vmlinux
> initrd ($root)/install/initrd.*
6. Insert Crunchbang install DVD, locate CDROM drive in the GRUB CLI
(enjoy finding things in the 40x80 context)
7. Install, reboot, sudo update-grub, reboot
8. Celebrate, and then weep bitterly because it took ten hours to figure out
Bonus: Apple's bootloader is now gone, speeding things up and removing an extra bootup selection. Straight to GRUB.
Does anyone know if this process might work for 'BSD? Haven't installed one since the mid-2000s.
Yes you're right, except I wasn't able to get a Debian install image to burn to a thumb drive the Mac would recognize. That's why I had to use Mint. Unfortunately, for this particular MBP there are no nvidia drivers that work well or at all in Mint, so I went the masochistic #! install route. I'm glad I did though.
It's about Ubuntu, but using this I was able to create a bootable USB drive with rEFIt, and then booting a FreeBSD live CD image on another stick for installing.
Something got lost in translation- I use Debian exclusively as my Linux distro, and Crunchbang is a thin veneer over it. It was a lot of effort to get it going on that MacBook and worth every hour. The distro has zero responsibility to support Mac hardware, but they were close, and the last mile was my job. That's entirely reasonable.
Do you know how happy I was to figure out how to get the Apple bootloader off of the machine? Joyous! I was proud ;)
I was never into FreeBSD (I hoped to dive into it more in the past, but never done so sadly), but heard that 1st ed was really good, so the revised version quite likely shouldn't be any worse (hopefully even better). I would order it, but there are still many technical books on my shelf waiting for my attention, thus adding another one will not help in that matter.
One thing is sure, even if you're not into FreeBSD, broadening your perspective is never wrong. So I may eventually order it in the future.
FreeBSD combined with this book is great for learning about operating systems in general, regardless of whether you care about FreeBSD specifically. The book goes into a lot of detail about why certain design decisions were made, and how things are implemented in other operating systems.
If you're already studied some other OS in general, you might not need this book, but if you haven't, this is a great place to start.
Thanks! Do you think it's useful to get this one even if you have used Linux almost exclusively? Will it make it easier for one to get into Kernel development?
Sure. But it's worth having a FreeBSD box (or VM) that you can use to tinker with the kernel.
Recompiling FreeBSD kernel source is super easy, by the way. It comes in /usr/src on your machine and all you need to do to reinstall one with your changes is "make buildkernel && make installkernel" . Actually understanding the sometimes decades-old source code, on the other hand, might be a little more difficult...
How'd you compare this with Linux Kernel Development by Robert Love and/or Bovet/Cesati, especially for someone who's a newbie (but curious to learn and work hard)?
I've worked a little on kernel. I think it would surely help to get into kernel development. Codebase is different, but they share similar architecture. If you understand one, it wont be hard to get started with other. From my experience I found BSD codebase easier to approach than Linux.
Yes.
I'd also get 'Modern Operating Systems' by Tannenbaum, which will explain lots of stuff that might be opaque/confusing if you're not already a kernel guy.
The size and heft of the print book is a welcome surprise, it's something that you could toss in a bag and hold to read without support (2.7 lbs, 9.4x6.4x1.4) - relevant for something that will eventually be shelved among stuff like "The Linux Programming Interface" (5 lbs, 9.5x7.2x2.3)
TLPI is my favourite book(technical book I own). Sometimes I look over at it and think "Man, what a great book". I'm very tempted to purchase this as well :)
These books are pretty much a must read for anyone interested in the internals of Unix-type systems. I keep them right next to my TCP/IP Illustrated volumes, I reckon it's always good to have good reference material handy - especially when it is well written and researched.
You sold me. I'm not particularly interested in knowing enough about FreeBSD to diagnose anything non-trivial, but I am interested in learning about design decisions behind operating systems.
This book is great, even if you don't use FreeBSD. I remember that I learnt how a TLB/MMU really works by reading this book, and not on an Operating Systems lecture.
I've read many theory and hands-on OS books and this book (the 1st Ed) is my favorite. But it is a dense book! Quite awesomely dense to be honest. One OS to study will certainly help (it helped me) to fully understand why the theory can be useful. This book especially can help make the connection between theory and practice.
What really sets this book apart, in my opinion, is just how readable it is. I haven't run across anything with quite the same combination of style and depth for Linux.
You could read through something like The Linux Programming Interface [1] or Understanding the Linux Kernel [2] and with effort extract much of the same information, but without the pace/structure/commentary that I think this book does so well.
Thing is, conceptually much of what you'll read in this book will be applicable to Linux just fine and having read it will make it far easier to grok how/where the two differ.
To be comparably authoritative, I guess a book like this for Linux would have to be written by Linus Torvalds or another senior Linux kernel developer.
It seems odd that this book is only about the kernel, given that the BSD camp has always said that an advantage of a BSD over Linux is that a BSD is the whole package, from the GUI and command shell on down, whereas Linux is 'just' the kernel, and relies on distros to be usable.
The userland would be harder to write a long lasting book on. It's prone to change between major version numbers.. for instance clang/c++ RT/etc. It would be cool to see a volume on this stuff, but it would probably need a ton of authors and be more like a series of exposes (thinking a book like Architecture of Open Source Applications)
I sort of think of three books as being core of a curriculum understanding operating systems, this book, "The Design of the UNIX Operating System"[1] by Bach, and "Operating System Concepts" by Silbershatz. Owning and understanding those three texts will give you everything you need to know about working in the kernel and designing your own OS code.
[1] www.amazon.com/Design-UNIX-Operating-System/dp/0132017997/
[2] www.amazon.com/Operating-System-Concepts-Abraham-Silberschatz/dp/1118063333/