Hacker News new | past | comments | ask | show | jobs | submit login
The Design and Implementation of the FreeBSD Operating System, 2nd ed. (amazon.com)
195 points by todd8 on Sept 17, 2014 | hide | past | favorite | 55 comments



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.

[1] www.amazon.com/Design-UNIX-Operating-System/dp/0132017997/

[2] www.amazon.com/Operating-System-Concepts-Abraham-Silberschatz/dp/1118063333/


It looks like the lecture videos are still available, however, they are somewhat expensive.

https://www.mckusick.com/courses/index.html

https://www.mckusick.com/courses/introorderform.html


That's actually quite cheap as training materials go.



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.


I tried with the shipping address to the German Parliment (taken from https://www.bundestag.de/htdocs_e/visits/hinweis)

Platz der Republik 1 Berlin 11011 Germany

International shipping -- $9.00


Thanks.


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.


Was that online?


You can register here: https://www.mckusick.com/courses/introinterestform.html and if you are not in the Bay Area, you could buy the videos.


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.


> Debian still has no install for UEFI.

It works fine for me? What's missing? I installed Debian on a UEFI system with gpt disk sometime around May 2013 and it's been running fine since.

https://www.debian.org/releases/stable/amd64/ch03s06.html.en...


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.

http://www.michaelevans.org/blog/2013/01/15/boot-ubuntu-from...


First this:

> Debian still has no install for UEFI.

Then this:

> I wasn't able to get a Debian install image to burn to a thumb drive the Mac would recognize

Blaming Debian for the locked down nature of Macs and the general shortcomings of Apple-computers for hacking-purposes seems a bit far-fetched.

Get a laptop not made by patent-trolls, and you may expect better Debian-support.


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 don't think he is blaming Debian in any way.


UEFI just went into FreeBSD (it might make 10.1-RELEASE)

In other words: it's too early.


UEFI is in 10.1-BETA1, so I think it's safe to assume that it will be in 10.1-RELEASE. ;-)


The UEFI memstick works for me. But there's no EFI ZFS boot loader, root on ZFS is an open feature still.


But the book claims to "cover all major improvements between Versions 5 and 11". :-)


Feel the Force, Read the Source! :-)


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.


Personally I would say yes, as it shows not all UNIXes are alike.


For those of you who get to use this knowledge in your day to day jobs what kind of things are you working on?


My copy arrived yesterday. A real old-school textbook; reminds me of the days of poring over "Modern Operating Systems" in college!


Mine arrived yesterday.

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.


Would HN-commenters recommend this (based off of experience with either edition) over other OS books for a self-teaching CS Curriculum?

Do you agree that picking one OS to study is the best way to learn about Operating Systems generally?


This should also help you: http://pages.cs.wisc.edu/~remzi/OSTEP/


Wow! Thank you.


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.


I'll check it out, thanks. It might come in handy after I read a couple other books.


Is there a comparable, relatively up-to-date book for Linux?


Not exactly.

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.

1: http://www.amazon.com/dp/1593272200 2: http://www.amazon.com/dp/0596005652


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.


What are the major changes from the 1st edition? I had bought the old one just a few months back...


Has anything important from the first edition been omitted from the second?


The first edition is quite good. I'm sure the 2nd is just as good.


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)



Oh man, now you've triggered my OCD and I feel pedantic.

https://www.freebsdfoundation.org/


What this link has to do with the book?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: