

Linux vs. BSD on EC2 - jrsims

After reading the prior thread about whether or not startups should use EC2 for hosting, I was left wondering what the leanest possible approach would be to hosting an OS image... and do we have a truly optimal image for this purpose yet?<p>From a strictly computational perspective, which OS platform is better suited for this? My guess is that this contest would be between Linux and BSD (Solaris has too fat an ass?). From what I understand, the BSDs are tightly engineered with the goals of performance and efficiency in mind (still has the best networking stack, or so I hear), whereas Linux may tend to be more hackish (I am not an authority here!). However, Linux's advantage could be its modularity, making it easier to shape it to specialized puposes (like cloud computing).<p>I've heard a lot of geeks say that although Linux makes for a better free desktop, a BSD would be their first choice as a server.<p>So, in the cloud computing landscape, who will perform better? A tight BSD image, or a tight Linux image? Which will be more efficient in terms of computational resources used?<p>BONUS QUESTION: Do you think virtualization services like EC2 will drive the creation of new *nix variants that are optimized for max price/performance on cloud services? If you know of any that exist now, please post links!
======
cperciva
FreeBSD doesn't run on EC2 yet. I'm working on it. :-)

Leaving that minor detail aside, I (unsurprisingly) think FreeBSD is much
better than any variety of linux for this purpose. The first rule of running
servers is "apply security patches", while the second rule is "don't break
things" (some people reverse these two...). FreeBSD works with a concept of
"stable branches", and as a general rule, FreeBSD does not break APIs or ABIs
except across major version upgrades. In contrast, security patches to linux
have been known to change kernel/userland interfaces, as well as kernel APIs
-- either of which can result in system administrators needing to run around
fixing things after applying a security update.

This is even more relevant in the context of cloud computing, where the
patching (or not patching) of the operating system is performed by someone
(e.g., Amazon) other than the people actually using the virtual machine
instances. I don't think Amazon has really figured out what to do with linux
here; but for FreeBSD the right answer is simple: Update images as soon as
security updates are released, secure in the knowledge that doing so won't
break anything.

~~~
jrsims
Nice. Do you plan on sharing with the rest of the class? Do you have a site
for this project?

~~~
cperciva
Yes, I will be sharing -- once there's something to share. Before getting to
that point, there's work which needs to be done on Xen, packaging up FreeBSD
in such a way that EC2 can handle it, and getting FreeBSD and EC2 to handle
each other's quirks sanely... so there's nothing to share so far, and no need
for an empty website yet.

------
xirium
FreeBSD would be worthwhile in any virtual environment because it works well
in low memory environments. I've got a FreeBSD server with 64MB of RAM. It has
been running for years. It has been patched but it hasn't required a hardware
upgrade.

------
rincewind
plan 9 from bell labs, maybe <http://plan9.bell-labs.com/sys/doc/9.html>

