BSD For Linux Users
noackjr writes "Matt Fuller posted among his rants a great introduction and explanation of BSD For Linux Users: '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.'"
"BSD For Linux Users"
What, was "BSD For Dummies" already taken?
ouch.. my karma is going to burn over that one
Trolling is a art,
BSD is for those that love Unix. Linux is for those that hate Windows.
Do you even lift?
These aren't the 'roids you're looking for.
Apparently, since the article is currently returning a 403 Forbidden, he thinks Linux users can't handle what he has to say.
What is this?
I run FreeBSD on my computers. A lot of my friends run Linux, or at least one of the distributions of it. Naturally, then, we agree that a Unix-style operating system is the right choice, but we disagree on which to use.
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.
What isn't this?
This is not:
* A list of command correspondances; "'netstat -rnfinet' on BSD = 'netstat -rnAinet' on Linux" and such things.
* How to do all the things involved in adminning and running a BSD box.
* Why you should use BSD instead of Linux.
* Why you should use Linux instead of BSD.
* Why you should use this BSD instead of that BSD.
* Why you should use this Linux instead of that Linux.
* Why BSD is Right and Linux is Wrong.
* Why Linux is Right and BSD is Wrong.
* Why I am a god and you should worship me.
I, personally, for me, believe (obviously) that my OS choice is right. That's me. I'm not telling you that you should believe it. Learn the facts, and the origins behind the facts, and make up your own damn mind. That's why you have one.
Some preliminary thoughts
There're a lot of philosophical disparity between the Linux world and the BSD world. And there are a lot of expressions about it out there. One I particularly like goes something like:
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.
Now, I like that quip, not because it's some sort of absolute revealed truth, but because it gives a very good feel for some of the differences. The BSDs, in general, are very much more like traditional Unices than Linux is. A lot of that is because they're direct-line descendants of the BSD from Berkeley, which was a direct-line descendant of the original AT&T Unix. Unix-the-trademark is a trademark of The Open Group, and Unix-the-code is owned by SCO, so one can't actually say that the BSDs are really Unix (that's the sort of statement that triggered the USL/UCB lawsuit extravaganza, in fact). But, in many ways, the BSDs are direct derivatives of traditional Unix.
That shows through in a lot of ways. It shows up in the design of the base system and the packaging of addons. It shows up in the partitioning of the mass storage. It shows up in a lot of details of the commands. And it shows up in the attitudes and reflexes and prejudices of the developers, which are reflected in the code and in the users.
BSD is designed. Linux is grown. Perhaps that's the only succinct way to describe it, and possibly the most correct.
Where to begin?
Must've been running BSD.
;-)
*ducks*
I want to try to explain how BSD works in a way that Linux people can absorb.
Just sprinkle your explanation with random anti-Microsoft rants and talk of your imminent death, and you'll do just fine.
We'll have rabbits and chickens and live off the fat of the LAN.
Appologies to Steinbeck
Don't forget the power of USE flags. One of the things that I love about gentoo more than anything else is the power that USE flags give me. Want a server without any X compiled into the programs you're installing? Set USE="-X". Want to make sure that ssl is enabled everywhere that you have the option? USE="ssl". Want KDE instead of gnome for programs that have multiple GUI interfaces? USE="kde -gnome". Easy and powerful.
Perhaps for the same reasons that the Branch Davidians or the Ralieans knew more about the Cathloics than most Cathloics knew about the Branch Davidians or the Ralieans? Maybe Linux is just a much more widespread cult than BSD.
I'm an American. I love this country and the freedoms that we used to have.
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.
And my impression is that Ogg communit{y, ies}, in general, understand Mp3 far better than Mp3 communit{y,ies} understand Ogg
*ducks*
Free XBox, PS2
Who are the characters?
Meet the players
I'll give here a quick introduction to and discussion of the systems I'll be talking about. Note that the histories presented are not comprehensive or authoritative, and no attempt has been made to make them that way. Deal.
Unix
Unix isn't (precisely) an operating system.
Well, it is, and it isn't.
In specific usage, Unix is an operating system originally developed in the late 60's at Bell Labs by Ken Thompson and Dennis Ritchie. Over the years since then it's been developed and distributed as a commercial operating system, and a research operating system, by Bell Labs and USG and USDL and ATTIS and USL and Novell and SCO and anybody else who could come up with an acronym.
It's probably not too much exaggeration to say that Unix is the single most influential operating system in modern computing. Every general-purpose computing device you'll find, and a lot of specific-purpose computing devices, will be using ideas and concepts and often code from something in the Unix family tree.
When we use the word 'Unix', then, we far more often mean the general form, than the specific OS that carries the name Unix(TM). The general form means "Any operating system which, in design and execution and interface and general taste, is substantially similar to the Unix system." That means all the BSDs, Linuxen, SunOS, Tru64, SCO, Irix, AIX, HP/UX, and a cast of hundreds or thousands of others.
I'm not interested in getting into semantic discussions about how many angels can dance on a head of split hair. Let it suffice that when I use phrases like "Unix systems", I mean exactly what you think of when I use the phrase. Pedantry City is ---> that way.
Linux
Linux also means several things. It's a kernel, originally written by Linus Torvalds when he was a student in Finland. Since then it's been beat up, punched around, tweaked, poked, prodded, manged, digested, spit out, stomped on, chewed up, tossed out, brought in, and otherwise manipulated (not necessarily in that order, of course) by more other people than you could easily count.
Linux is also the term for a family of operating systems. While there are fascinating metaphysical discussions taking place in dozens of places around the world at this very second (I guarantee it) about how "Linux isn't really an operating system, it's just a kernel", or "It should be called 'GNU/Linux'", or similar topics, I'm also going to neatly avoid that semantic cesspool. When I say "Linux", I mean Red Hat. I mean Slackware. I mean Mandrake. I mean Debian. I mean SuSe. I mean Gentoo. I mean every one of the 2 kadzillion distributions out there, based around a Linux kernel with substantially similar userlands, mostly based on GNU tools, that are floating around the ether.
BSD
BSD stands for "Berkeley Software Distribution". Originally, it was a set of patches and extra add-on utilities for the official Bell Unix system that were developed by the CSRG at the University of California, Berkeley. Over time, it evolved to change and/or replace more and more of the system, until at some undefined point it became basically its own OS that merely happened to share chunks of code with Bell's Unix system.
Of course, it still required that you have a Bell license to use the system, since a lot of it was still Bell's code. All of the code written by Berkeley, however, was released under what's come to be known as the BSD license, which basically translates to "Do whatever the hell you want with the code, just give us credit for writing it". And a lot of the BSD code ended up working its way back into the "official" Unix system too, in System III and System V. And, a lot of both strains worked their way into the various commercial forks of Unix.
After the CSRG (mostly) dissolved and stopped developing the BSD system, several groups went off different ways with the code. One of these was the 386BSD project, which took the BSD code and made it run on the Intel i386 platform.
Help Brendan pay off his student loans
BSD is designed. Linux is grown. Perhaps that's the only succinct way to describe it, and possibly the most correct.
/.er who posted the first page, but the author).
He jests (not kind
BSD has grown from each previous BSD and then from each previous UNIX. How he can say this is more "designed" than Linux I'm not sure.
Sam
blog.sam.liddicott.com
The BSDs all keep the system under revision control; all the free BSDs use CVS. Revision control (in extremely brief) is a process by which editing a program means checking out a file or group of files, making the changes, then checking in the new versions, along with a message describing the change. A full history of all changes is kept in the revision control system, so you can view a history of the changes, check out an old version, look at the differences between arbitrary versions, etc.
All the BSDs provide public access to their CVS repositories in one way or another; generally through anonymous CVS, or CVSup checkout or mirroring, or often both. That means that, as a user, you can see exactly what changes happened when, who did them, and why they did them. You can also always get your hands on the latest changes (within a few hours, anyway, depending on mirroring strategies). All of the free BSDs have mailing lists that you can subscribe to and see the changes as they're made. In fact, they all have web frontends as well; you can poke around FreeBSD's entire source tree online at http://cvsweb.freebsd.org/src/, and see all the history of every file.
Linux, historically, hasn't used any version control for the kernel. I don't have exact data at my fingertips here, but I believe it was somewhere in mid-2.4 days that the kernel began being kept in a public BitKeeper repository. Many of the other utilities use revision control, but since they're all developed separately, there isn't any central place you can go to to look through the changes. So it's sometimes hard to get a historic picture of even any one part; to so do for a whole distribution is practically impossible.
This leads to a lot of differences. In a very real sense, BSD systems are constantly developed; I can always update my system to the absolute latest code, irrespective of "releases". In Linux, that doesn't really have as much meaning, because the release process is very different. I think the most appropriate verb for a Linux release is "assembled". A Linux release is assembled from version A.B of this program, plus version C.D of this program, plus version E.F of this program... all together with version X.Y.Z of the Linux kernel. In BSD, however, since the pieces are all developed together, the verb "cut" makes a lot more sense; a release is "cut" at a certain time.
Linux releases kernels in two parallel lines (well, often more than 2, but we're simplifying); a version with an odd minor release number, as a "development" version, and a version with an even minor release number, as a "production" version. The BSDs also have "development" and "production" tracks, but they're handled rather differently.
CVS, like most version control systems, has the concept of "branches". It's easy to understand, but somewhat difficult to explain. Basically, when you "branch" a file or a set of files (or a whole directory tree), you create a new version of the file which exists in parallel with the primary version. When you make changes to the primary version, it doesn't affect the branched version. And you can make changes to the branched version without affecting the primary.
In FreeBSD, there's usually 2 active development lines; one called "-CURRENT", which is the development version, and the other called "-STABLE", which is the production version. Both, of course, are under development, and both have some attempt to be made to keep them usable. -STABLE, as a rule, gets bug and security fixes, but only gets new features and such that are well tested, usually by a stint in -CURRENT first. -CURRENT gets new features, big architectural changes, and all those sorts of new development stuff. It should be noted that the naming of the branches doesn't necessarily mean what it seems to; while -STABLE usually is "stable" as in
Condescending is just the right word for the style of this rant.
My favorite snippet:
and make up your own damn mind. That's why you have one.
Oh! That's what that thing is for! Thanks for letting me know.
It's hard to believe that's how Micronians are made. Why don't we see it right now by having you both kiss one another?
Why do I run BSD?
It Just Works. When I install the system, a set group of pieces are there. Period. When I go through the upgrade process, it works. When I install an addon package, it works.
It supports practically every piece of hardware I've thrown at it in close to a decade of use. And that support Just Works, it doesn't flake out or fail from one version to another.
I can choose whether to stick with tried and tested release versions, to track the -STABLE branch, to track the -CURRENT branch... however close to the edge I want to live. And even the bleedingest edge usually works just fine. I can take a system that hasn't been touched in 3 years, and bring it up to date with minimal pain.
When a problem comes up, whether it's security or stability or performance or even just aesthetics, it gets fixed. And because of the development methodology, I can get those fixes later that same evening. All the time. When a new feature gets added, I can grab it right now, not wait a week or a month or 6 months until the next release. I can see, whizzing by in my email, every change as it's made. Or, when something breaks, I can fix it myself, and be able to send the fix right off to somebody who can get it incorporated into the system right away. I've done it before, I'll do it again, and so have thousands of other people.
It's designed to all fit together. Not just munged after-the-fact to go together OK, but designed from the ground up to be a single coherent system. And when something doesn't fit, it's a bug to be fixed, not just "part of the game".
It's had quirks. It's had vagueries. It's had out-and-out bugs. It's had bizarreness. It's had inexplicable behavior. It's given me misleading error messages. Sometimes, it out-and-out breaks things that worked yesterday. And all those will happen again in the future. But, every time, somebody goes right ahead and notices, and discusses, and fixes it. I read the mailing lists, and I see these things go by. I see the problem brought up, I see the people who know the area discussing it, I see solutions proposed and discarded and tested and agreed upon, and I see them committed into the main repository. And usually by the time I see it happen, I can already get my hands on it.
It's just a level of consistency and transparency and usability lightyears beyond anything else I've seen. Its development path is aimed at technical merit and correct solutions, not just sexy features and workable hacks. And I think that's the only way to be sustainable long-term.
Why should you run BSD?
Well, I don't know. Does what you have now meet your needs? Then you probably don't have an urgent need to change anything.
There're plenty of essays and rants on there about why X works better than Y, for any values of X and Y. I don't want to write another one. If and when you do get time or inclination or resources to try BSD, I want this essay to help you understand why some of those differences are there, and what the result of those differences is.
More info
All the BSD's sites (FreeBSD, NetBSD, and OpenBSD) have extensive documentation available on their systems. Because the base system is integrated, all things dealing with it can be authoritatively documented in a single place. They describe the strengths and weaknesses of the individual systems, how to install them, how to upgrade them, how to admin them... Everything you need.
In the FreeBSD docs in particular, the article on Explaining BSD is similar to this essay, in that it describes BSD and its historical context. There's all kinds of documentation, from introductory documents describing the basics of FreeBSD and Unix-type systems, to detailed descriptions of the inner workings of the kernel, and everything in between. Scroll down the page.
And, of course, the FreeBSD Handbook, and the FreeBSD FAQ are both stuffed with information you never even knew you needed. Don't leave home without it.
The BSD's also all have mailing lists and news
...Linux isn't UNIX. It's an independent project, despite what SCO thinks.
I wonder how funny it would be to tell SCO that BSD is a direct derivative work from AT&T UNIX...
Do not look into laser with remaining eye.
Both communities should remember that development for either tends to benefit both.
A lot of BSD code flows into Linux, and a lot of apps that are made worthwhile (in terms of size of userbase) by Linux are ported to BSD.
Every person using Linux OR BSD is an asset to the free software community, and helping things in the right direction. There is no need to get pissy over small things like licenses or religious wars until only Linux, BSD and other free OSes are left standing and all other non-free systems are long buried.
Beep beep.
BIND and sendmail were originally developed at Berkeley as part of BSD
Aha, so that's where the blame lies! ;)
"BSD is designed. Linux is grown. Perhaps that's the only succinct way to describe it, and possibly the most correct."
I'm wondering what he's smoking. Of course, if he's in Berkeley maybe he's using more LSD than BSD...
If the SCO lawsuit has done anything positive, it has caused a lot of research into the history of UNIX and its derivatives. And based on the continuous ripoffs between Berkeley and AT&T, BSD definitely didn't start out with a plan. Linux hasn't forked into eight or nine individual large projects, and is still spearheaded by its original creator, who ultimately decides what goes where or delegates the decisions. True he takes input from more and more people, and probably has less direct control than he used to, but the core of what is wanted for the next stable series is usually pretty clear once things are played with.
and other than Slackware, all of the distributions seem to be pretty tight too, not just falling completely where things end up.
Do not look into laser with remaining eye.
traceroute www.over-yonder.net
traceroute to www.dyn.over-yonder.net (68.19.137.116): 1-30 hops, 38 byte packets
7 BELLSOUTH-TE.gar1.Level3.net (67.72.8.42) 20.3 ms (ttl=247!) 20.4 ms (ttl=247!) 20.5 ms (ttl=247!)
8 axr01asm-1-0-0.bellsouth.net (65.83.236.7) 20.5 ms (ttl=246!) 20.5 ms (ttl=246!) 20.5 ms (ttl=246!)
9 ixc01jan-5-0-1.bellsouth.net (65.83.237.89) 29.4 ms (ttl=246!) 29.4 ms (ttl=246!) 29.5 ms (ttl=246!)
10 205.152.137.134 (205.152.137.134) 40.9 ms 40.9 ms 41.0 ms
11 adsl-81-101-28.jan.bellsouth.net (65.81.101.28) 41.0 ms (ttl=54!) 45.6 ms (ttl=54!) 41.0 ms (ttl=54!)
12 * * *
13 * * *
14
(interrupt)
ADSL line, meet Slashdot. Slashdot, melt ADSL line.
I'm one of those guys who used a lot of Linux, still like it on the server side and now I use OS X on the desktop side, but at the advice of some of the penetration testers I worked with, I decided to give OpenBSD a shot on my rebuilt home server.
/var/www and none else), but within hours someone posted a polite "Oh, try this".
It's one of those things where for a bit, I was a little confused on how things work. Granted, OpenBSD is not as "user friendly" on the install as, say, Red Hat 9, where you click the pretty buttons and things install. But thanks to a copy of "Absolute OpenBSD", I got it installed.
And I have to admit - for my server love, it's working pretty well. The ports system works like I'd always dreamed RPM's to work - tell it "install", and it gets the source, check it for dependancies, and go on.
The Flavor setting is another one I think I can live with, since you can specify there things like "Plaintext imap" versus default "secure imap" and the like.
And everything is right where I'd expect it. Ports installed files are in local, so now I can remember where everything is at once it's installed.
And it's pretty small - little "crufiness", and the community has been great. Like when I couldn't get Apache, PHP, and MySql to play. Turns out it was a socket issue (Apache on OpenBSD by default only wants to see things in
So far, as a server system, I'm beginning to groove on it. Perhaps if I wanted to run it as a desktop I might or might not have other issues, but since I've got a different OS for my desktop things, I'm pretty pleased with the BSD system.
Next up: learning how to upgrade. Not that I need to yet, but it's that "yet" that I'm anticipating. (Hey, there could always be another ssh exploit - you never know.)
52 Weeks, 52 Religions with John Hummel
The concept of the "base system" is something that, I think, causes the most trouble for people used to the Linux methodology. Which is perfectly understandable, because the whole idea just doesn't even exist in the Linux world.
Linux, from the start, was just a kernel. Without getting into the eternal debate of what an "operating system" precisely consists of, it's easy to state that a kernel by itself isn't very useful. You need all the userland utilities to make it work. Linux has always been a conglomerate; a kernel from here, a ls from there, a ps from this other place, vim, perl, gzip, tar, and a bundle of others.
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.
By contrast, BSD has always had a centralized development model. There's always been an entity that's "in charge" of the system. BSD doesn't use GNU ls or GNU libc, it uses BSD's ls and BSD's libc, which are direct descendents of the ls and libc that where in the CSRG-distributed BSD releases. They've never been developed or packaged independently. You can't go "download BSD libc" somewhere, because in the BSD world, libc by itself is meaningless. ls by itself is meaningless. The kernel by itself is meaningless. The system as a whole is one piece, not a bunch of little pieces.
Now, X isn't a part of the FreeBSD base system. It's an addon package. Since X isn't part of the base system, X apps like xterm and KDE and Gnome and Mozilla and gaim and xmms and such obviously can't be part of the base system either. They're add-on packages, which are treated and thought of differently. The primary difference is where they're developed.
NetBSD and OpenBSD do have an X implementation in the base, because of the way they integrate it with their console driver. They both use heavily modified, very custom versions, so it's not feasible to keep it as a separate package.
The entire base system is developed together. To be sure, there're parts of the base system like sendmail and BIND and tcpdump and ssh and such, which are in fact individual packages which are developed elsewhere. There are even some GNU packages like groff and gcc and gzip and such, which will be immediately recognizable to any Linux user. But these are treated specially, in that versions are imported into the tree, then molded to fit the rest of the system. In fact, many of them used to be BSD-only; BIND and sendmail were originally developed at Berkeley as part of BSD, and only later became available separately. My FreeBSD system claims to be running gcc version 3.2.2 at this moment. Technically, it's not really gcc 3.2.2; it's a FreeBSD compiler based on gcc 3.2.2. The version of tcpdump I've got here isn't technically 3.7.2, it's a FreeBSD tcpdump based on tcpdump 3.7.2.
In most cases, of course, the FreeBSD version is practically indistinguishable from the vendor version. There're usually some changes to the compiling setup (Makefiles and such) to let it build cleanly with the rest of the system, and occasionally some necessary patches to make it compile and run right. Some changes are more extensive, and some are massive. But, they're all maintained together, and forced to play nicely together. There's a basic assurance that the pieces in a BSD base system all fit together, by design.
The primary reason an externally-maintained package becomes imported into and tracked in the base system is that it is, in some way, basic enough to the functioning of the system that it's easiest to have it there by default. FreeBSD currently uses the OpenSSH ssh server and client, which are integrated into the base system because, in this day and age, a secure remot
I was a linux fan from quite a while back and I decided to try FreeBSD to see the differences.
I installed it without much difficulty and poked around. I liked what I saw. I sorta shrugged my shoulders and said "Looks like a Unix system to me" and continued using Linux.
I was using Redhat for the longest time before RHAT forced me into migrating (Mandrake if you must know). I never really saw a reason to switch from this distro to that distro unless the features were significantly different.
I think it's all what you get used to and prefer. I never understood the BSD/Linux platform wars. To me, we're on the same open source team. As long as I can download the code, I don't see a big problem. If SCO got their wish and asked me for 699$, you can bet I'd be hopping straight over to FreeBSD. All the software I need is there anyhow.
After all, LinuxDistros/BSD aren't so different when they share the same features (KDE, openoffice, etc...)
I jumped from RH62 to OpenBSD3.3 some time ago. I have to admit that I've applied a lot fewer patches, security is much better, and the firewall is very powerful. In all, I'm happier.
However, I don't like:
And let's not even get started on Mac OS X.
The Ports System
Then, there's the second category; those programs which are add-on packages. In the BSD world, this is usually called the "ports system". That name is chosen for a specific reason.
Traditionally, when you wanted to run a package on your system, the first thing you had to do was compile it. And often before you could compile it, you'd have to fiddle with it. Your system would require different header files. Sometimes, manifest constants would be different. Sometimes, you'd even need to rewrite parts of it from scratch, because of basic assumption that didn't hold on your system.
Or, in other words, you'd have to "port" it to your OS, and/or to your specific system. The basic intent of the ports system is to do all that "porting" stuff for you. That it also automates building and installing, and provides packaging services (for things like 'uninstall') isn't as well reflected in the name.
But as with many things, it grew past its name into the beast it is today. The current FreeBSD ports collection has close to 10,000 packages in it (this number will, of course, be outdated quickly, but that's the nature of development). The most obvious feature of ports is that it builds things from source all the time, rather than just install pre-build binaries. This, it seems, is another one of those blatant differences that trip people up when trying to look at BSD from a Linux perspective. That it builds from source is just a side effect, it's not the primary purpose or difference. Binary packages are also available; in fact, binary packages are built from the ports tree!
Now, it's true that most Linux users install binary packages, and most BSD users install by building from source. Partly, that's a result of the tools; the ports system is designed around the concept of building from source, with the ability to make and install binary packages being something of an afterthought, while Linux packaging like RPM and dpkg and such are designed around the concept of installing a binary package, with building from source as an afterthought. Some of this is historical; binary packaging historically isn't a predominant theme in Unix systems, as I mentioned earlier. For that matter, packaging itself is a more recent thing. Traditionally, you'd deal with uninstalling and such manually.
Now, there are advantages to pre-compiled binaries; mostly time (as in much less), and usually it'll take a lot less space to install a pre-compiled package, than it would to compile the package. There's also advantages to building from source, like avoiding all sorts of library versioning ugliness (my personal pet peeve with binary packages). You can install binary packages on Linux or BSD; you can build from source on Linux or BSD. But the users seem to be biased differently, because the systems are biased differently, because the users are biased differently... it all dovetails.
I guess what's important here is to realize that the difference between ports and RPM's isn't just that ports compile and RPM's just install. Ports are designed to cover the full range of bits and pieces of installing stuff; encoding and tracking and installing dependancies, packaging, installing and deinstalling, local changes necessary to build on your system, compile-time configuration tweaks... all those things. An RPM is just a binary package. If you want to auto-install dependancies, you have to have a higher-level tool like urpmi or apt-get to do it. And, since it's binary, you have to deal with library versioning conflicts, or missing compile options, or any of the other limitations you incur by not building it on your own system.
And further, ports, like the rest of the BSD systems, are centralized. The "ports tree" is really just a big directory tree with a bunch of categorized directories, each containing a Makefile with some variable definitions, a checksum file, a packing list, and various other possible things. Each of those directories represents a single program, which is described by th
Did you know that "FTW" ("for the win") is a direct translation of "Sieg Heil"?
The first page stated that BSD is for those who like Unix and Linux is for those that hate microsoft, and that last statment is not going to win support for Linux.
Take the Wikipedia asking for donations last week, half the posts here at slashdot were, "Why don't they go salvage a few old PIII 600's and cluster them together. Should only cost about two grand". Hell, an worthwhile opensource project needs some help paying the bills and they get ripped apart here. Sorry geeks, but Econ 101: There is no free lunch. It costs someone something somewhere. (Yes I did donate $25. Not much, but all that I could afford at the moment.)
I do use Linux, but mostly I do use some kind of BSD, whether it be Mac OS X, OpenBSD, or FreeBSD.
I see the people trying to either be funny or karma whoring state: Well if he can show me a freeBSD server that can survive a /.ing...and I have to ask, "How many sites are taken down a week by slashdotting running Linux?" Hell I know our little 2.Ghz Xeon box with 1GB of Ram wouldn't survive no matter what OS we had on there, it is Linux btw.
Bottom line...the negativity needs to go out of OSS. Linux cannot have the banner, "Microsoft Sucks! and use us because...Microsoft Sucks!" and hope to really make it into the desktop arena. OSS and Linux needs a banner of, "Hey our system works, has fewer viruses, easy to use, and it will do any thing Windows will do, except play games."
And to the "any thing you can do, I can do for free" dot communist crowd: In order to make Linux viable, its going to need programs written for it like games, quickbooks, quicken, adobe products, that people are willing to spend money on and need before it will truely be accepted main stream.
"The problem with socialism is eventually you run out of other people's money" - Thatcher.
just get along?
I tried FreeBSD once, it seemed okay. I agree that the BSDs are probably a better, more reliable operating system than Linux. However, Linux was SO much better than Windows, that any improvements BSD could make seem minimal at best, especially since most of the server and end-user software is identical.
For example, someone once told me that BSD is much more stable than Linux. Assume that's true for a minute: I've NEVER had a Linux system crash, except for hardware failures, and I've been using Linux since 1998 or so. Okay, so maybe BSD is more stable than Linux, but the time spent learning BSD isn't worth the "extra" uptime I'd have, since the extra uptime is approximately zero.
As I mentioned, the end-user software is mostly the same, but I've heard Linux has more variety and more hardware support. My printer is supported under Linux (it's an HP USB printer), but I don't know whether HP is putting resources into BSD support. Same goes for my Palm Pilot. Since everything is working now, and I'm happy with how well everything works, why should I want to switch to BSD?
And why can't we have our own preferences anyway? Why do BSD users have to bash Linux and vice versa? The two are a lot more alike than different, at least compared to Linux vs Windows or BSD vs Windows. (It's almost like brothers fighting...)
--RJ "Firmly sitting on the fence"
I see a lot of folks in both camps that use both, because both have their strengths and weaknesses.
The folks that will choose one or the other and be biased about it are either:
1) BSD folks that tried out linux in 1994, and still have the impression stuck in their mind. They seem to think that linux hasn't changed at all since then.
2) Linux folks that at some point of their complete n00bness went into a BSD channel in efnet and asked some lame question like "since linux is unix, where can i get the FreeBSD RPMS?" and got flamed so hard that they had to crawl out of a hole in the ground. Therefore, they think that BSD users are all crusty assholes that cling to a "little used" OS that is fading into obscurity like people that try to ride out hurricanes. Hence all the "BSD is dying" bullshit.
And it's really sad. Both have their merits. Both share many of the same goals. I wish they could get along and do great things together.
My $0.02USD + tax.
do() || do_not();
5 And finally, the GPL would be democracy. Democracies are hardly ideal, they are slow, they waste a lot of energy, they infight a lot, but in the end there is NOTHING better.
Refresh my memory, how is the GPL not a "shared source" license again? How can I create a derivative work of GPLed code without sharing my code?
Oh, and you are mixing your metaphors. Anarchy, fascism and democracy are systems of government. Communism is a system of economics.
Serve Gonk.
On the "advise" (really more like repeated nagging, which seems to be fairly common from BSD enthusiasts) of a friend, I went with OpenBSD when setting up a server a year or two ago. Even after getting over the culture-shock, I ended up not liking it very much. I've gone back to debian, which I'm confident is every bit as secure, and is easier to admin.
/etc. Having to go searching for httpd.conf in /usr/local/etc or maybe /var/www/conf *really* bugs me.
I found the installer to be utterly cryptic, filled with unexplained single letter commands. I should not need a $40 reference book to install the freaking OS. Once it was up and running I was fairly comfortable, except for the propensity to scatter config files/etc around the filesystem. Maybe debian has spoiled me, but I expect to find *all* config files under
Then of course there is their reputation for security. They would have people believe that there has never been a root exploit; in reality, that only actually applies to the "base" system. I do like that the secure by default thing; having to specifically enable services is a good idea(getting the choice while installing is better though).
I hereby propose an addition to the HTTP status codes for the 418 Slashdotted response. This response code MAY also automatically request that the clients operator place a temporary mirror online for a 24 hour period.
The comment at the top, in css class "ahem". Saying that my browser doesn't support css. What actually happened is your server couldn't serve the css page. With pretentions like these are you suprised people don't care about the facts of BSD?
Special Relativity: The person in the other queue thinks yours is moving faster.
1. Linux, not BSD is run like an anarchy. The kernel is done by one group, Gnu, the utils, libs and applications are another, they're not even vaguely in sync with one another and like a sloppy carpenter they're leaving it to the plasterers and painters (Distributions) to make it look good.
2. pass (aside from noting a Goodwin)
3. Small companies obviously vary, I've had both extraordinary good luck with some(most) and less good luck with others. That's called a market, caveat emptor. Particularly smaller software firms I've worked with have been extraordinarily good at listenting to customer requirements and actually responding.
4. Shared Source ... ahh now that's an important license type. Didn't want to contrast Public Domain, Artistic, MIT ...?
5. As with (1) you've reversed it. The BSD's in fact operate considerably more slowly than Linux in developement pace, however they do so with far better coordination of the various parts. Kernel, Libc, utilities are released together, and probably benefit from the faact that the whole assemblage is tested.
I have *nothing* against any of these systems, some I use, some I don't. Linux works, BSD works and I'm fluent in the advantages and disadvantages of each and can make educated decisions about which is appropriate to a given task.
You've also demonstrated that you don't understand crap about governments. The world has many flavors of democracies, the Linux, BSD, Gnu, Perl communities are all vibrant forms of demorcracies in action (as, by the way are commercial / proprietary vendor - customer environments.)
It's as simple as that. Let me guess you use Debian? or is it Windows?
Linux is Linux, if One need clarify their dist: <Dist>/GNU Linux
bsds are of course just BSD
I don't really get the schism between FreeBSD and Linux. I use both. The servers I have full control over usually get loaded with FreeBSD. The reasons for this are simple; I haven't found a Linux distribution with the ease of system upgrade and general maintenance that FreeBSD has. The ports system isn't perfect but using cvsup to get update patches for the core OS is simply wonderful. Combine this with the reputation for stability and it's a winning combination. A combination that makes me comfortable to upgrade the complete server remotely without worrying too much about the upgrade failing.
Gentoo is somewhat similar but they aren't aiming for ultra stability and they don't have a long term reputation like FreeBSD.
Debian is great for upgrades but the glacier pace of upgrades to the stable release is unacceptable.
Slackware is wonderful (I'm back to using it for my desktop OS) but upgrading the OS isn't as nice as FreeBSD. Third party tools like swaret are slick but not time tested.
I would love to have a tidy distributation of Linux and a small core of tools released in the same way as FreeBSD with a similar "make world" upgrade process.
It really is about freedom. Either you have it, or you don't... and beer has nothing to do with it.
You're off base with your comments.
Apple has released their changes when required, specifically KHTML, GCC, and others. They have also released their BSD codebase as Darwin, which is available at the following URL.
http://developer.apple.com/darwin/projects/
Feel free to look at all of the other code they have contributed. If you ask me, they're better than Microsoft simply because they participate. Microsoft doesn't do this, at all.
Maybe you're just writing flamebait and I'm a big sucker? Oh well.
"Microsoft will bury it, just like they buried UNIX back in the 1990's when they called UNIX 'forked' and 'confusing' and offered Microsoft as a 'stable target'."
Microsoft edged *nix out of the low-end server market in the 1990s because companies were able to take any half-wit drunken dumbshit off the street and have him trained (sort of like a monkey) as an admin inside of a few weeks. The resulting drop in reliability from moving to Microsoft products wasn't substantial enough, and didn't kill off enough mission ultra-critical servers to justify moving back to the more expensive *nix solutions.
The fact that you could toss NT onto a hand-built off-the-shelf machine also made a big difference. Instead of moving back to the more expensive, but far more reliable *nix solutions, they simply segmented server functions such that isolated Windows failures didn't cause major problems. With promises of (relatively) cheap upgrades, much better reliability, and far more features on the horizon, Microsoft kept many companies with them by dragging the proverbial carrot along. The simple fact is that Microsoft did a much better job marketing the OS that the *nix vendors did.
-- "Government is the great fiction through which everybody endeavors to live at the expense of everybody else."
Dude, check the date on that. FreeBSD 2.x vs. Solaris 7 vs. (some linux that might well have been kernel 2.0 and libc5)? I know '99 isn't that long ago in our time sense, but that's two, three, or more whole OS revisions since that article was published.
I've admin'd *BSD (free and open), Solaris, and Linux in corporate environments (as well as a bewildering array of freenixen at home). All the systems have advantages, all of them have disadvantages. Personally, I run debian by choice when I can get away with it because *BSD, Solaris, and most Linuxen just piss me off in various ways, but I still use BSD where it makes sense. Running around trumpeting this or that OS as being the end all and be all of existence for everyone just shows that you're a greenhorn.
News for Geeks in Austin, TX
After reading that I feel almost ashamed. But really the author and all those that think like that should feel shame. I like FreeBSD for it's licence and it's legacy. Maybe FreeBSD now is as the author discribes but there never would have been a FreeBSD without the origional BSD hackers fixing things and sharing patches. Not all the patches and programs origionated at Berkley. What the school did was organize a distribution amist all the chaos. In reality it was the first hacker rebirth of an OS. They took a flakey prototype and make something useful of it.
The only real part the author got right was the anology in comparing BSD/Linux to PC/Unix users. Mainframe verses PC; Client/Server verses decentralized P2P. But there is no reason it has to be that way. And in fact it can't because FreeBSD is just a fragmented in it's pieces as linux, many like him just won't admit it.
I like BSD for it's licence. I dislike Linux for it's licence. There is some truth to FreeBSD being a stronger distribution (which is another reason I like it) but it's still a distribution all the same as any Linux distribution. His statements to the contrary just don't stand up. Both sides pick and patch from what's useful.
FreeBSD is a distribution built around a core set of tools with relatively tight quality control. It is more focused that many Linux Distros. FreeBSD is also controled democraticly among the elite where Linux people have no problems forking code and competing against one another, with users and distributors judging the winners and hence is more democract.
The FreeBSD ruling class may have a bug up their ass about somethings but I'm still free to fork code. But it turns out it's not worth it. If you have good reasoning on your side and enough patience people learn, or else they die while you persist. In gerneral BSD is more about patience, who has it, and who doesn't.