David Kopec: Last month was the 30th anniversary of one of the most important operating systems that most people have never heard of FreeBSD. In this episode, we're going to explain what FreeBSD is and what it's used for. Welcome to COPEC Explains Software, the podcast where we make computing intelligible.
Rebecca Kopec: What are some basic facts about FreeBSD?
David Kopec: FreeBSD is a Unixlike operating system that can trace its history all the way back to the original Unix. It's a thoroughly modern operating system with every feature you can imagine. It is thought of a lot as a robust secure server operating system, where it's used in many large data centers for some of the largest companies in the world. But it's also found its way into many consumer devices, and you might actually be surprised by some of them. So we're going to talk about that later in the episode. And I also want to mention that since this is an episode about a Unix derived operating system, you should probably know what Unix is before going into it. We did a prior episode on what is Unix? And I'm going to link to that in the show notes.
Rebecca Kopec: What is the origin of FreeBSD?
David Kopec: BSD stands for Berkeley Software Distribution. Unix was licensed by the University of California at Berkeley back in the 1970s, and some of the folks there started adding things to Unix and enhancing it. And that version of Unix that included their additional software and enhancements became known as the Berkeley Software Distribution. One of the leaders of that project was Bill Joy in the late 1970s, and he would actually go on to form Sun Microsystems, a very important company that we've talked about on several prior episodes. BSD kept evolving throughout the 1980s and into the 1990s, and there were some legal concerns because it was getting distributed with an included code from the original version of Unix from at and T, and subsequent versions of Unix from at and T, and that code wasn't necessarily properly licensed. At the same time that there were some legal disputes, folks were working on taking BSD and porting it to the PC because folks in the 90s were like, Unix is a great operating system. We want to have a version of it on our home computers that we can use as a workstation. Of course, that's also where Linux came from, that same kind of ethos and that same idea. Although Linux was an operating system developed completely from scratch, we did Linux on a prior episode called what is Linux? I'll link to in the show notes BSD first came onto the PC as 386 BSD. The 386 refers to the intel 386 8380 line of processors, which were very common in PCs, and of course, processors that came after it were backwards compatible with it from intel. So anything that ran on anything a 386 plus was considered to be a 386 oriented operating system. And so a couple actually who worked together two computer programmers who worked together ported BSD to the IBM PC architecture, the intel 8386. That version of BSD was known as three eight six BSD. But there started to be people that were so excited about this, they wanted to contribute their own patches to three eight six BSD. And the two folks who had developed it, william and Lynn Jolitz, weren't being super receptive to other patches. So other versions of BSD came from forks of this three eight six BSD and one of those forks was FreeBSD. So FreeBSD was started in 1993 as a fork of three eight six BSD. This is just very soon after Linux was actually founded. And it's interesting to think historically what would have happened if FreeBSD had come out just a couple of years earlier. It's possible that we wouldn't have the Linux that we have today and FreeBSD would be in a lot of places that Linux is right now anyway. FreeBSD never had a single very, very large corporation that was really funding most of its development in the early days. It really like Linux was kind of a community process, several people working together. There was a company called Walnut Creek CDROM that was actually selling FreeBSD packaged on CDROMs and they were employing some of the developers of FreeBSD. So it's not like there was no commercial support. There was all the way back to the early days. Over time, more and more large companies started to see the benefit of FreeBSD. And we're going to talk later in the episode about a couple of the largest users of FreeBSD. But FreeBSD always had some corporate support, but it never had just one single company that was some huge company that was completely responsible for most of its development in the same way that, let's say, Android is funded by Google.
Rebecca Kopec: But there are other BSDs that split off from 386 BSD too, right?
David Kopec: Yeah, there are other BSDs as well that came out of 380. The two most notable are NetBSD and OpenBSD. FreeBSD. NetBSD OpenBSD are different projects that have different focuses that all somewhat though work together in some ways. They will use each other's code in places they will adapt code from one project into another. NetBSD's focus has always been about portability. NetBSD developers care about doing things the right way and then making their system as portable as possible to as many platforms as possible. OpenBSD has always had kind of a security focus and OpenBSD develops some very important software that many other operating systems use, like OpenSSH. FreeBSD, out of the three, has always been the most general purpose of the BSDs. And if we had to say it had one focus, it might be on being robust and being high performance. But one interesting thing about all of the BSDs is that they're not Linux, even though they have a lot in common with Linux.
Rebecca Kopec: How is FreeBSD different from Linux?
David Kopec: Well, I think two of the differentiating factors between FreeBSD and Linux would also be true of OpenBSD and NetBSD. And those two big differentiating factors are the following. First, FreeBSD is a complete operating system. Linux at its core is just a kernel. And then there are Linux distributions that bundle that kernel with other software to form a complete operating system. A lot of that software comes from the Ganu project, which is why Richard Stallman and folks from Ganu think that Linux distributions should be called Ganu Linux, because Linux on its own is just the kernel, just the center of the operating system. And you need these other pieces to come together with that kernel to make a whole operating system. The BSDs, on the other hand, have a different philosophy. They ship the whole enchilada together at once. So the same team that's responsible for the kernel is also responsible for the user land software and all the layers of the stack from the user land all the way down to the kernel. So we have a single vision, a single vendor of all of the components in one place. And that's a key philosophical difference between, let's say, FreeBSD and Linux. Another key difference is the licensing. We've talked on our prior episode on what open source software is, which I'm going to link to in the show notes about differences in licenses. And we're going to do actually an episode in the future on different open source licenses. So stay tuned for that. But if you've listened to our earlier episode or you know anything about licensing, there's kind of two big types of open source licenses. There are copy left licenses like the GPL, which say if you use this software and you modify it in some way, or you combine it with your code, then you're going to need to release your code as well. And then there are permissive licenses which basically just say, use this however you want to. And most of them say, give us credit, like write somewhere in the about box or bundled with your software that you use this software as part of yours. So permissive licenses really say you can do basically whatever you want with very few restrictions, just a couple of things you have to do to check off a couple of boxes. Whereas copy left licenses say, well, your software is going to have to be copy left too, if you use this software. Well, you're going to have to make your software under the same license. So they're sometimes called viral licenses because they kind of infect other software that they touch. The Linux kernel is actually released under a viral license. The GPL two FreeBSD NetBSD OpenBSD are all under permissive licenses. There are pros and cons which we'll get more into in that future episode. But one of the key differences, of course, is that some large companies don't want to take some software and then because they're using it, release their own source code. They want to keep their source code to themselves. They want to keep it proprietary, or they just want to release it under their own terms. And so they're going to be more friendly to permissive licensed open source projects. And that's why FreeBSD has been used by some companies that would be afraid of using the Linux kernel. So there's a fundamental philosophical difference in two places between FreeBSD and Linux. One is about shipping the whole operating system together, not just the kernel, and then letting others combine the kernel with other pieces. And the other is about licensing that FreeBSD is permissively licensed, whereas the Linux kernel is licensed under the Gplaviral license.
Rebecca Kopec: What are some of the major companies that run FreeBSD?
David Kopec: Yeah, you might be surprised by some of the very large companies that rely on FreeBSD. Yahoo was famous when it was the largest website in the world in the late 1990s, early OS for using FreeBSD. And to this day, Netflix uses a lot of FreeBSD to power its very, very high traffic servers. WhatsApp also has been built on top of FreeBSD, and of course, we don't know internally if right now these companies are using FreeBSD for everything, or are they using Linux for some things that they used to use FreeBSD for. But those companies are all known large users of FreeBSD.
Rebecca Kopec: What are some important and pervasive uses of FreeBSD that most people may not be familiar with?
David Kopec: Yeah, what you might also be surprised by is that FreeBSD has found its way into many, many consumer devices in the video game world. The PlayStations Three, Four and Five all have operating systems that are at least partially based on FreeBSD. The Nintendo Switch includes FreeBSD components within its operating system. And perhaps most notably, Apple uses large portions of FreeBSD within the Unix layer of its operating systems, which is known as Darwin. So Darwin is not just FreeBSD. It includes components from the mock microkernel. It includes components developed in house at Apple. It includes components from other operating systems and open source projects as well. But FreeBSD is a significant portion of Apple's Darwin layer, and the Darwin layer is in all of Apple's modern operating systems. So iOS, macOS, tvOS watchOS, they all include significant portions of code that originally came from FreeBSD. So FreeBSD is actually, if we think about it that way, an extremely popular operating system. I mean, it's in video game consoles, it's in Macs, and of course, it's on servers at some of the biggest companies in the world.
Rebecca Kopec: Why would someone choose to run FreeBSD today instead of another operating system?
David Kopec: Your average consumer is probably not going to run FreeBSD. There's not a lot of reasons that somebody who's a home user would want to run FreeBSD over, let's say, Linux or macOS or Windows. And if we're just comparing Linux to FreeBSD as a home user, you're going to get better driver support, more up to date codec support by using Linux probably than using FreeBSD. Now that said, FreeBSD has a lot of interesting features that make it appealing to more advanced users, technical users and large companies. One of those is something called Jails which allows you to isolate a process and really protect it from any kind of outside influence. Another is that it has the ZFS file system incorporated within it with strong first party support which is a very advanced file system. Another is that it's known to be lean, easily configurable and highly performant. So those are all great things in an operating system. It also actually has a Linux compatibility layer. So there's a way of running Linux binaries from within FreeBSD and most of the popular software that a developer would use is going to exist up to date on FreeBSD. So if we talk about popular web servers or programming languages they're all going to be there and have great support on FreeBSD. So while it's of course not as popular as Linux, most of what any advanced user or developer would need is there in FreeBSD and it has all of those benefits that we mentioned earlier. And then there are those two big philosophical things that if they align with your company's objectives or your objectives as a developer, which are the permissive licensing and the operating system, having one vision and one vendor, then those are going to be other benefits to you as well as a user of FreeBSD. But yeah, for your average consumer you might not actually be that interested in FreeBSD.
Rebecca Kopec: How is FreeBSD governed?
David Kopec: FreeBSD is governed by the FreeBSD Foundation. The FreeBSD Foundation was one of the first actually foundations set up to govern an open source project and there's not one single benevolent dictator for life. In the same way that Linux has Linus Torvalds, FreeBSD instead has a core team that makes some of the most important decisions and they're actually elected from a set of committers who are people who are able to actually modify the operating system. So FreeBSD is something of a representative democracy that's run by a foundation which is quite a different model than most other operating systems which are either built by a corporation, a private corporation in proprietary fashion or have a benevolent dictator for life like Linux does. So I hope you learned a lot about FreeBSD. It's actually celebrating its 30th anniversary. I'm going to link to the FreeBSD Journal which had an issue for the 30th anniversary that I enjoyed reading some parts of that you might find interesting if you're into computer history and maybe you will consider using FreeBSD on your next project if you're a technical person. Thanks for listening to us this week, Rebecca. How can people get in touch with us on Twitter?
Rebecca Kopec: We're at Copeck explains K-O-P-E-C-E-X-P-L-A-I-N-S. Don't forget.
David Kopec: To leave us a review on your podcast player of choice that always helps more people find out about the podcast. And don't forget to subscribe or hit that follow button whether you're on Apple podcasts or Spotify. Thanks for listening and we'll see you in two weeks. Bye.