This series will show you how to get started with a FreeBSD cloud server. The first article will explain some of the differences between Linux and FreeBSD. The tutorials that follow cover the basics of FreeBSD security, maintenance, and software installation. If you are new to FreeBSD, this series will help you get up and running quickly.
I’m sure many die-hard FreeBSD users will find this series of article pointless, but I think it’s an interesting and useful introduction to the platform.
“The FreeBSD team develops the kernel and the base operating system as a cohesive unit, while Linux technically refers to only the kernel, with the other components coming from a variety of sources.”
The open source world would be much better if FreeBSD would have been released earlier than the Linux kernel.
I’m not so sure about that. The Unix wars were largely possible because of the BSD license – without being forced to collaborate, everybody and their aunt wanted a special, incompatible variety of unix with software and hardware that didn’t work with anybody else’s operating system. That allowed x86 and Windows NT to kick everybody’s ass even though it was complete shit technically at the time. If FreeBSD had been released earlier, Linus may not have bothered making Linux, and the Unix wars would not have had a winner – imagine a Microsoft boot stamping on the face of the software world, forever.
What ever happened to the series (forgot who was writing it) here that was going to go over a number of the BSD variants that are available? Seems like there was 1 – and that was it. Kaput!
EDIT: I looked back. It was done by Drumhellar in September 2013.
Edited 2015-01-15 13:54 UTC
I spend a lot of time in various Linux VMs, mostly desktop/workstation but some server, and have thought about exploring the BSD world with some rigor. A series of articles on that sounds like a brilliant idea!
I’ve been working on the NetBSD article on and off, but sadly, I haven’t been able to make it as much of a priority as I’d like, for a variety of reasons.
It is coming, though – I’m trying to make it much different from the FreeBSD article, since NetBSD fits a different niche, but that’s required doing stuff I’ve never attempted, which makes it harder, especially when I’m limited by what hardware I have available.
It’s kinda like Linux, it just sucks less, is far more mature, is better documented and runs Linux software just fine.
What’s not to like?
That depends on your point of view. In terms of just about every major innovation in the cloud platform world, networking world, application world, it’s all happening on Linux.
Virtualization? It’s dominated data centers for the past, oh, say 7 or 8 years, and while it was developed on mainframes in the 1960s, Linux has been at the forefront of the modern iteration. With VMware’s ESXi, KVM, Xen… the BSDs had collectively missed that boat. Even Microsoft has a much better virtualization story there. Mi-Cro-Soft. For that reason alone is why we’ve seen datacenters mostly abandon the BSDs except for the occasional guest VM here and there.
What about Jails? They were of limited use for a couple of reasons, but they did benefit from being more light-weight than VMs. One of the weaknesses of Jails of them was the lack of application portability. That’s being addressed with another major trend, such as Docker and Rocket, which uses Linux Containers and other Linux technologies to containerize applications. There’s a lot of challenges there still, but again the innovation for application workloads are mostly on Linux.
In the networking world, we’re seeing an explosion of innovation in overlay networking and software defined networking in general. The controllers, nodes, and automation tools are almost all Linux-based. Cisco, Arista, VMware, all are Linux-based for their current and next-gen platforms. Juniper used FreeBSD as the basis for their Junos, though newer versions for their new platforms, such as the Contrail SDN controller and some of their new switches, Junos runs on Linux. VXLAN, Geneve, and other overlay technologies are baked into Linux and are generally considered far more stable there. The future if networking, for the time being, is firmly ensconced in Linux.
Cloud providers? OpenStack and VMware’s offerings are almost all Linux based. Just about everything in the self-service, automated, charge-back datacenter is being developed on Linux.
Storage? FreeBSD benefited from the pissing war between Solaris and Linux and got ZFS out of the deal (since Sun made sure the license was incompatible with the GPL), and that was a great storage platform. But ZFS is starting to show its age, and the next generation of storage is fully distributed, hash-not-controller based system called Ceph. Which is currently a Linux-based project (thought being ported). Or object storage, running on Swift. All of this uses commodity hardware instead of expensive controllers and is set to disrupt the enterprise storage world in a few years.
In the past, FreeBSD had a much harder time with the multi-core thing (the threading library sucked for a while, so much so that many people used a Linux threading library rather than FreeBSDs since it performed so much better). That might have contributed to Linux’s eventual dominance. But that was a while ago. Today, the differences between the operating systems is minimal. Mallocs, threading, multi-core… the differences are minimal now. Cisco could convert their entire NXOS operating platform that runs on their Nexus switches (which is based on Linux) to FreeBSD, but why would they? It would run fine, but there’d be zero benefit over what they got now. Just a whole lot of wasted effort for zero gain. The basic duties of operating systems have become commoditized.
The value is the ecosystem around them, and the development that happens on those platforms. And Linux is far, far ahead there (networking, storage, cloud, automation, scalable applications, virtualization).
In the automation realm, products like Chef, Puppet, and others can run on just about any platform, but the primary platforms that they’re built for are Linux.
And FreeBSD runs Linux software just fine? Why on Earth would you want to? Why would you not run something native instead of an emulation layer? Why would you want to introduce another layer of possible problems just so you can run an increasingly obscure operating system? Some of these innovations I’ve mentioned are being ported (in part) to FreeBSD, but what’s the point? It’s extra work for (in the majority of cases) no operational benefit.
And we won’t even talk about mobile platforms. iOS is BSD-based back several generations (NeXT is BSD-based, and it’s what Mac OS X is based on, which a lot was used for iOS), and of course Android is Linux based. Without going back further than 18 years for linage, BSD has nothing going on there.
There are a few small pockets where FreeBSD is doing great. FreeNAS comes to mind as a great FreeBSD-based project. But the overall datacenter picture is decidedly a Linux one.
And it is not hugely innovative: containers are nothing else than jails revamped and copylefted. It is good to have alternatives and the fact that there are people using illumos and FreeBSD to do things differently (DTrace, ZFS) brings important variety to the market.
Furthermore, FreeBSD has been becoming the base to the most interesting commercial products out there: MacOS X, Playstation 4 are too big names to ignore but of course people can always choose to live under the illusion that everything has linux under the hood.
OS X only took a couple of things from FreeBSD’s userland and its old C library, that’s it. OS X also borrowed heavily from GNU, and so did its predecessor NeXTStep.
FreeBSD is a fine OS, unfortunately some of its zealots seem to be as clueless as their Linux/Windows land counterparts, given the idiocy of some of the contents in this thread.
If BSD wants to take down Linux, they could just rally behind a single unified desktop and start to beat down on the Distros. They already have the advantage of having a limited number of distros and tighter focus on kernel/environment integration. If there was more development focus put into a BSD desktop (my preference is for GNUstep, mainly because it can work like OSX and can be made to look/work like Windows/Mac/NextStep, and could be easily made to act like other systems people use.) It’s quite plausible that a unified BSD based desktop could quickly capture market share from the Linux distros, especially with the SystemD fiasco that’s currently unfolding.
What you’re proposing makes little sense; Linux presence on the desktop is minimal, so why would the BSD folk go out of their way to basically reinvent OS X?
Besides you can actually do what you’re proposing; get PureDarwin, put the GNUStep+WindowMaker stack on it, and presto you have a crappy reimplementation of NextStep/OSX. And yet it has not taken the world by storm or chipped away a single iota of the linux desktop. I wonder why.
OS X uses a lot more than just the FreeBSD userland. From the Wikipedia article on XNU:
Yes, the userland part, not kernel, of those subsystems it’s what was ported from FreeBSD. In XNU, the BSD (4.4 I think) emulation subsystem is not in the kernel space. Userland in this context does not imply trivial FWIW. Still, claiming that OS X is based/derived from FreeBSD is a bit of a stretch.
No. Significant parts of the XNU kernel itself are derived from FreeBSD. This includes memory management, as well as the virtual machines that each process operates in.
Apple’s Developer site has a lot more information. Note that this is referring specifically to the kernel, and is about the facilities provided in the XNU kernel. The link is to the BSD specific portion, but on the sidebar there are a few different articles that cover, for example, how the Mach portion and the BSD portion interact within the kernel.
http://bit.ly/1udZm4A
You are lost. Ceph that you say is superior to Zfs, is actually built on top ext4. And everyone knows ext4 is unreliable and susceptible to bit rot. To counter this problem, Ceph can instead use zfs.
And you talk about Linux having better network stack than FreeBSD, well, it is actually the other way around. That is the reason Facebook recently said they want improve Linux network stack to bring it on same level as FreeBSD. Google this. That is why much new network tech is done on FreeBSD, not Linux. Google this too.
And for the rest, you are mostly wrong too, but typing long texts on iPad is a pain, so I won’t answer to that.
Your supporting point is a vague post via Facebook that never followed up with *what* the actual issues were? The sad part about all of this is that FreeBSD supporters have turned into an echo chamber where vague posts like that are taken as fact. (Factesque?) That only further isolates the BSDs by living in denial about its status, rather than facing the realities of lessening relevance.
Meanwhile…
There are so many things that Linux and Linux-based projects/products do that aren’t even possible with a BSD. The BSDs aren’t even a consideration in the companies and projects I talk to, teach to, and work with. The BSDs, sadly, have lost much of their relevance and have near zero relevance in networking and virtualization world (which are becoming intertwined).
Take a look at any data center. Any data center in the world. From huge cloud shops to Enterprises to mom-and-pop collocations. They’re stuffed to the brim with a technology that the BSDs completely and utterly missed the boat on: Virtualization. And it’s mostly a Linux market. Between OpenStack and VMware, Linux utterlydominates. Even Microsoft has more of a showing in that world. FreeBSD doesn’t even have a Type 1 hypervisor (unless you count porting KVM, which.. why would you do that?), and lacks a credible VMM.
In the late 1990s and even early 2000s, FreeBSD had a respectable install base, competitive (at least in the late 1990s) with Linux installs. Today, the BSD installs when compared to various Linux iterations are a rounding error. It doesn’t power any of the major infrastructure services, products, or projects (CloudStack, OpenStack, any of the major cloud providers, VMware) and the BSDs are relegated to the occasional guest VM. Data centers run mostly on Linux and/or Microsoft.
And networking stacks… there is a ton of stuff going on in the virtualization world for networking. Microsegmentation with VXLAN and other overlay technologies. Distributed firewalling. Distributed virtual switches. OpenFlow and OVSDB. Service chaining which directs flows of traffic to pass through required load balancers and firewalls in the physical or virtual world. Development of this is happening in the Linux world. FreeBSD doesn’t even have VXLAN support, let alone support for hardware-offloaded VXLAN in modern NICs.
Or say, VMDQs. These are hardware queues built into the networking cards of most server-grade NICs. They take frames entering a NIC and write them directly to the vNICs of the guest operating system running on the hypervisor, without the host’s CPU having spent a single clock cycle on the task. This isn’t even on the radar of the BSDs, though the BSDs can benefit from the increased scaling of traffic as a guest on a Linux-based hypervisor.
This is changing the landscape of networking. And *all* of this is happening in the Linux world (and to a lesser extent, Microsoft). An odd service here and there gets ported to the BSDs, but again, it’s a rounding error. And a port. The work is almost exclusively done on Linux (or Windows).
If you want to know what’s happening in modern data centers, if you want to take a look at features and projects and new technologies that are shaping the future data center, it’s Linux. So, you really want to talk about which has the better networking, when there’s so much in networking that FreeBSD just can’t/doesn’t do?
Try building a modern data center, running a modern workload without Linux somewhere. It’s tough. It would severely limit your workloads and choice in networking gear. Try building a data center without a BSD. Most are.
Edited 2015-01-19 11:51 UTC