It’s been my impression that the BSD communit{y,ies}, in general, understand Linux far better than the Linux communit{y,ies} understand BSD. I have a few theories on why that is, but that’s not really relevant. I think a lot of Linux people get turned off BSD because they don’t really understand how and why it’s put together. Thus, this rant; as a BSD person, I want to try to explain how BSD works in a way that Linux people can absorb.
While there’s overwhelming similarity between the operating systems in most cases, there are also a lot of differences. As you probe more into the differences, you find that they emerge from deep-seated disagreements. Some are disagreements over development methodology, some over deployment and usage, some about what’s important, some about who’s important, and some about which flavor of ice cream is superior. Just comparing the surface differences doesn’t tell you anything; it’s the deeper differences that both explain and justify why each group does things the way they do.
The article is undated, but I seem to recall it’s actually quite old (2005-ish or so). Still, it’s an interesting read.
The Linux community is much larger than the BSD Community (Especially if you choose to remove OS X from the list)
So for the most part for BSD level support you may wander into the Linux community for support as although different OS’s they also have a lot of similarities. While the Linux community is large enough not to have to cross over to the BSD community.
Back in the mid 1990’s this was far different where Linux users had to cross to BSD communities to seek help with their Linux systems. And Distributions like Slackware and Redhat (pre version 6) were very Unix like. However over time, BSD tried to stay in the server space, while Linux tried to be the everything OS (With different degrees of success) However that allowed it to expand to a wider community.
I was intimately involved in those debates around that time period. I switch back and forth a few times. Ultimately, the speed of development in the chaotic linux world won me over.
I’m the other way: I find the chaotic Linux world to be… well, chaotic. I’m not a rapid change for change’s sake type of person. Maybe I’m just old and crotchity, but I like NetBSD and Slackware (still the most BSD-like of Linuxes) if I need a UNIX-compatible system. They run, they’re stable, and they don’t give me any backtalk. Same for OpenBSD as well, if I’m building a Firewall or Proxy server.
“They run, they’re stable, and they don’t give me any backtalk. ”
All true, but financially I couldn’t justify a solution that would have been 3x as expensive if I had chose FreeBSD over Debian Linux. The performance difference was that great.
Edit: its not a choice now for my use case. The BSD’s have fallen behind in many use cases that they were once preferred in. Some of those chaotic changes were not for no reason. Potentially the only one I would consider would be one of the Open Solaris children. Solaris was/ is an amazing system.
Edited 2016-07-05 14:38 UTC
Which is when I go with Slackware. No backtalk from it. I’ve had consistently bad luck with Debian–it runs really, really well for a while, then dependencies start getting in my way and dpkg/apt like to complain even when I use the force options.
Just out of morbid curiosity:
Does the likes of snappy or flatpack make you as a slackware user cringe or rejoice?
I can kind of see that both ways. I’m personally undecided if its terrible, horrible, kinda okay, or actually good.
Cringe. I see no need for yet another package format.
I up voted both of your posts. I like the BSDs and I often felt it had more emphasis on better engineering. By comparison the feature merging in linux can be a mess, but is good enough and most people don’t care. I’ve specialized in linux almost exclusively because it has a much healthier ecosystem.
The popularity game sucks because it withers away at meritocracy, yet frankly going with the flow usually comes with more opportunities…
I’ve read the article before. IMHO it does come off as a bit biased and I don’t think it’ll win over very many from the linux side.
Edited 2016-07-05 16:42 UTC
Both the BSD and linux have evolved in many ways so the original article just fell short. It is still true that the performance difference between both OSs is minimal, and not always in favor of either of them.
Just curious, what would you potentially consider from Solaris that is not in FreeBSD? FreeBSD has caught up with what Solaris has, perhaps with the notable exception of the commercial Oracledb, and has fine support to what is by far the best filesystem nowadays.
For all the reasons that the article gave for BSD over linux, it applies doubly for Solaris vs BSD.
Centralized development, Solid engineering & qa, no core features are “ported” its just nativity developed
To be honest, I haven’t looked at the open source distros in a while, I would think that would also be true of them, but then again since Solaris went closed source again, maybe things have started to bit rot. I did like them when open solaris was still updated.
I have followed the illumos development, and there is a lot of code going back and forth with the BSDs. The device drivers in particular: Solaris was focused on SPARC64 and severely lacking for X86.
They are clearly avoiding everything GNU in userland as well.
Specifically, with this cost concern it was over ten years ago and solely related to Apache 2 and Mysql 4.1 performance. Things, I’ve heard have improved a great deal since that time I’m pretty sure they’ve since closed the gap considerably
My understanding is that both Apache and nginx started with [Free]BSD as their main platform. MySQL is surely another beast. 10 years ago though, FreeBSD’s SMP support was comparable to OpenBSD’s (not very good).
Things have certainly changed. Groupon moved from Linux to FreeBSD and reported the same performance.
Do you have any insight as to why the performance was so lacking?
OpenBSD has a “big lock” similar to the “GIL” that they have been removing since I started using it which was 3.7. I am not sure if FreeBSD had a similar problem.
OpenBSD performance is brilliant if you are doing something with Ruby or Python which doesn’t really have proper threading.
But honestly I don’t really know enough as this stuff is far lower down the stack than where I normally work.
Edited 2016-07-06 17:57 UTC
The most annoying aspect of the BSDs for me is the lack of the GNU utilities. It seems like every option I find handy is GNU only. It’s the same reason for me that I don’t find OSX a viable replacement like so many in the tech community that abandoned Linux for it. There have been projects that use GNU utilities on BSD but I don’t see the point. Linux has superior hardware support and is the primary target of *nix development now. BSD just doesn’t offer me anything that I care about. YMMV.
I’m not picky about which utilities I run. In some cases I actually prefer the BSD utilities anyway, but I can deal with any of them. Solaris now… well, that was something else.
Yes this +1000. There are those that will argue that the BSD utils are more sensible in their arguments and what not. But that’s really just like arguing for Esperanto over English for a potential speaker to learn. Sure Esperanto is more clear in grammar, vocabulary, and structure, but English as bastardized as it is is more common and works pretty well.
Hmm…your point is akin to arguing that when looking for a romantic partner it is better to eschew the person who is much saner and better suited for you in favor of the one everyone else is sleeping with, venereal diseases notwithstanding.
As a BSD user, I have no problem with Linux in general. The mere fact of its popularity, however, is not enough to blind me to the merits of BSD.
I think you completely missed the point. It isn’t popularity. It’s usefulness.
The post I was replying to compared BSD vs. Linux to Esperanto vs. English, saying that English (by which he means Linux) “is more common [than BSD] and works pretty well”. The operative words here, “more common”, would seem to imply greater popularity, not usefulness, per se. Perhaps your issue was that I wasn’t reading into his post what *you* wanted me to read into it?
Maybe my own take was a little skewed, but I think it’s a stretch to say I “completely” missed the point.
Almost all GNU utilities do exist for BSD. You just add ‘g’ to the name when installing (‘gtar’, ‘gmake’).
It comes from the fact that many of the GNU extensions require a lot of dependency creep. Tar is a good example. Tar should do one thing only: create and manage archives, and only that. It has no knowledge of compression techniques because, although it is true most archives are compressed, it is totally neutral of compression techniques and doesn’t care how you do it.
Tar is a minimalist example, but there are some fairly eggregious ones. Sometimes the installed difference is many times the size of the base utility.
And if that isn’t something you approve of, that’s fine. The GNU tar utility can be installed.
BSD tar supports compression btw.
FreeBSD’s does. OpenBSD’s does not, though.
Sure it does, it recognizes when an archive is compressed, but you need to pass -z or -j to call out to gzip/bzip2 to decompress it.
$ tar xvf backup.tar.gz
tar: input compressed with gzip; use the -z option to decompress it
$ uname -sr
OpenBSD 5.9
Edited 2016-07-05 20:58 UTC
Surely is too complicated to automatically decompress when it already knows how it was compressed :/
The -z switch was a requirement for a very, very long time for GNU tar to deal with compression, but that requirement was dropped about 11 years ago.
“Too complicated”…wow.
That’s all well and good that they are available but they are not default and as I said BSDs offer nothing for me anyway so I see no reason to use a system that has less hardware support, inferior default utilities, and is a second class citizen for most software. That’s just my opinion. I’m sure some people love the simplicity and more clear and concise options, just not me.
I have a foot firmly in both the Linux and BSD communities and it has been my experience that BSDers tend to understand Linux less than Linux users understand BSD. Linux users are often ignorant of BSD (or just don’t think about the BSDs much), while BSD users often have warped and just plain incorrect views on Linux.
I think there is a certain amount of envy at work that distorts things. Linux is the popular kid in the open source world and I think it warps a lot of BSD users’ emotions toward the GNU/Linux OSes. As if they blindly hate Linux because they have to live in its shadow. Some BSD users will get quite angry if you even mention Linux to them.
It’s a question of popularity… Linux is a very popular OS like MacOS or Windows so a lot of non-unix people work with it today.
In the past, when Linux was only used by unix people and Slackware was the most popular distro, everybody knew a little bit of everything… BSD, Solaris, Linux, HP-UX.
Funny, my experience is the opposite.
I would have thought that this bit of (devisive) software would have had a mention before now especially as most Linux distros have adopted it (at least optionally).
I expect that the BSD world will be the last refuge of those who hate it with the sort of venom that comes to the surface whenever it gets mentioned.
As stated, the article is from 2005 or so.
I’m almost positive it’s that old. One, because I recall first reading it around 2006. Two, and probably more accurate, he mentions and links to FreeBSD 5.2-RELEASE, which was in 2004, putting the article in early-mid 2004 at the earliest, though I’m guessing by other clues that it’s 2005.
And purely for fun, archive.org places it at October 2010, but that could have just been the first time archive.org indexed it, or he could have changed hosts at that time. But at least we know for sure it’s that old.
Thom,
I did say ‘in the comments’. As you pointed out, the article is old by strangely relevant.
“want to try to explain how BSD works in a way that Linux people can absorb.”
One could rephrase this any other way but he chose to be confrontational and condescending from the first few sentences.
There you go folks. All you need to know about the BSD community.
Yeah, it also doesn’t explain the important parts. Its all so high level as to be pointless woodsheading. It was kind of terrible before it was outdated
I didn’t take it that way, but more as a “BSD and Linux, for all their similarities, are very different, and this article will attempt to explain the differences for a Linux user who has never used BSD”.
And honestly, that’s exactly what it is. I started my adventures into non-Windows/Mac land back in the late 90s with Linux, and it was years before I tried on BSD. Coming from such a background, I don’t see it as insulting or condescending at all.
Though admittedly, the “BSD way” is more in line with my own thoughts on how operating systems and open source software should work, so maybe my opinion doesn’t mean shit. But then there’s this from the article itself:
In other words, it’s not the divisive, finger-pointing, name calling affair you seem to want it to be.
Elitism? Should fit right in with the Linux crowd then, eh?
Linux has never had any sort of separation between what is the “base system” and what is “addon utilities”. The entire system is “addon utilities”. MySQL is no different from ls from KDE from whois from dc from GnuCash from … Every bit of the system is just one or another add-on package.
—cut—
The kernel by itself is meaningless. The system as a whole is one piece, not a bunch of little pieces.
—cut—
This one is fun. How people try to make the “Unix Philosophy” bend to those who are worthy. When it comes to criticize tools like “iputils” because it “creates routes, adds ip addresses and manages layer2 related stuff” they say that BSD is better because it has netstat, ifconfig, etc. One TOOL to do one thing well, and not one tool that does “all this stuff”.
Now that Linux “is just a kernel”, and by itself is meaningless(course, it “just manages the hardware”), it’s worse than having a “BSD core” that involves the basic programs AND the kernel.
I know it’s the author opinion, but if you want to criticize something and promote other thing, please use better arguments.
One tool to do one thing: operating system (*BSD) is the tool and the purpose is operating the computer.
I don’t see the contradiction between “BSD core” and Unix principle at all.
In fact, “BSD core” contains only the parts needed to operate the computer… it doesn’t have Krita or Audacity, just the tools needed to operate the system.
Regarding Linux’s IPtools… it’s a mess that performs totally unrelated stuff with the only purpose of imitating Cisco/networking gear… not unix at all.
The contradiction here is that One Tool can be a couple of software in one source tree/package or one binary, and One Thing can be “add an ip address” or “manage network connections”. People USE the way they want to make the tool they like most the “Better and more UNIX compliant”. Using this twisted point of view, the author said Linux is “just a kernel”, and BSDs are better because they have binutils/coreutils built-in on the same source tree.
Of course this is not the entire opinion of him, but that is what he meant to say in this part of the article.
About iputils: it’s just a mess if you dont use the LOGIC that involves the command. “ip [layer] [action] [object] -[1]”. You don’t need to be a genious to follow this logic, and it’s way more easy than remind the sintax of multiple commands that involves layer2, routing and addressing. And LOOK, it performs very well the Unix Philosophy with the One Thing that “manages network”.
“It’s a mess” is still an argument with no proof of you free attack to the tool. Not being UNIX is not a problem, since some concepts(like the /usr merge) are still being used today, and people think that this was created to make Unices “more cool”, when the real purpouse was to fix a disk space issue[2]. We have to stop trusting every “Unix Concept” blindly, and stop criticizing command line utils because it “resambles platform X command line utils”.
———-
[1] –
ip link list
ip address list
ip route list
ip route list table link1
ip address add 192.168.3.7/24 dev eth0
ip route add 10.0.0.0 via 172.30.1.1
[2] – http://lists.busybox.net/pipermail/busybox/2010-December/074114.htm…
It’s not an “attack”, it’s my opinion, I prefer standard unix tools because I’m a unix guy. I cannot change that.
I don’t like the way modern Linux distros manage the networking stuff… I prefer the BSD way hands down. And the same happens with a lot of new Linux technologies, like systemd, they are 100% anti-unix, they are an abomination (from a unix-guy POV).
That’s why at lot of unix-people (and old linux users) prefer BSD to Linux. Me included.
Its all about user-friendliness: Just replace Unix with Windows.
… I prefer standard Windows tools because I’m a Windows guy. I cannot change that.
And I respect that. What’s the problem?
Linux started being one thing (a very unix-like OS) and turned into something weird full of anti-unix technologies. I don’t like that way, modern Linux distros are a horrible mess to me.
That’s why I use FreeBSD instead of modern Linux distros. If you prefer Windows or Linux, cool. No problem!
Edited 2016-07-08 07:18 UTC
I’m not a BSD hater, probably been around for much longer than the author. Just found the whole thing sort of funny. Now when can I start writing my defense of Tcl/Tk?
Careful, or you may awaken the wrath of the almighty RMS. I’ve seen the flame war he started over Tcl, it wasn’t pretty.
The author talks about tcpdump 3.7.2, which would put the article no earlier than early 2003. He also mentions gcc 3.2.2, which was also released early 2003. However gcc 3.2.3 was released just two months later, so even though tcpdump 3.8.1 came in late 2003, it is unlikely that any sysadmin worth their salt would leave their system unpatched for that long. As such, I would put the authoring of this article to be early 2003.
As I stated above, he also mentions and links to FreeBSD 5.2-RELEASE, putting it no earlier than early 2004. Though, I suspect it was written in 2005.
In the case of GCC at least, systems tend to not adopt the newest version immediately. Being two years behind the head sounds pretty reasonable.
Additionally, he may have based the article on the version of FreeBSD he was using, which may have not been the newest version.
So the dates for tcpdump and gcc sound congruous with the article being written in 2005 to me.