Hacker News new | past | comments | ask | show | jobs | submit login
Design and Implementation of the FreeBSD OS: 2nd edition available for preorder (amazon.com)
85 points by adamnemecek on March 30, 2014 | hide | past | favorite | 25 comments



First edition was a great book. For anyone interested in other OS dev books, I highly recommend:

  - Design and Implementation of the UNIX Operating System (Maurice J. Bach)
  - Modern Operating Systems (Andrew S. Tanenbaum)
  - Operating Systems Design and Implementation (Andrew S. Tanenbaum)
  - Linux Core Kernel Commentary (Scott Andrew Maxwell)


Mr. Tanenbaum seems like a nice guy. I gave away a copy of Operating Systems Design and Implementation for my osdev website a couple years ago and asked him if he'd sign a copy if I sent it to him. He apologized for not having spare copies to give away and he paid to ship the book even though I told him I would.


Or if you are a bit less technical "The Elements of Computing Systems". A very good book for the "I taught myself how to program and now I'm curious about OSdev" crowd.

[adding to the off topic rant: I generally agree but off the top of my head "Schrödinger programmiert Java" and the entire Schrödinger... series are decent and hit the typical US-style tone. Not sure if you count a programming book as a technical book though :)]


Moreover there were hardly any tech books besides those 2 by Tanenbaum that I thorougly enjoyed reading as much. Not quite like a novel, but surely not as dry as usual.

Queue mildly relevant rant: I've never seen a German technical author hit the casual tone that American authors are a lot better at. Originally German tech books usually are as fun reading as manuals to a device and not entertaining at all...


The only non-FreeBSD systems I have to deal with by now are my Cellphone (Android) and my TV (funny enough, also Android). Made the switch from YOUR_FAVOURITE_LINUX_FLAVOUR after having to deal with (st)Ubuntu way too much at work.

Nonetheless, as much I prefer running FreeBSD on any kind of server system (as I have been for years), after using it on my (fairly new) laptop for a couple months now, I really wish there was better (new and shiny) hardware support (a commonly acknowledged FreeBSD deficiency, so yeah, I knew what I was getting myself into). Given, I only bought it because my old laptop was stolen at work, it belonging to the Haswell family did not really help (no internal WiFi [Intel IWN 7260], no hardware accelerated graphics [HD4400] and so forth...). But hey, who am I to complain, time to get hacking, which I suppose is more in the spirit of the BSD culture anyway and I'm not going back to NIX.

So yeah, glad this book got updated, most likely picking up this new edition...


I want to start learning internals of nix systems. Is this a good book to start with? Or is there a book on Linux (or any other nix OS) that I should begin with?


If you want to understand how operating systems work, this is a very good book to start with.

If you just want to learn enough to be able to use unix, look for something else. As the title says, this book is about design and implementation, not usage.


I want to understand how Operating Systems work. Thanks.

I did read the theory of OS by Silberschatz, Galvin et. al. I needed something that had more real-world orientation with source code references.


To see another way that operating systems (could) have gone, you could read about Niklaus Wirth's Oberon system that Zurich university still uses and develops on. He & Jurg Gutknecht designed/built the system from processor & peripherals to the language and end user applications. Total stack consistency.

* a better motivation: http://ignorethecode.net/blog/2009/04/22/oberon/ * Project Oberon pdf: http://www.inf.ethz.ch/personal/wirth/ * development branch head: http://bluebottle.ethz.ch/


I recommend the xv6 source and commentary. Here's the link: http://pdos.csail.mit.edu/6.828/2012/xv6.html (has a pdf you can print out along with C code listing, and with nice references). It's very similar in idea to Lyon's commentary but with a more modern C code base.


A little older but "The Magic Garden Explained: The Internals of UNIX System V Release 4, An Open Systems Design" is a really well written book for the core UNIX concepts.


That kind of depends on your background. I think that this book is recommended in some OS college courses as complementary reading since it describes a full blown OS and not some simpler OS that might be better suited for teaching purposes. You might want to find some OS college course that has materials available online, work through that and read this as you go along or when you are done with the course.


dont waste your time on BSD anymore. Linux dominates.


So not true.

FreeBSD is a great server OS. With VM's hardware support gets less important for some use cases. IE LAMP.

The ports selection in FreeBSD is second to none. Linux has nothing close.

JuniperOS is retooled freebsd.

Lots of imbedded projects are based on BSD and always will be. The insanity of GPL licensing.

GPL3 is for activists and manifesto's. LGPL, GPL2 more then covered it for non activists.


> JuniperOS is retooled freebsd.

Same with Orbis OS, the OS powering PS4.


And NetApp's Data ONTAP...


>The ports selection in FreeBSD is second to none. Linux has nothing close.

Well... I don't know about that. The Debian repositories seem quite close to that offering, at least by their breadth. Arch Linux's core repositories offer a high quality up-to-date minimal set, while their community and AUR repos offer a very wide set of 3rd party software, even if the latter is not always reliable.

Even though I like a lot about FreeBSD, I always found the ports the most awkward and error-prone part of it. And it's far too flexible, which for me was not worth the burden.


>With VM's hardware support gets less important for some use cases.

Speaking of, I wish jail-based FreeBSD VPSs were more widely available and cheaper. Where I've seen them the price is such that their use is hard to justify compared to Linux containers on RamNode or Digital Ocean.


> jail-based FreeBSD VPSs

Isn't this called "shared FreeBSD hosting with shell access"? Like http://djangoeurope.com/ used to be, I think (I see they're Debian based now)...


No. FreeBSD jails are different from a chroot jail -- it's much closer than OpenVZ than to something like Xen. You're running the core OS's kernel, but you have your own userland, namespaces, process space, etc.


> The ports selection in FreeBSD is second to none. Linux has nothing close.

[citation needed].

If you mean Linux-just-the-kernel, sure? But that's not really comparable.

Every Linux distro has a collection of 3rd-party packages; neither FreeBSD's 3rd party package integration (ports) nor breadth of software is particularly exceptional in this space.

And FreeBSD doesn't seem to attract as many volunteers to keep its port collection up to date, or at least that has been my experience.

> Lots of imbedded projects are based on BSD and always will be. The insanity of GPL licensing.

Sure. I work on a BSD-derived embedded system at $DAYJOB. But the GPL doesn't prevent Linux use in lots of spaces.


GPL3 certainly does.

Linux itself is fine with the GPL. Thats an OS only.

The problem is usually the Linux dist. Their solution to the packages problem is to include the kitchen sink.

Licensing is along the lines of "what's that". Ergo you use FreeBSD (or one of the others) when you need to have something to satisfy lawyers.

It's all tracked.

Companies can modify some minor bit for their "secret sauce" and bundle it up inside the vacuum cleaner. Not the hacker version.

Since the internet of the future is the "internet of things" that's kinda important.


GPLv3 doesn't see very widespread use.

Fedora tracks licenses on a package by package basis. You can fairly easily determine what the license of a library you use is, and recursively examine dependencies to see if there is something objectionable in there.

FreeBSD ships GPLv3 ports (gcc47, ...). So... it's not just smooth sailing there, either.

No need to hate on either platform.


You don't know what you are talking about.


Oh I'm sorry, we'll all stop using our own favourite toys and start using your favourite toys.

Sorry for the inconvenience.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: