Linux

10 differences between Linux and BSD

Despite a common tendency to gloss over the differences, Linux and BSD have a number of characteristics that set them apart from one another. Jack Wallen points out several important distinctions.

How often do you hear people lumping together Linux and any of the BSDs? I've done it on occasion, and I hear it all the time. Of course, there are plenty of similarities between Linux and BSD: They are both based on UNIX. For the most part, both systems are developed by noncommercial organizations. And I must say that both the Linux and BSD variants have one common goal -- to create the most useful, reliable operating system available.

Still, there are significant differences as well. And when people overlook them, the whole BSD community shivers with anger. So I thought I would do my best to help my BSD brethren out and explain some of the ways Linux differs from BSD.

Note: This article is also available as a PDF download.

1: Licenses

As we all know, the Linux operating system is licensed under the GPL. This license is used to help prevent the inclusion of closed source software and to ensure the availability of the source code. The GPL attempts to prevent the distribution of binary-only source.

The BSD License is much less restrictive and even allows for the distribution of binary-only source. The core difference, however, can be looked at like this: The GPL gives you the right to use the software any way you want, but you MUST ensure the source code is available to the next person who uses it (or your variation of it). The BSD license does not require that you make sure the next person who uses (or modifies your code) makes that code available.

2: Control

The BSD code is not "controlled" by any one user, which many people see as a big bonus. Whereas the Linux kernel is mostly controlled by Linus Torvalds (the creator of Linux), BSD does not have a single person dictating what can and can't go into the code. Instead, BSD uses a "core team" to manage the project. This core team has more say in the direction of the project than all non-core members of the BSD community.

3: Kernel vs. operating system

The BSD project maintains the entire operating system, whereas the Linux project focuses primarily on the kernel alone. This really isn't quite as encompassing as it seems because many of the applications that are used are used on both operating systems.

4: UNIX-like

There is an old saying about BSD vs. Linux: "BSD is what you get when a bunch of UNIX hackers sit down to try to port a UNIX system to the PC. Linux is what you get when a bunch of PC hackers sit down and try to write a UNIX system for the PC." That expression says a lot. What you will find is that the BSDs are much more similar to UNIX because they are, in fact, direct derivatives of traditional UNIX. Linux, on the other hand, was a newly created OS loosely based on a UNIX derivative (Minix, to be exact).

5: Base systems

This one is crucial to understanding the differences between BSD and Linux. The "base system" for Linux doesn't really exist, as Linux is a conglomeration of smaller systems that come together to make a whole. Many will say that the Linux base system is the kernel. The problem is a kernel is pretty worthless without any usable applications. BSD, on the other hand, has a base system that encompasses numerous tools -- even libc is a part of the base system. Because these pieces are all treated as a base system, they are all developed and packaged together. Many argue that this creates a more cohesive whole.

6: More from source

Because of the way BSD is developed (using the Ports system), more users tend to be installing from source rather than prepackaged binary packages. Is this an advantage or a disadvantage? That depends on the individual. If you're a fan of user-friendly simplicity, you will surely look at this and immediately turn away. This is especially true for new users. Few new users want to have to compile from source. This can make for a cumbersome distribution. But installing from source has its advantages as well (library versioning, building system specific packages, etc.).

7: Upgrades

