BSD vs. Linux
over-yonder.net
over-yonder.net
Edit: And later on...
The individual releases of a given distribution are much more independent of each other, so it's harder to turn your RedHat 7.3 system into a RedHat 8 system. [...] With a Linux system, however, you tend to find yourself trying to keep a handful of obvious things upgraded, while others get further and further behind, until eventually you just reinstall with the latest version to bring it up to date.
That may be true for RedHat (which I've never used), but Debian has always had good old apt-get update && apt-get dist-upgrade to bring everything up to date.
Edit 2: Whoa, randomly changing site theme.
Also, it's only used for packages distribution and the packages are still build from the ports:
pkgin is aimed at being an apt / yum like tool for managing pkgsrc binary packages.And yes, it's only for distribution. But if it works well, it's the only thing end users should care about. Though I'm not exactly sure the BSDs have basic end users in the way linux does.
Yeah, but the BSDs always had pkg_add and other pkg_* tools, pkgin is just a nice alternative that works on more than one system... I don't believe it provides any crucial feature that was missing in the pkg_tools.
> And yes, it's only for distribution. But if it works well, it's the only thing end users should care about.
From OpenBSD's FAQ:
The ports tree is meant for advanced users.
Everyone is encouraged to use the pre-compiled binary packages.
Basically, if you're running unmodified OS (i.e. official release) and don't enable any options disabled by default in the ports then you're just wasting CPU power rebuilding stuff that you could easily grab from the nearest mirror.From its man page, it seems OpenBSD's pkg_add supports updating (and a lot of other things), so I guess they don't have this problem to start with. That's interesting, I wonder why the feature is lacking on the FreeBSD side.
(And on the Linux side, we have people who apparently believe that the distro you choose determines what desktop environment you have to run. If I hear about one more person dropping Ubuntu because of Unity ... I'll get more confused, I suppose, and wonder why they don't just install Window Maker or Xfce or something else from the package repos and use that, instead.)
It would be more enlightening to pick a specific distro to do your comparing to, as a specific version of a BSD project (OpenBSD, say) is more comparable to a whole Linux distribution than to a specific version of the Linux kernel.
What you want - distro-to-distro comparison - would suck; and age rapidly.
Your comment "The only real difference is the emphasis on source vs binary, which is important but not as fundamental as the article suggests" reminds me of a line from someone about compiling kernels: new users use the default kernel because it just works, power users compile their own kernel and are able to eke out a bit more power, and experienced admins use the default kernel because it just works...
Now the argument that with BSD and ports you have no library problems because you compile everything from source and the ports are all centralized is, well, wrong. Say you install X and Y which depend on libZ; you then upgrade Y, which pulls in a new libZ, which breaks the unchanged X (since it has been built against the earlier libZ). That is, unless you rebuild X to link against the new libZ. Even heard of Gentoo's revdep-rebuild? Hopefully this is mitigated on FreeBSD (and conversely made comparatively worse on Gentoo) because base components do not get bumped like that, so most things link against the seldom moving base and you're done (whereas on Gentoo, you have fun bumping libc or libxml).
On a typical server, with less that 100 external ports installed, FreeBSD will rarely need to rebuild libs, because most of the stuff links to the base.
On a typical desktop, with > 1000 ports installed, things get very messy. And the legacy package management of FreeBSD shows its limits. Things are improving, mainly with a move to improved binary tools, but it's been behind linux for a long time.
It _was_ maybe true, kind of, sometimes: config files were not always marked as config files, for example.
It's definitely no longer true now. On Fedora you run preupgrade. For RHEL point releases, yum. For RHEL major releases, you need to run a kickstart upgrade.
Based on similar reasoning, I've been trying to get into trying BSD lately, as a current and avid user of Linux. I wish that this article would have addressed a bit more about the author's subjective experience of using BSD, as this is currently the sort of thing that would be helpful for me in considering FreeBSD as a desktop OS. The main thing that I have to reconcile currently is the fact that BSD isn't on the bleeding edge like, say, Arch Linux. To give a specific example, until recently, mesa lacked full support for the Sandy Bridge mobile GPUs, and so I couldn't play Minecraft on Linux. Pretty much as soon as a version of mesa with support for Sandy Bridge was released, Arch had it in the repositories where other distros would have lagged weeks behind. Of course, I could alter my lifestyle so that I wasn't always using such new hardware or didn't care so much about being able to play Minecraft without using Windows, but that would require FreeBSD being worth it in some other big way.
I've been a Linux-on-the-desktop user since 1998 or so, and started using it full-time in 2001. Having grown up on closed & proprietary operating systems with "black box" operation, I found it amazing how transparent everything in the UNIX world was, and how much control you had over your machine.
Lately, I've just been happy that my laptop hardware finally works "out of the box" and with minimal tweaking, so I can get on with my life and focus on the things that matter (I'm a software engineer, so get on to coding & designing software).
I fear that simple usability and hardware frustrations caused many people who would have been Linux/BSD users over to Mac OS X -- a proprietary & closed system that at least has BSD roots. Linux may not be the best kernel design ever, but it's a Free operating system with serious UNIX roots and astoundingly good hardware & software support.
In my current work as an engineer of large-scale web applications and distributed services, I find that kernels and base operating system layouts are playing decreasingly important roles. We are automating these details with tools like Puppet and Chef. We are spinning up Linux machines in virtualized providers like Rackspace Cloud and Amazon Web Service. We want to forget about these details and get on with our lives.
We just need something that runs on our physical or virtual hardware and runs our stack of open source databases, programming languages, and services. We need something that just works.
I only came across one place, recently, where operating system choice seemed to matter -- and that was in the deployment of a pair of physical network router boxes in a colocation facility. For that, we chose OpenBSD over Linux due to its out-of-box better support for high-availability networking, packet filtering, load balancing, etc. But I can't think of another time -- desktop or server -- in the last 5 years where it has made sense to choose BSD over Linux.
For me, that's Ubuntu on Lenovo hardware. I'm not trying to push this setup, just respond to the idea that 'just works' means you have to use a Mac.
For those who enjoy the ideas behind Linux, Lenovo is not exactly the greatest manufacturer.
[Edit] And apparently HN does not use Markdown, or I was doing something wrong before.
It's been the same disk image and /home partition this whole time, too -- no full system reinstalls. I just keep upgrading to the oldest supported LTS release, which might have something to do with the fact that everything "just works."
However, I recently bought a few small and tiny VPSs and installed FreeBSD on some and Debian on others. For identical setups in terms of apps and daemons, FreeBSD is using only roughly 2/3rds the memory of Debian.
So there is a cost advantage since the tiny VPS running FreeBSD is cheaper than a small VPS running Debian. But a tiny VPS may not have the reserves to survive a slashdot. Swings and roundabouts.
There just is no one true answer to this debate. Each to his own liking.
It is 2012, it is time to stop comparing BSD with Linux and start comparing FreeBSD with Debian, or OpenBSD with redhat, and so on.
Give me the offer of a full page article please.
Linux distributions eventually caught up and made software easier to install, but I've stuck with the BSDs.
There must be a reason Apple chose it instead of Linux to be the core of OSX.
I mention that not because I want to be pedantic, because there's a huge gap between "OS X is using some BSD components" and "BSD would make a great desktop operating system." The one doesn't imply the other.
That said, there is a fairly nice desktop OS, called PC-BSD, you can take a look at, that is FreeBSD with a KDE-based UI. Not my cup of tea, but you can check it out at http://www.pcbsd.org/
If Linux kernel would have been licensed under LGPL, or CDDL, then it would be possible. But GPL is too viral for such thing to happen. It was specifically designed to crash the barriers of closed source code and expand itself to entire derivative or collective works.
That's not really an accurate statement - you can have very stable Linux distros, and you can have very unstable ones - same goes for installations of the BSDs. (Not to mention that 'stable' is in itself an overloaded term).
One may be better for an individual use case, but I don't think it's possible to say that BSD is more stable than Linux (considering that you're not even comparing like quantities there!)
Even my limited experience with FreeBSD shows this is a falsehood. New major releases should basically be ignored due to all the bugs, especially concerning device drivers.