Linux vs. BSD on EC2

5 points by jrsims ↗ HN
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?

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).

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.

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?

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!

8 comments

[ 3.0 ms ] story [ 36.2 ms ] thread
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.

An obvious solution that comes to mind is to rent virtual hardware and let customers do the patching.
Nice. Do you plan on sharing with the rest of the class? Do you have a site for this project?
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.
Post here when you're done, and here's a little encouragement along the way. I'd love to play around with it.

Anybody else know of any VPS's that offer BSD?

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.