Because of the way BSD is developed (see item #5), you can upgrade your entire base system to the most recent release by issuing a single command. Or you can download the sources to whatever build you want, unpack them, and build them as you would any application. With Linux, you can also upgrade a system by using the built-in package management system. The former updates only the base system; the latter will upgrade the entire installation. Remember, though, upgrading to the newest base system does not mean that all of your additional packages will be updated. With the Linux upgrade, all your packages will benefit from the upgrade process. Does that mean the Linux process is better? Not necessarily. I have been a first-hand witness to a Linux upgrade that went horribly wrong, requiring the entire system to be reinstalled. This is much less likely to happen with a BSD upgrade.

8: Bleeding edge

It's unlikely that you'll see a BSD running a bleeding edge version of anything. Linux, on the other hand, has plenty of distributions that offer bleeding edge packages. If you're a fan of "If it isn't broken, don't fix it," you will be a big fan of BSD. But if you're of the ilk that requires the most recent of everything, you better migrate over to Linux ASAP or you'll be behind the curve in the time it takes you to reinstall your OS.

9: Hardware support

You will find, in general, that Linux supports hardware much sooner than BSD does. This doesn't mean that BSD doesn't support as much hardware as Linux. It just means that Linux will support it before BSD (in some cases, LONG before BSD). So if you want the latest, greatest graphics, don't even think about BSD. If you're looking at a shiny new laptop with a newer wireless chipset, you might have better luck with Linux.

10: User base

I'm going to go out on a limb here and generalize about computer users. I will preface this by saying there are exceptions to EVERY rule (or generalization, in this case). But I present to you my generalization of the cross-section of user-to-distribution. From the left to the right we go from the least PC-savvy users to the most PC-savvy users. As you can see, Linux falls in the middle, where BSD leans closer to the right. Many will argue this; some will be offended by it. But this is a fairly accurate generalization of which users use which operating systems.

Mac -----> Windows -----> Linux -----> BSD -----> UNIX

Other differences?

This list is not, in any way, meant to suggest that one is better than the other. I have found that BSD and Linux each has its place. What about you? Do you find the differences between Linux and BSD enough to keep you using one over the other? Have you tried both? What makes you use one over the other? Sound off and let your fellow readers know your opinions.


Check out 10 Things... the newsletter

Get the key facts on a wide range of technologies, techniques, strategies, and skills with the help of the concise need-to-know lists featured in TechRepublic's 10 Things newsletter, delivered every Friday. Automatically sign up today.

About

Jack Wallen is an award-winning writer for TechRepublic and Linux.com. He’s an avid promoter of open source and the voice of The Android Expert. For more news about Jack Wallen, visit his website getjackd.net.

54 comments
boxtropica
boxtropica

"Linux, on the other hand, was a newly created OS loosely based on a UNIX derivative (Minix, to be exact)."


You have some good points, but Linux is NOT based on Minix, and Minix is NOT a Unix derivative.


Minix was created for educational purposes from scratch by Andrew Tanenbaum, and Linux was made for usage purposes by our god, Linus Torvalds. Linus took a few pointers from Minix, but Linux has never contained even a line of Minix code, nor Minix any UNIX code- the word "based" implies that Minix code has roamed "loosely" in Linux, which is most certainly not the case. 

trswolf
trswolf

no seriously you got some good points in this post but they're mainly ripped from other sources but you got a lot of crap that really, really make you sound like a total noob. this was a while ago so maybe you're more knowledgeable now. and no im not a GNU/Linux fanboy im an OS X user that does unix development for fun and uses unix tools for fun all the time too. but I love GNU/Linux also, what kills it is the lack of commercial applications but that's mostly because of the ideology of freedom the community oozes since the dawn of those projects. I'm thankful that's changing.

trswolf
trswolf

I didnt read any of this. you lost ALL credibility when I read "both are based on UNIX" yeah because GNU doesnt mean GNU IS NOT UNIX.

abotts
abotts

The MAC is a strange machine. You can be a *NIX geek as I am, or an unsophisticated user, as many I know are. I bought  bought my first Unix capable machine to run ATT's version of PC-Unix, simultask.  On my next two machines, much later, I put Linux on one and 386BSD (now FreeBSD).  I prefer the reliability of BSD, but it is slow to get used to new hardware. ("Where is my wireless?") Although UBUNTU's support for wireless on one of my machines came and went with the updates. The first version worked, but not again until the 4th version. I had a similar problem with the MAC OSX Unix (Darwin-BSD). The first machine I bought, an I-Book, did not do Unix. The ones I have bought since work fine as Aqua and Darwin machines. 



pHerretZ
pHerretZ

...up until a few years ago Macs didn't use BSD, they used a proprietary Apple OS, and Mac fanboys have been around since the beginning of Macs. Thus, ergo and in conclusion, being a Mac user does not make one more tech savvy than a Windows user by default. The majority of users of BOTH OSes are fairly comparable, IMHO. Myself, I am not overly tech savvy, but I do know my way around Windows, and have been experimenting with Linux, so at this point I would like to give a shout out to MY favorite distro: Yo, Mint! Holla!

xaerolimit
xaerolimit

AN excellent read, I like how you kept yourself neutral though the entire article.

Fuzzi99
Fuzzi99

Mac shuld be in around the same place as Linux as it uses the Unix core and gives the user the option to use just X11 and not Aqua

rtrujillo
rtrujillo

My opinion on the user base would be: Windows ---> Mac ??> Linux ??> BSD ??> UNIX I say this because many Linux/BSD users would rather do their work on a Mac and still be able to use the commands that they use on Linux/BSD. -RT

Justin James
Justin James

"If you?re a fan of user-friendly simplicity, you will surely look at this and immediately turn away. This is especially true for new users. Few new users want to have to compile from source. This can make for a cumbersome distribution." Jack has clearly never used BSD enough to have to "compile from source". It isn't like you have to download a bunch of code files, unpack them, compile them by hand and copy them into their destination. No, you simply issue a single command, which is just as easy as doing it in Linux to install something via yum or apt, which then downloads the source, does the compile, copies to the right place, etc. Jack is also clearly uninformed here. While I can't speak for ALL BSDs, FreeBSD (the most popular flavor by far) has a built in binary packaging system and repository. In fact, the ports system (the way you deal with compiling source code most of the time) is actually just a real time binary packaging system... it downloads the code, compiles it, creates a binary package, and then installs it. J.Ja

dwinsemius
dwinsemius

The Mac OSX is BSD Unix and so that closes the circle?

tbmay
tbmay

GNU/Linux is a unix clone. Regarding your discussion on control. The BSD's are generally very well audited. OpenBSD is the epitome of code quality and, at the risk of sounding biased, it really does clobber just about any Linux distro in edge security roles. pf is miles ahead of iptables, and yes I long ago cut my teeth on both. I don't really agree with the "tech savy" analysis but that argument could go to perpetuity.

The 'G-Man.'
The 'G-Man.'

I use windows - so you are saying that a Linux user (in general) is more PC savvy just because the use a different OS? Tell me - Are people better drivers because they build / maintain their own car???? So....this despite my many years in the game, the experience I have building and running networks along with the university qualifications in pure computer science? Get real.

pete_ihelse
pete_ihelse

Nice post, and mostly correct, but there's one point I'd like to make: On OpenBSD at least, it is very rare to have to build a package from source. Your friendly neighborhood mirror will have an installable package for essentially all ports, just set your PGK_PATH environment variable to something sensible and use pkg_add to add binary packages directly from there. The main exception is packages where there is some sort of license restriction that forbids redistribution by the project.

morgancoxuk
morgancoxuk

Your comments about upgrades doesn't mention the fact that there is no single way of doing upgrades in Linux - i.e - apt-get , yum , zypper, emerge, pacman Arch linux/Gentoo operate in sort of a more BSD way when it comes to packages (although they are generally split packages - that often have a meta-package that installs base..)

17barks
17barks

"Linux, on the other hand, was a newly created OS loosely based on a UNIX derivative (Minix, to be exact)" Um, no... In fact, Linus and Andrew Tannenbaum clashed over the design of linux, Tannenbaum remarking he'd flunk Linus for his OS design, because the design of linux was so radically from minix, violating Tannenbaums basic theories. (meanwhile Linux is well established as an enterprise OS, while minix is still... well, a toy OS). The linux kernel was in fact written using the book "The design of the Unix operating system" by Maurice J bach, which describes sort of an SVR3-ish design. The only connection to minix, and it is a very scant one, is that the very first revision of linux made us of the minix file system, to get up and running. The minix fs was soon supplanted by xiafs, extfs, and ext2fs.

Jaqui
Jaqui

the BSDs are Unix systems. Fully and completely passing the Single Unix Specification. GNU/Linux is a Unix-like system. As you noted in your article Linux is a kernel for an os. You boo-booed though in the base system comment about it. the GNU system, [ binutils, gettext, gcc, glibc, make ... ] is the base system REQUIRED by Linux. yes, required, the Linux package was designed to work with the GNU system. I might have gotten a couple of the more technical differences between all 7 of the BSDs and the GNU/Linux system myself. though often, if you use user friendly as a criteria, the BSDs will not measure up well. georgos67's comment about partitioning tools being a perfect example of that common failing in the BSDs. on the other hand, they work, they are stable, and they do have a far better track record for security than even GNU/Linux has. I would hesitate to say that they have the exact same software included over the base system though. most of the BSDs have to modify more than build options in a package to get it to build for reliable use. They tend to have their own version of these apps. [ other than the major projects like xorg, bloated garbage like KDE and GNOME ] The license difference between the BSD licenses and the GNU-GPL makes including GPLed software an issue for them.

giorgos67
giorgos67

At least for a Linux user (I'm using Debian). Everything seems to be different! :-) OK! KDE is the same old good KDE, but everything else differs, beginning from the file system tree. I tried PC-BSD, and indeed is a very good and polished distribution. I'm just too lazy for learning how to handle my OS, from the ground up! :-) The major inconsistency was the struggle with it's filesystem. Since GParted doesn't (and won't) support it, I had to backup-restore and create-delete-resize my partitions from command prompt. (Especially the last one, is extremely dangerous). OK! Just my experience! :-) Otherwise PC-BSD impressed me A LOT!!! ;-)

bobbyroebling
bobbyroebling

I understand you made a disclaimer that there are exceptions to your rule but why would Mac users be less savvy than Windows when Mac has roots in BSD? Until you get to scripting 95% of the commands you will run in the terminal are the exact same as any other *nix based system. Linux I can see, simply because some programs you have to compile. Mac went for simplicity with their OS, but that doesn't mean that the average user would be less than that of a Windows user.

trswolf
trswolf

@abotts  this whole comment, is full of WTF ARE YOU SAYING? I cant even begin to describe how WTF your comment is.

wizard57m-cnet
wizard57m-cnet

I mean, mercy sakes, this darned blog post is over 2 years old, almost have to scrape the mold off of it to read, and the only reason you joined TR was to scold Jack?? By the way, Jack is notorious for throwing blog posts up, some quite controversial, then just stomping the gas pedal never to return and read comments. It is therefore very unlikely that Jack Wallen even knows you posted your comment. I almost flagged it as a "zombie", worthy of deletion...and when comments are deleted, they don't go to the trash can on your Mac...they are gone! Wizard57M TR Moderator

trswolf
trswolf

@pHerretZ  a few years ago? you mean 2001 was a few years ago? (and going back years into development from 1985 as openStep" shut up. and no being a mac user does not make you more tech savy but you have the power of unix at your finger tips and lots of people that ARE tech savy seek OS X for the wealth of commercial applications and Unix development.

outpastpluto
outpastpluto

>I use windows - so you are saying that a > Linux user (in general) is more PC savvy > just because the use a different OS? Yes. Just the mere fact that someone is even aware of what an OS is, indicates a higher degree of tech saavy. Windows is the default option pushed by hardware vendors. It's been pervasive for over 20 years (going back to DOS). Any thing else (even MacOS) indicates some greater awareness and a lesser degree of apathy towards technology. So the generalization is probably true (in general). I would put Windows at the bottom of the scale for user tech saavy because of this. Of course generalizations aren't going to be true in all cases.

CG IT
CG IT

than Windows users or even Mac users. That's how I would define it. Not necessarily "tech" savy rather "programming" savy.

Jaqui
Jaqui

in what way is a TECH a typical user? oh, I know, they take offense at their GRANDMOTHER being called non tech savvy. [ cause your grandmother is a typical user, unless she is a tech ]

Neon Samurai
Neon Samurai

Focusing on "Linux" is like refering to all cars as "engines" where the distribution or car is the product not a part of it. The distribution is the product not the kernel it happens to use. Once you focus on the distirbution level, you can differentiate between companies/organizations and the very different but interoperable products they develop. Red Hat, Debian and Backtrack all happen to use the Linux kernel but they are three very different products in the same way that Prius, Tempo and Jaguars are all very different but interoperable product inspite of all being based on a combustion engine. At the distribution level, each has a primary and standardised method of software management. apt-get (with Aptitude and Synaptic being front ends) is the standard upgrade method for Debian and Debian derived distributions like Ubuntu and Mint. yum (with Yast as a front end?) is the standard upgrade method for Fedora. urpm* (with rpmdrake front end) is the standard upgrade method for Mandriva. "Linux" is a family of different but interoperable software platforms not one single software platform and standard assembly of parts. These days, users don't really have to know that level of detail though as the GUI pointy-clicky software managers generall work the same way and the distribution's repositories provide vetted and easily installed/upgrade/uninstalled software packages.

CFWhitman
CFWhitman

I certainly agree that the BSDs are Unix systems and GNU/Linux is a Unix-like system. However, the GNU system is not technically required to be used as a base system for Linux. We have systems that use Busybox, though you would need more than that to have a build environment. Also, theoretically, you could use the BSD system with a Linux kernel (I'm not sure if anybody has actually done that, but I wouldn't be that surprised). Perhaps, though, you just meant that some kind of a base system is required, and GNU is the one used in pretty much everything referred to as a Linux distribution. Does Android actually use GNU as a base system? I've heard conflicting claims about that.

seanferd
seanferd

Open Solaris. (Which seems to be in a world of hurt, still. Way to go, Oracle.) Yeah, BSD is Unix.

nwallette
nwallette

How about, "Most Accessible Operating Systems to Users of Increasing Skill Level" then? I, as a tech, like having a Linux box for all the cool crap you can do with Linux and its assorted tools. I use a Windows box when I need to get something done, via a platform that is acknowledged and supported by everyone, everywhere. I am trying to switch my creative tools to Mac because frankly, if I could run Waves Multirack "without an OS at all", I would. And the Mac platform is good about getting out of the way. I've never tried BSD. FWIW, I've used Solaris and hate it. There's a point when being rooted in 1970's methodology just makes things cumbersome with no added benefit. I don't think any of the OSes classifies my skill level, but if I knew nothing at all about computers, I'd probably learn according to Jack's chart.

Jaqui
Jaqui

Mac users don't fix problems, they pay Apple's Mac techs to. Mac users [ the majority ] don't script squat, they think they don't have to. Mac users think they have no malware concern. Mac users think Steve Jobs is god. all reasons Mac users are even less tech savvy than windows users. :p

CharlieSpencer
CharlieSpencer

Most USERS don't poke around in any operating system. If Linux users are more tech savvy, it's because the OS forces them to become so. I submit there aren't any 'USERS' running BSD or Unix on a PC, only the technically qualified.

cerewa
cerewa

apparently android does have SOME gnu stuff because gnu.org says it has "very little" of the GNU system.

Neon Samurai
Neon Samurai

I'm not sure about a Linux kernel under a BSD userland but with Debian you can swap Linux out for a BSD kernel (unsure which) or a few other kernels.

crblev
crblev

From what I see, the 'average' (Grandma, the guy in the office cubical) on either Mac or Windows are about the same in terms of skill. They don't live beyond the desktop or documents folder. They don't want/are scared to monkey with the OS other folks fix it) They don't script. The only differences are where either system forces the user to learn something particular in order to make something work (malware, permissions, etc.). And based on the guys talking about converting their grandmothers to Ubuntu, I'd say the same holds true of Linux for the 'average' user.

hayeswp
hayeswp

As a heavy nix user (Unix Systems Engineer) I take advantage of all the nix features on my Mac. * NEVER paid Apple to do anything to my Mac * I Script constantly * Any system on an open wire is susceptible including Macs * Steve is an ass

jpk
jpk

iPhone users != Mac users :p yourself.

The Management consultant
The Management consultant

when it comes to opensolaris and now the sonus project its just different!clearly most people compare useablility of windows against any new OS.But think back at the days you have spent learning to rebuild broken windows software..clearly its where you start..kids love linux/opensource.

NexS
NexS

Are also drivers with that same logic. As are Footballers and China-ware mongers. By no means, does mechanic=better driver than x x being the variable occupation.

Neon Samurai
Neon Samurai

I'm completely aware that your lumping all who use a computer under the "user" category with sub-categories for how or at what skill level they use a computer. I also think your intentionally misunderstanding my use of "user" as a title not a literal translation of "someone who uses a computer" in the same way your intentionally misunderstanding the differentiation between "driver" and "mechanic". Ah well, some others will get it..

The 'G-Man.'
The 'G-Man.'

as many drive. so Mechanic can be a subclass of driver in this instance with the mechanic functions added. Mechanics are also drivers although you would not go this way as there are likely more drivers than mechanics.

NexS
NexS

But it could be said that, "Just because you're a mechanic, it doesn't mean you are a good driver." In the same fashion, A computer hardware manufacturer may not be Software savvy at all.

dawgit
dawgit

So there are drivers, and then there are Drivers :D

Neon Samurai
Neon Samurai

We're using the term "user" meaning a first level computer operator; can turn on computer, knows that clicking the "Email" icon brings up there email. No care for how it works and barely the understanding that it works. For what they do with the machine and given there interests in other areas, they really don't need to understand it to any further depth. This is different from considering anyone who uses a computer a "user" with subsets based on area of interest or skill level. Your not a "user". At minimum, you would be recognized under the "techie" title/skill-level of not an even more elevated title. I also see "professional" as an indication of employment status rather than skill level. One can be highly skilled though they may not be professionally employed in the same way that someone professionally employed could be a complete twit that hids it well (or has interesting photos of the CEO :D ).

CharlieSpencer
CharlieSpencer

If we're going to use the automobile analogy, your bottom tier 'Users' class correspond to .drivers'. The members of TR are closer to mechanics and gearheads. If you don't think those guys don't differentiate between themselves and those of us who just drive cars, spend a couple of hours in a professional garage. Not a 'quick lube' or Wal-mart's tire bay, either; a REAL garage. They'll have stuff to say about 'drivers' that's every bit as derogatory as what IT pros say about 'users'.

outpastpluto
outpastpluto

> Most USERS don't poke around in any > operating system. If Linux users are more > tech savvy, it's because the OS forces them > to become so. Yes... that whole "installing another operating system" thing. It doesn't matter how complicated that is or how complicated it is to run once you've installed it. Just being aware that there's other choices out there and why you might want them is more tech saavy then most Windows users have.

The 'G-Man.'
The 'G-Man.'

Object Orintated style - Class USER at the top with sub classes for Professional and Enthusiast. These other classes just have redefined and additional methods attached to them.

Neon Samurai
Neon Samurai

I think that is the key right there. If you only used Windows in absence "of many" alternatives. This is different for the majority how thing "windows" and "computer" are interchangeable terms and look at you dumbfounded when you suggest that computers can run other operating systems. If you only ever used Windows, your unlikely to be more tech savvy than someone who uses Windows+others; if only due to cross pollination of good habits and introduction to different ways of doing things.

The 'G-Man.'
The 'G-Man.'

one is driving a Grand Prix Car and the other a 1988 Nissan Sunny. So they are just users. You could however class them as: Professional Users Enthusiast Users Users OR say - Object Orintated style - Class USER at the top with sub classes for Professional and Enthusiast. These other classes just have redefined and additional methods attached to them.

CharlieSpencer
CharlieSpencer

What term would you use to describe non-technical people who are interested in computers only as a tool, a means to an end, and not itself as an object of interest? 'Civilians'?

The 'G-Man.'
The 'G-Man.'

A user is a person who uses a computer or Internet service. I submit that just because I use Windows as an OS (well one of many) does not make me any less PC-Savvy.

Jaqui
Jaqui

it took me 3 hours to get the partitions made with openBSD, cause the tools aren't made for the typical end user, nor for the average tech. It's a really, really odd way of working for 90% of the world.

NexS
NexS

Getting so riled up. My grandmother is a typical user. Ha! How did you know?... Stalker. How does this sound(?): Generally speaking, most Mac users think they [insert your comments here]. People who [insert your comments here] are fools for [insert your comment here]. So, by logic, most Mac users are fools. :p Looks like I'm going have a very anti-Apple day today... God - Help me.

Jaqui
Jaqui

I say [b]most[/b] mac users? the vast majority make typical windows users techs by comparison. and in any generalization, there are exceptions to it. I wonder why TECHS think they are TYPICAL users? TECHS are as atypical as it's possible to be. Your grandmother is a typical user. [ unless she is a tech ] :D

Editor's Picks