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,
Thus, this rant; as a BSD person, I want to try to explain how BSD works in a way that Linux people can absorb.'"
duuuuuuuhhhh When your done telling me about BSD Georgeie, can you please tell me about da' rabbits? I wanna know how dey dance and frolick in da springtime! I really wanna know about da rabbits George...duuuuhhh....
Quod scripsi, scripsi.
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.
Gentoo.
;) ) and as someone who has tried Linux (most major distros), Solaris, and BSDs (Free and Open), I keep coming back to Gentoo.
;)
Seriously.
I'm sure that the "Gentoo Zealot Translator" will follow this post (or at least another one
Why? Several reasons:
1) The community. It is *fun* to be part of the community. I am on IRC as much as I can be, and I like to help, and the community helps me back.
2) Documentation. It is extensive. Unbelievably so. Even the noobiest of noobs can follow the install documents, and the rest of the documentation just r0x0rs.
3) Portage. It combines the best of apt-get with the concept of Ports, and I have yet to find that something I need isn't in Portage. While I'm sure that not everything for everyone is in there, the vast majority of people will find what they need, and even lots they don't!
4) Ease of use. Some people might see this as a negative; ie, that which is easy can't be (or shouldn't be) good. However, Gentoo can be hard too - the choice is there. You can take advantage of all that they've done to make Virtual Hosting with Apache easier, or you can ignore it and do your own thing.
It all comes down to flexibility and power in your OS. I run minimal Gentoo installs as servers at work, but have a full fledged desktop at home. It makes work easier, and my home machine way more powerful and fun than it would ever be with any other OS, and that's what I'm looking for. It's the best of both worlds.
libertarianswag.com
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?
Forbidden /~fullermd/rants/bsd4linux/bsd4linux1.php on this server.
You don't have permission to access
At least BSD lets you log in and change file permissions whilst being slashdotted, impressive!
Beep beep.
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.
...the rant says "Forbidden You don't have permission to access /~fullermd/rants/ on this server. Apache/1.3.27 Server at www.over-yonder.net Port 80" and the main link says "Warning: main(../../php_inc/styleswitch.php): failed to open stream: Too many open files in system in /home/fullermd/public_html/php_inc/main.php on line 16 Warning: main(): Failed opening '../../php_inc/styleswitch.php' for inclusion include_path='.:/usr/local/share/pear:/usr/local/s hare/smarty') in /home/fullermd/public_html/php_inc/main.php on line 16 Warning: main(../../php_inc/ahem.php): failed to open stream: Too many open files in system in /home/fullermd/public_html/php_inc/main.php on line 19 Warning: main(): Failed opening '../../php_inc/ahem.php' for inclusion (include_path='.:/usr/local/share/pear:/usr/local/ share/smarty') in /home/fullermd/public_html/php_inc/main.php on line 19 Fatal error: Call to undefined function: print_ahem() in /home/fullermd/public_html/TEMPLATE.php on line 94".
Could someone please be kind enough to post a mirror?
--
FreeNET user? Comfortable with the adverse selection?
Well, my suggestion would be to use a lot of pretty pictures interspersed with interludes on where Linus is, what Linus is doing, what Linus was wearing, what Linus said, what Linus' facial expression was as he said it, if Linus will be say something like that again, perhaps, in the future, and where Linus might be living or moving to, maybe, perhaps, possibly.
Then I'd lead all the Linux users out to a fertile field where they could graze for the day, protected by a couple of good dogs, herding them in, keeping them together, where I'd sit back and enjoy their gentle baying in the summer sun: Liiiiinnnnux, Liiiiiinux ...
Chr0m0Dr0m!C
We'll have rabbits and chickens and live off the fat of the LAN.
Appologies to Steinbeck
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
Comment removed based on user account deletion
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
It should be pointed out that if ever the Slashdot community believes that the editors of Slashdot are immune to pot-stirring tendencies, then this post should serve as proof that sometimes they get bored and message each other: "The servers are slooooowww today. What can we do to get a few hundred angry comments? Oh, I KNOW!!!"
Chr0m0Dr0m!C
You trying to tell me BSD isn't another Distro of Linux?
WTF?
OS X is for... anyone who can afford the hardware?
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?
Whether it's good or not isn't important. All you need to know as a good /.er is that it's dying. ;)
It this an arrogant statement or what ? This sort of moderate arrogance, of showing off some alleged superiority, together with the constant efforts to undermine Linux from some BSD enthusiasts, don't really help me get interested on BSD.
But the reason I use Linux rather than BSD is simple: I personally prefer the GPL rather than the BSD License. Let alone the argument of which is better, I heard both sides several times, and I prefer the FSF's philosophy. This doesn't imply that I don't like the BSD philosphy. If the Linux kernel didn't exist, I would definitely be running KDE on to of some flavour of BSD ...
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.
Communit{y,ies} = {Community, Communities}
Because there are one or more BSD communities depending on how you look at it.
Only 31 comments so far and it is slashdotted.
Are Slashdot readers actually reading this story? What with Linux, BSD, and rant in the title it must be good. :)
I guess that is what I get for working on Friday afternoon instead of reading Slashdot. It is time for the afternoon sun to wash out my monitor anyway, so I have to take a break.
</worthless_post>the_crowbar
Have you read the Moderator Guidelines
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
Typically, you don't have "Linux apps", exactly. What you tend to have are:
:)
1) open-source applications
2) Linux binaries
99% of what you tend to use on a Linux system falls under #1. It's not a Linux application, specifically. It's source code that compiles under Linux... and probably other OSes as well. Maybe the authors only use Linux, and are like "Well, this is written for Red Hat, but if you want to make it work on a different OS, take the source and hack it up" (shame on them). Or maybe they're decent programmers and don't write to a specific operating system.
The end result is that some source will compile fine on another OS, some might need special compile-time or configure flags set, and some might need some patching. You can do it yourself... or you can use FreeBSD's ports, which takes care of everything for you. If something is in the ports system, someone has taken the time to go through all that, and include it into the install process. Whatever it takes... compile-time variables, patches, dependencies, etc... it's all downloaded, patched, built (in the proper order), installed, registered in the database, etc.
The beauty of ports extends beyond just installing the software. Every file can be associated with its port. Dependencies are all tracked automatically, and using the "portupgrade" package upgrading is insanely easy and automated.
By the way, Linux binaries (category 2 from above) aren't a problem either... FreeBSD includes a Linux emulation layer that allows you to run them if they aren't available to compile natively. Examples are RealPlayer and the Flash plugins (the 2 Linux binaries I use the most). In fact, there's a whole section of ports dedicated to Linux apps.
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...)
Why won't I use BSD? Because I believe in the GPL, not the Berkeley license, that's why.
If a software license was like the government:
1. BSD would be anarchy. You can do whatever you want with whatever you want, whenever you want to. Murder your own mother? Nobody cares, you're free to do so! It's anarchy baby!
2. Most of Microsoft's traditional licenses would be rampant fascism. We control everything, we are accountable for nothing, and we will not stop until there is nothing left. Hitler would be proud.
3. Just about any license agreement from any small company would be the equivalent to an Iraqi or Italian dictatorship (think Musolini, absolutely pathetic compared to Hitler, but still a complete control freak).
4. Shared source would be communism (you have the illusion of freedom, but really, we the collective control everything and you have no say even though we say you have say even though you don't but you do).
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.
It's as simple as that.
Bryan
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.
...or divide and conquer. It's very strange that people seem to need to lash out so violently. From what I've read of the article (pages 1 and 2, since the rest is lost to slashdotting) the article seems to be relatively non-inflammatory.
Of course, this means we need to start attacking him for DARING to even SUGGEST that, yes there are things about BSD that Linux people could stand to understand. I'm personally a contended Gentoo Linux user, and I disagree with the idea in BSD of writing code that anyone can simply use without giving something back. Heck, I wouldn't work for Microsoft for money, I sure as heck won't do it for free! But that sort of brings up the issue that, for the most part, Linux people tend to care more about the political/ethical issues of code that BSDers, who seem to be more down-to-earth realists. Gross generalization - perhaps. Again, just my impression, just as the article is merely the author's impression.
So divide and conquer. Get the free unices to squabble amongst themselves as much as possible, and it's harder for them to threaten more entrenched OSes. Or at least, it seems that way to me. What I'm trying to say is: while the differences between BSD and Linux (and, indeed, between the different BSDs and linux distros) are what make us so strong (nobody likes monoculture), this excessive fighting really is useless. Moreover, I think the people who get all radical about these things tend to hurt the cause more (in terms of broad adoption) than helping. If you feel like preaching to convince people to try your OS - don't. The straightforward, YMMV, choose-what's-best-for-you explanation has helped me convince many people to try free software alternatives. A drop of honey catches more flies than a bucket of gall...
Some do, some don't. Get over it. Personally, I'd like to see more articles of this type. And maybe some more reconciliation between the free unices.
But then, if we didn't have flame wars, I guess it wouldn't be slashdot, eh?
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-built 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.
Gentoo is a Linux distribution gaining in prominence these days. One of its big selling points is its portage system, which is often considered very similar to BSD ports. Perhaps most visibly, in that it compiles from source. That avoids a lot of the problem of binary packages. I've never used it myself, but the impressions I've gotten from information I've seen on it, and people I know who have used it, is that it's taken some good ideas from everyone, and smooshed them together. It'll be very interesting to see how it progresses and matures over the next few years. It's still much more Linux than BSD, but it may well be the closest to the BSD style of the major Linux distributions.
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 are 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 dependencies, packaging, installing and deinstalling, local changes necessary to build on your system, compile-time configuration tweaks... all those things. An RP
#include "sig.h"
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.
I'd like to see a relatively impartial comparison of the relative strengths and weaknesses of Linux and the various BSDs. I hear, for example, that FreeBSD has a more efficient TCP stack than Linux, and you can therefore get better performance with Apache under FreeBSD than under Linux. I have noticed that OpenBSD seems to be more responsive to user input under heavy load than Linux, but I haven't used OpenBSD enough to know if that subjective impression actually bears out consistently.
Dealing with these questions would be far more useful than taking saying
foreach("Amiga", "Mac", "OS/2", "*BSD", "WinXP") {
print "$_ is better than your OS.\n";
}
which is my impression of where these screeds come from.
Proud member of the Weirdo-American community.
If you have to explain why something is useful to someone then you are probably targeting the wrong audience.
Happy Linux, Mac, Windows, etc. Users don't need to be told why BSD will make them happier. Frankly an author has to take a wild guess what bugs me about my Linux and Windows machine. They might get it formated like this but a general "What does BSD do well" FAQ is better. Mr Fuller might not know that some of the things he thinks are wrong in Linux I've hacked around or are in the end non-issues.
Free software is about enabling people. Linux and BSD and whatever can and should all exist because neither is "right". A Linux user can learn how to use BSD. A BSD can learn how to use Linux. How come? Its because both are open systems. The implication with "helpful documents" like this is that there is a right or wrong choice to be made which I believe is an idea rooted in bad faith.
So right at the top of the page I'm taunted with a message that "This page uses CSS for all styling, like every page should. Your browser doesn't support CSS, so this page will look pretty bland, but you'll still be able to read every word. Tough cookies."
Except that I'm running Galeon. Which supports CSS just fine.
So why should I listen to this guy?
(/.ed now anyway, so I only saw the first page.)
Tom Swiss | the infamous tms | my blog
You cannot wash away blood with blood
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-built 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.
Gentoo is a Linux distribution gaining in prominence these days. One of its big selling points is its portage system, which is often considered very similar to BSD ports. Perhaps most visibly, in that it compiles from source. That avoids a lot of the problem of binary packages. I've never used it myself, but the impressions I've gotten from information I've seen on it, and people I know who have used it, is that it's taken some good ideas from everyone, and smooshed them together. It'll be very interesting to see how it progresses and matures over the next few years. It's still much more Linux than BSD, but it may well be the closest to the BSD style of the major Linux distributions.
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 are 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 depe
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"
"Because there's nothing on Linux that most Windows users think they need or want, yet how many people are standing on street corners praising Linux and all it's glory over Windows? More software is written for Windows, and there's alot more support available."
You're overlooking philosophical differences between Window and linux. Which is a lot more different the the philosophical differences between BSD and Linux.
Also momentum. Windows is loosing places to look for new users, Linux is still gaining them. Mean while BSD seems to be just kind of gliding along.
Could just be my impression, however I can't think of the last time I saw BSD mentioned in any trad mag. for any industry as an alternative to windows.
I want to make something perfectly clear:
This post is in no way anti BSD. I haven't used BSD in years.
The Kruger Dunning explains most post on
General
Ah, now this is the part I enjoy. Lots of soaring generalities, without a single hard fact in sight. Saves the trouble of having to do research. 8-)
What I'm going to discuss here is some of the real and imagined philosophical differences that both cause, and are caused by, some of the technical and organizational differences we've discussed. Like most such discussions, there's little that's hard-and-fast here; there's plenty of overlap in attitudes among people in the various camps. And there's certainly plenty of completely deserved flak for both sides to take, as well as undeserved flak they've been forced to. Still, I think it's important to examine some of these splits, without trying to presume that one is "correct" and the other is "incorrect".
Realize, I must emphasize, that a lot of this is very general. Practically every point is riddled with exceptions. And both systems often don't "follow the rules", or fail to meet their own expectations. It's more a question of inclination that of exceptionless implementation. I'm just saying this now, so I don't have to keep qualifying and re-qualifying every statement I make, until it's impossible to read.
Chaos vs Order
One common generality is that the Linux methodology is the living incarnation of chaos, whereas the BSD methodology is far more about control. To a large extent, it's true. Linux grew out of a spare-time hacking background, while BSD grew out of a controlled engineering background. Of course, there's plenty of weekend tinkers writing BSD code, and plenty of full-time professional programmers sloughing away at various parts of Linux. But the feel of the systems still does reflect that sort of schism.
We've already discussed the construction methodology; BSD builds up a core system which is uniform, whereas Linux distributions takes pre-existing pieces and pretty much puts them together helter-skelter. Naturally, the BSD method is far more amenable to keeping things ordered, while the Linux method practically necessitates utter chaos. That's not to say that chaos is inherently bad, or order inherently good. They're just different environments.
Linux will also generally chase new versions of other programs much more closely, adopting particularly more major changes like Apache 2 much sooner than BSD will move that way. Now, the stricter separation of "base" vs "ports" in BSD, as well as the structure of the ports tree itself, make it easier to have multiple parallel versions of packages in BSD. Sometimes, it's even possible and easy to have multiple versions installed at the same time. Linux, by not having that sort of separation, makes it very difficult to have parallel versions, and instead almost requires a single "blessed" one.
And the primacy of source-compiling in packages also makes it easier to handle multiple versions. For instance, PHP must be compiled differently depending on whether you're using Apache 1.3 or Apache 2. With from-source packages like ports, I can define an environmental variable when I compile and install PHP to tell it whether to use Apache 1.3 or Apache 2. With binary packages, you'd have to have 2 separate packages available, which will lead to confusion sooner or later.
Right vs Wrong
The difference can also be seen in the way core code is integrated. BSD tends to always shy away from hackish solutions when there's even a hint of a proper solution in the wings. The theory is that it's far easier to wait for the clean answer, than to integrate the dirty answer now, for several reasons. For one thing, if you integrate the dirty answer, that reduces the incentive to implement a better one. For another, once you dirty up the architecture to integrate something it'll never get cleaned up again. You know it as well as I do. Oh, sure, you'll say it's temporary. But you know
Below is from the SFU licenses you get with SFU 3.5
The utilities bc, ci, co, cpio, csplit, dc, diff, diff3, gawk, gzip, gunzip, ident, merge, nl, rcs, rcsdiff, rcsmerge and rlog are covered under the GNU General Public License, here reproduced. In accordance with section 3b of this license the source code to those utilities is available from the Services for UNIX World Wide Web site, http://www.microsoft.com/windows/sfu.
Help fight continental drift.
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();
General
There're all sorts of myths and objections and "common knowledge" and "conventional wisdom" and such floating around about BSD. I'm always a little surprised at how quick some Linux people are to latch onto such over-simplifications and long-dead statements about the BSDs, especially since they then spend so much effort screaming about people doing the same thing concerning Linux. Oh well. Let's rip up a few.
Hardware
"BSD doesn't support common hardware."
Does Linux support hardware that BSD doesn't? Probably. Does it matter? Only if you have that hardware.
I'll betcha Windows supports hardware Linux doesn't. For that matter, MacOS probably supports hardware that none of the rest do. BSD supports most common hardware you'd stick in a server, most common hardware you'd stick in a workstation, most common hardware you'd stick in a desktop... There are gaps, but the gaps change from release to release, just like every other system.
Video card support, for instance, is hardly ever claimed in any BSD documentation, while Linux documentation talks about it a lot. That seems weird, until you realize that in the BSD worldview, the OS isn't supporting any of those video cards; X is, which is a separate package. So you can use any video card under BSD that you can under Linux, since neither the BSD kernel nor the Linux kernel is supporting the video card. Now, that's not strictly true, particularly in some of the more esoteric reaches of 3D and DRI, which require more direct hardware ties and more grubbing in the kernel itself. Of course, I don't follow that, so I don't even know what the current state of the world is in FreeBSD, to say nothing of Linux. Maybe BSD doesn't have support on a par with Linux on that. Maybe it does. I dunno, and it'll probably change between the time I write this and the time you read it.
But most hardware is simple. Most common IDE and SCSI mass storage controllers work just fine. Even most RAID controllers are supported to some extent. Most network cards, wired and wireless, most sound cards, some crypto-assist cards...
But it is simple. You don't care what hardware the OS supports, as long as it supports what you have. Read the hardware support lists and/or just try booting it up. You might be surprised.
When in doubt, check the lists. Hardware support lists are available per-release, such as the lists for 5.2-RELEASE and for 4.9-RELEASE of FreeBSD.
Program Availability
"But Linux has more programs than BSD!"
How do you figure? Most of these "programs" you're so hot about are things that are open source or source-available anyway. If it's written reasonably portably, 95% or better of it will compile right off on any vaguely POSIX-compliant system. Heck, just look in the ports tree; there are over 10,000 programs and packages there.
Of course, there's a lot of software out there that won't compile on anything but Linux. Sometimes, that's because it really does require facilities that only Linux has, or does things that only matter on Linux. Sometimes, that means you need to pick up a 2x4 and go find the author, because they've put in something gratuitously imcompatible through malice or laziness. There are people who do the same with BSD, or with HP/UX, of course, but the rapidly growing Linux community, combined with the number of people writing programs who have with less experience in traditional software engineering, make it far more visible there.
Of course, there are some things that won't cross-build, particularly those that stick their fingers deep in implementation details. Some require only a little work to port, some major work, and some don't even have any meaning on other systems (When did anybody ever port Mic
Check this article out!
/etc/format.dat file.
/etc/format.dat file, matching the geometry..." Uh-huh. After years of development and millions of dollars, Solaris still can't figure out how to label a disk drive. Give me, as they say, a break.
Title: Why I run FreeBSD - SunOS, Solaris, Linux? No, thanks!
Why I run FreeBSD
SunOS, Solaris, Linux? No, thanks!
Abstract
Rich explains why FreeBSD is the superior OS for him. (1,500 words)
Last month's column ("Serious FTP") discussed anindustrial-strength FTP site, based on a 200-MHz P6 ("Pentium Pro") and a pile of special-purpose
I/O hardware. Although my main server isn't trying to serve thousands of simultaneous FTP sessions, I still want it to be robust, easy to maintain, and convenient to enhance.
So, like Walnut Creek CDROM, I use FreeBSD. Specifically, I'm using FreeBSD 2.2.8; I'll switch over to FreeBSD 3.x in a while; for now, I'm just lurking on comp.unix.bsd.freebsd.*, watching the new development track's bug reports quiet down.
It's not that I haven't tried Sun's offerings; I have. In fact, I have both SunOS and Solaris running here, as well as a Power Mac (supporting the www.mklinux.org Web site).
However unwillingly, I have been initiated into the administrivia of a variety of Unixish systems. And, for a variety of reasons, I believe that FreeBSD is a clear winner over the others I have installed.
Why SunOS and Solaris lose I tried hard to retain the SunOS machine as my server. SunOS is a tidy (by current standards, at least) little BSDish operating system. Also, I am very familiar with its BSDish quirks, and it has been amazingly reliable, so I was strongly motivated to keep it going.
Unfortunately, SunOS has had no real support from Sun for several years. As a result, the system software is quite out of date. It has gaping security holes (e.g., ancient sendmail), annoying limitations (a "mere" 2 GB per filesystem), archaic development tools (no C++ or Perl), and some real oddities (no DNS without (yurggh!) NIS).
Patches and add-on packages could solve much of this, but there is no guarantee that they'll all play nicely together. In any case, I'm not into that degree of pain, so the SunOS box has been relegated to "experimental" use.
I have managed to avoid Solaris for several years, but I recently had reason to set up a Solaris system. I attached a CD-ROM drive and a pair of disk drives to the SCSI bus of a spare ELC and fired it up.
Everything went fine until Solaris looked at the disks. Then, because the disks didn't have Sun labels (well, duh!), the GUI installation procedure printed a nastygram and dropped me in front of a command-line prompt.
If this was a SunOS system, I would have known exactly what to do at that point: find a utility to get the exact size of the disks, fake up a plausible disk geometry to match the size(s), and edit the mess into the
You see, SunOS inherited the 4.2 BSD filesystem, which tries to employ disk geometry as a way to reduce head movement and rotational latency. Modern SCSI disks don't have fixed track sizes, however, so some parameter faking is required.
This, however, is Solaris 7, Sun's latest and greatest operating system. There must be a magic command to set things up on an "alien" disk drive. The fact that the GUI didn't call the appropriate routine is a bit annoying, but surely just an oversight.
So, I asked a friendly Sun support person for the answer. "Well, you have to find or create an entry in the
I won't even get into the issues of Solaris support tools, save to say that a Unixish system without a C/C++ compiler and Perl 5 isn't up to any standards I'd wish to set.
Why Linux loses (for me)
Part of my problem with Linux is subjective; As a long-term BSD administrator, I am simply more comfortable
Muchas Gracias, Señor Edward Snowden !
So, let me get this straight.
Apple uses BSD code to make a good operating system and its all sunshine and roses. Good for Apple. I commend them for wanting to make their operating system the best they can for their customers.
Microsoft uses BSD code to make their operating system a little better for their customers and they are the solely driven by greed and power in preservation of their "monopoly". I would think Microsoft has as much right to make their products a little better by using code in the same manner that Apple does without it being deemed an evil use of people's hard work.
Plus, *raises change of subject card* despite what everyone says, even the court system. By the mere fact that alternate operating systems exist, are sold, and are installed; Microsoft does not have a monopoly on the Operating System market. They just have a widely-used product.
--being modded down because I can see reality
"Wisdom is not a product of schooling but of the life-long attempt to acquire it." -Albert Einstein
I think with Linux's popularity, people often fail to understand that generally the same desktop environments, utilities, and such work exactly the same on the BSD's. Especially in the case of the ever-so-portable NetBSD, it allows one to have a Linux-like desktop on pretty any platform imaginable that's powerful enough.
Now, commercial/binary application support, and variety of device drivers available are the main areas were the BSD's are still playing catch-up.
Love many, trust a few, do harm to none.
-- Ed Avis ed@membled.com
...no really, I did read it. Honest.
Although the writer does have a few good points, he also has some rather large gaps in his knowledge. He really only knows the FreeBSD system, but seems to assume the other BSDs do things exactly the same. Some of his arguments would apply to NetBSD and OpenBSD, but not all of them.
His personal bias really shows through in the writing, almost bordering on making it a flame or troll against Linux, even though he mentions over and over that this is not the intent.
I'd love to see the same article written by someone with less personal bias, and more actual knowledge of Linux and the BSDs.
better than the avg linuxer.
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 saw this article yesterday posted on:
freebsdaddicts.org and the first thought that came to mind was, "boy I hope this doesn't get slashdotted, because the linux crowd will have another BSD flame-fest." its not as bad as i thought it would be. the guy who wrote the article was really not judgemental at all, he made points to say "not saying one is better, they are just different." so cut him some slack..
home of the original cupholder
System Upgrades
Building the world in less than 7 days
As a result of the fact that the BSD base system is developed as a single unit, you can easily get the entire source tree for the entire base system. And because of the way it's designed, you can execute a single command at the top level to compile everything. For most of us, that's the normal way to upgrade; you update your source tree to the absolute latest (with a few hours, of course) changes made by anybody, compile it, install the new binaries, and you're done. Miller time.
Of course, you might not necessarily want the latest. You could grab the sources from last week, say. And normally, you do the whole rebuild process in four steps. You start with a make buildworld which compiles all of userland, then a make buildkernel which compiles the kernel. Then you take a deep breath and make installkernel to install the new kernel, and make installworld to install the new userland. Each step is automated by a target in the Makefile.
Of course, I'm leaving out tons of detail here. Things like describing the kernel config, merging system config files, cleaning up includes... all those gritty details. If you want to read about that, check the FreeBSD handbook, specifically the sections on updating and building and configuring your kernel, or the various other forms of documentation available. But those sort of things become second nature after you do them a few times. Really, the process of updating your system boils down to those four commands. I find it a lot easier than having to resolve cross-dependancies and changed library versions and such across a zillion binary packages.
This information is mostly based on FreeBSD. NetBSD uses a different model for doing the system builds. OpenBSD tends to be much more in favor of reinstalls, at least for major version changes.
Addon software
Well, that sure was easy. But, what about all those add-on packages? How do we manage those? Let's talk about installing and upgrading ports.
This is the one thing that I have never quite understood and have always heard people in the BSD camps complain about.
I always hear complaints of how fractured the linux community is because of the umpteen different linux distributions. Now I have used about 5 different linux distributions over the years and I have to say that I have been able to sit down at everyone that I have tried and felt pretty much at home. The base operating system is always made from the same packages. I have yet to see a mainstream distribution that didn't use glibc, util-linux and the like. The only major difference you see between the distributions is the package managment.
On the other hand I currently use both Open and FreeBSD and while mostly similar I would have to say that there was a greater difference in the core OS between them then between different linux distributions. For example the disk partitioning program. Also since they use seperate kernels it can result in other incompatabilities. I know in the past filesystems were not quite compatible, or all features were not supported, such as UFS2 and soft updates.
Also when he talks about the installation from ports being snazy for install because they find dependancies and install them for you I am suprised he doesn't bring up any of the linux tools that do the exact same thing such as apt or emerge. He mentions the distributions that they are a part of so I think he knows about them. It is possible that he thinks that linux users know about them and therefore doesn't have to.
Exactly. If Microsoft takes a copy of your BSD licensed code, compiles it, presses it onto a CD, drops it into a shiny box (so shiny!) and sells it for $100...
What is stopping anybody else from doing the same thing? What is stopping anybody else from doing the same thing but only charging $90? Or $110 but including a nice manual? Absolutely nothing.
People who use the "Microsoft will use my code in a product" argument against the BSD license forget that the original code will still be available for free. Whatever the marketplace can accept paying for Microsoft's additions to otherwise freely available software then that is what Microsoft's additions are worth, regardless of how insignificant those additions are.
Serve Gonk.
I'm quite happy for anyone to use the code I have released under BSD licenses. I'd love it if Microsoft included a port of OpenSSH with their operating system, just as I am happy that they are releasing some POSIXy tools (mostly based on BSD licensed code).
/bin/sh).
This has already happened - Sun's Solaris 9 SSH is based on portable OpenSSH. I'm happy that Solaris is a little less braindamaged out of the box these days (though I wish they would get a modern
Would I care if Microsoft were to make a few $$$ of my work? Not at all - I have lost nothing by their gain. The original, free code would still be out there for people to improve and every additional line of 3rd-party free code that these proprietary software companies have to track puts them closer to that pain threshold where they decide it is easier to contribute their changes back to the community than maintain their own forked version.
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.
Back when I started out with linux(less than 5 years ago!) there wasn't any considerable anomosity between linux/bsd. The only change that might have caused this is that linux has become simpler and more graphical in nature, and has increased in popularity. So is it that BSD users are jealous, or is it that more idiots can now work linux? Probably a combination of both judging by the mud being slung by both sides. Maybe the bsd based OSX release has created some tensions for both sides too.
True genius is grasping a situation like a peice of fruit, and peircing it just right so that it drains dry.
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
Is how they insist that a community can or should behave as a monolith.
Linus, Gates, and Theo have no control over how their software communities behave. Their respective software communities have no control over how they themselves behave.
Yes, I realize my complaint has been voiced before. But all y'all jackasses are hard to drown out. Well. IHBT. IHL. HAND.
There are no trails. There are no trees out here.
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.
The problem is that Microsoft acts in ways that negatively impact the life of OSS folks (such as promoting .doc lockin). If you help Microsoft, you are helping someone who uses spare resources to repeatedly kick in you in the nuts.
May we never see th
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.
...and call this flamebait, though i don't mean it as such.
....are the new hordes of OSX users that go around trumpeting "I AM A BSD POWERUSER" or "I HAVE A HIGH-END UNIX SERVER" "MY APPLE HAS PROTECTED MEMORY, PREEMPTIVE MULTITASKING AND UNIX, WHICH IS SOMETHING YOUR STUPID WINTEL PEECEE WILL NEVER HAVE" that have never seen the inside of a terminal window, init script or log file. Essentially lifelong Mac nuts.
What i think is a *real* issue for the BSD folks to consider if they are being misunderstood..
(and i mean this as informative, not scathing)
In other words, the BSD community just inherited a whole new legion of zealots, who will have the side effect of causing people (who probably also aren't very knowledgeable) to associate "BSD" with bad flamewars, etc. The difference is that some of these folks don't have a clue, and they spout a lot of dumb rhetoric.
Sure, there are zealots in *any* camp, and there are kind, knowledgeable, helpful folks in every camp too. I'm not saying that all OSX users are zealots, or clueless, or that all BSD users are assholes, or anything. Good and bad in all.
do() || do_not();
I use linux instead of *BSD for what I'll admit are pretty much subjective reasons - I spent a lot of time learning the various quirks, and FreeBSD just never fit right in my brain.
However, I think we're losing sight of the real fundamental dichotomy here, which, for lack of a better phrase, I'll call the 'Vendor/Community' spectrum. As it stands, Microsoft has power because they control the protocols that their users can access. Through 'embrace&extend', they try to ensure that you simply cannot interoperate with any other operating systems.
Apple would act this way if they could, I'm sure, but since they do not have the market share that MS does, they can't afford to have OS X be an island of its own. It's in their best interests to be a team player. For now.
These are the Large Evil Vendor and Small Brown-Nosing Vendor models, respectively.
Linux, *BSD, etc, all the (to whatever extent) open-source OSes are aware that they are part of a community. As such, it is the users, not business interests, that drive development. While there is value to a Vendor in lock-in, there is never value to a user in adding gratuitous incompatibilities. If Windows boxes can't talk nicely to Unix boxes, Bill Gates wins. If Linux boxes can't talk to OpenBSD boxes, nobody wins, and Linus and Theo will both want to figure out why, and fix it.
Every time I witness a debate between BSD and Linux fans, I reminded of the Star Trek episode where the Cheronians were a race of people who were black on one side and white on the other. One group claimed the other was inferior because they were black on the left side instead of the right.
Or they use your code in order to create something that's compatible with your code, but your code is incompatible with.
Or they simply save resources on developing that code, and can put more resources into the Doc format lockin.
I'd rather OSS contributions were forced open so all could enjoy them. Those who want to create closed software can suffer from the same code duplication and inefficiencies that everyone else suffers of, due to the closed-software practices.
The reason noone cares about BSD is because for 90% of us, anything we can do with one we can do with the other. So all other things being equal we go with the one that has more mindshare/software/hardware/support.
That's my reasoning, and I'll bet it's the majority opinion if you were to poll average linux users.
Sigs are awesome huh?
"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."
To be honest, CVS isn't all that hot as a VC system, compared to what could be done. The problem is that it's a pain in the ass to make a VC system, it's a pain in the ass to migrate from one to the other, and CVS has been there and free, so folks use it.
/proc out of box, this means that they can also do a fair amount of monitoring of what's going on.
Don't get me wrong -- using CVS is waaay better than no VC. CVS was the first VC system I used seriously (well, after a short stint with RCS). However, CVS is seriously hampered by trying to be highly compatible with RCS, which was never designed for the kinds of environments that CVS is used in.
Anyway, as to things that aren't that hot about CVS:
* CVS doesn't grok "text" files where the linefeed format matters. If you have a piece of software that uses a text file in CRLF format, you need to treat it as a binary format.
* CVS sucks -- badly -- from a security standpoint. The current feature branch is getting vaguely closer, fixing a huge number of symlink-related bugs present. Basically, something as simple as a repository where some folks have read access, some folks have read/write access, and some have no access to each module is a real pain to set up.
* CVS allows spoofing of version history. Bad, given that one reason folks like VC is that they treat it as auditable. CVS is *not* an auditing system that can be trusted for legal or security purposes.
* CVS does not grok the concept of files moving.
* CVS cannot version CVS metadata. This means that if you have a file checked in as text (accidentally), and at some point switch it to binary format, you must break all checkouts before the original date when you mark the file as binary.
* CVS understands things based on a file-by-file basis. While it's not too hard to write scripts to provide functionality like listing all tags used in a project, it's annoying that CVS can't handle this.
* CVS lacks some of the re-merging features that BitKeeper and more advanced VC systems have. I haven't needed to muck with this, but it's apparently one of the two big reasons that the Linux kernel folks don't use CVS.
* CVS can't do distributed, disconnected development. You have to have one server that everyone can talk to, full stop. This is the second major reason that the Linux kernel folks don't use CVS.
* CVS does not do atomic updates or checkouts across multiple files (as I said, CVS sees everything on a per-file basis). Frankly, our databases and filesystems all moved to transaction semantics long, long ago. A VC system has even less excuse not to have transaction support. CVS is way behind the times in terms of reliability -- theoretically, this can cause all kinds of nastiness.
* CVS makes it a real pain in the ass to delegate administrative access, and tends to not be particularly secure. For example, if I want to allow someone to add a module, and want some *subset* of the modules in a repository to generate commit notification messages, I need to give that person write access to CVSROOT/loginfo. Bad. (Again, you can write a program that provides this access, but it's not part of CVS.)
* The CVSWin GUI sucks, and hangs if CVS is processing anything. If you have anyone that doesn't use the CLI and uses Windows, life is annoying for them.
* Unless you want to do mucking about with secure shells, giving someone CVS write access means giving them shell access on the server. Because Linux (and, I suspect, most *IXes) don't support restricted
Really, to be honest, CVS was a cool system for when lots of people were using RCS. CVS's killer feature is RCS compatibility. Without this constraint, CVS would not have most of its drawbacks.
I haven't seriously checked out Subversion, but I'd like to see how well it stacks up. It certainly fixes at least some of the problems.
May we never see th
Mycrosoft's use of BSD code is both legal, and ethical, in that it is a voluntary action, done with the informed consent of both the parties involved.
However, that alternatives exist at all is not a test for Monopoly. If it were, there could never be a true monopoly, ever. A monopoly exists wherever those alternatives face constraints other than those of the market in surviving, gaining a share, or making a profit. Now you know why "everyone, even the court system", disagrees with you. It's legal to have a widely used product, all the way to 100% share. It's not legal to engage in what the court calls anti- competitive practices to protect or augment that share.
Refusing to sell to hardware vendors unless they do not enter into other contracts with your competitors, for example. Given that the hardware vendors are publicly traded companies, they cannot legally refuse to take such a deal, as the short term penalties to their own stock would be a violation of existing laws protecting shareholders. Ergo, a monopoly exists, at least so long as the shareholder protection law exists.
Maybe in a world where there were not a lot of other laws, monopoly would be as impossible as you seem to think it is. So, let's get rid of the Sherman anti-trust law, RIGHT AFTER we repeal all the other laws that made it vitally necessary. Better yet, let's figure out how to change these laws, a few at a time and with the overall goal of moving smoothly from Mercantilism to a true free amrket.
Who is John Cabal?
The sky is clearing.
FreeBSD Java(TM) Project
Because you have to know Unix and Linux if you use BSD.
If you want to create a snazzy customized Linux like environment, then you need to hit the FreeBSD manuals and book.
That does not mean its hard. It means no gui install, no default booting into X, no color xterms or bash, etc. Just a simple tty login.
You learn the ports and setting up X and your shells. THen you customize your system with no depancy hell.
Really you have customization that no distro besides slackware provides. Gentoo offers that but I found it extremely low quality quality and no solid integrated product like FreeBSD is.
Linux is for beginers and FreeBSD is for experts or experienced users.
FreeBSD = Unix. No question about it.
I have learned more using FreeBSD exclusively for 9 months then several years under Linux.
For Linux users reading this let me tell you that Linux is just a kernel. FreeBSD is a whole integrated environment. All the linux distro's try to add things to it but its not as solid and breaks quickly when you try to change what the vendor adds as defaults.
http://saveie6.com/
BSD is. Linux is. If you look at the fundamentalities, they are different. If you look at the practicalities, BSD users use GNU tools and Linux users use BSD tools. That they are seperate is good because we have choice. It's like competition in the workplace, because we're all on the same team. I run BSD's and Linux's including Gentoo which is right in the middle.
-- I was raised on the command line, bitch
The problems seem pretty cut and dry.
Due to the change from a.out to ELF binary format in OpenBSD 3.4, upgrades can be a complex, delicate process. The best solution, whenever possible, is to backup your data and reinstall from scratch... In all cases, once you start the upgrade you MUST complete it. If the upgrade process fails or is abandoned before it completes you will almost certainly be left with a non-functional system... Finally, you cannot use the bsd.rd kernel to upgrade the system. The existing bootblocks on your system cannot boot the 3.4 bsd.rd.
Pardon me for reading the instructions.
I am speaking from the point of view of a Linux user.
The crux of what the gentleman has written about BSD and Linux's main difference seems to be stability vs. adaptability. There is one small point that is crucial to Linux's adoption over that of BSD. It's a point that I think the author knows, but did not focus on when he wrote his articles. If you have hardware, odds are Linux will get on it FIRST before BSD by a factor of months to years. And why is this.. because demand is met by Linux first. BSD values correctness or cleanliness over getting it to simply work. I admire that, but that's about it.
This is how technology works.. just like anything else. First come, first serve. The saturation point is reached sooner to whomever is first. If I'm hungry, I want something to eat. I don't care if it's a 5 course meal shipped from Paris, or a madcow burger from McDonald's. I'm fucking hungry- NOW! Anyhow, that's one lame example. Now to continue..
Linux is not as stable as BSD. Everyone knows this. Netcraft has documented it for web servers. Experience shows us this for ssh, ftp, and the like. But that doesn't matter- if this package isn't available, or this feature isn't available, or this hardware isn't available. If you cannot adapt rapidly to a changing environment, then you are left behind.
It is said that "intelligence", by definition, is the ability to adapt. Evolution is messy. The fact that most people have an appendix sitting there waiting to get infected and burst is tribute to how adaptation isn't clean and neat and orderly. Nature IS this. Scientific progress is no different.
I would like it to be different, but we aren't that smart. We have no foresight as human beings. We are bumbling idiots pretending to be aware. Achievement for us is gained by learning from failure- not by innately knowing what is right or wrong. This is how we got to where we are now.
I have great respect for BSD and it's users. Although, they seem to be upset by the lack of attention paid to them for some reason. That's a subjective observation on my part. Either way, I don't care if their feelings are hurt. This is reality. Linux works and does what I need it to. When BSD does the same, then I'm all over it. Until then, keep on doing your thing. BSD serves a great niche. I hope they survive. And I wish them the best. We will see if "adaptability" or "correctness" survives in time. Until then, I want to say I admire both camps.
Take care.
Thor
I can say that for me, the single worst thing about the *BSDs is the way the kernel is bound into the base system.
My FreeBSD experience went roughly thus:
Maybe I was unlucky. But the lesson I learned from this is that when monolithic `designed' systems go wrong, you're screwed. Modular systems, by contrast, give you the option of swapping out faulty components, even if the resulting system is slightly less slick than a monolithic system.
I now use Debian Stable for high-availability systems, and Gentoo for high-performance systems. Gentoo is, of course, the modular system par excellence, giving you total control over all aspects of the packages you use. Debian is less so, but gives you the security of knowing that your system has been thoroughly tested under all the conditions it is likely to encounter, and that with a modicum of judgement, updating whenever new packages appear will give superlative security without compromising stability.
And, of course, if the latest kernel screws up your system, you can downgrade to the previous version with absolute freedom. To me that's worth far more than whatever an integrated system can provide.
Anyway, I consider myself somewhat of an advanced *nix user, even though I've only been doing it circa 2001. I started out with linux, of course, and liked it very much. I've seen the both the system and the open source community make tremendous leaps and bounds in just these few short years, and I must say that linux is absolutely a fine operating system.
Despite this, I was also compelled to try FreeBSD; I'm always interested in trying new things and tinkering around as much as I can with things I know little about, so naturally BSD was the perfect target for me. Being used to linux, I found the subtle differences in BSD very attractive; I wanted to get in on this because of the useful knowledge would provide as well as the rich history behind it. Also, a tiny bit of zealously may have played a part ("Wow, it's really unix!) ;)
I had a touch and go realtionship with BSD for the past several years, but it wasn't only until this one that I got a little more serious about it. Putting linux down for a while, I delved deeper into the use and maintanence of the system, gaining the kind of more intimate knowledge that the casual user probably doesn't have.
What happened was that I loved absolutely everything about it; it was very different than linux! Instead of groping around for strange tools and trying to fight a quirky system with which, due to constant mutation, there was always some uncertainty as to the correct way of doing things (are you running distribution X, Y, or Z? What version of software package A do you have, and are you using libraries B or C?).
With BSD, I found a system that was consistent, reliable, and very practical in its design. If you wanted to do something, there was a right way to do it, and this way always works (and works well, at that). Package management was top notch, and upgrading, maintaining, and generally managing the system was a quick, easy, and painless process. It is often said that BSD is not "user friendly", but I guess it's true when they say unix is "picky about who its friends are." To a moderately advanced user like me, BSD was more friendly and easy to use than linux! There aren't as many programs that will hold your wee-wee for you so you don't miss, but all of the information you need to know in order to do a certain thing is always readily available and right up front, beckoning for you to do it yourself and do it right. (some linux distributions are much better in this respect than others)
It must be said, however, that linux is a very fine system in its own right, and not to be looked down upon in any way! As Matthew says in his article, the big differences are mainly philosophical and cultural, and I have just found myself very much at home in this culture and very agreeable towards this philosophy.
What puzzles me is all of the rampant slandering of BSD that goes on by linux users (only a small percentage of this is meant to counteract the slandering made against linux by BSD users). Yes, there are common myths (like the ones Windows users hold towards linux, which make us all cringe), and yes, there are many misconceptions afloat.
Regardless of personal preference, the fact remains that BSD is also a very fine operating system, and does a few things a lot better than linux. Of course, linux does a few things a lot better than BSD, so when choosing between the two it's important to learn what those things are and how important they are to you.
Not from the featured article, but from here:
4.4 What versions of BSD are available?
In contrast to the numerous Linux distributions, there are only three open source BSDs. Each BSD project maintains its own source tree and its own kernel. In practice, though, there appear to be fewer divergences between the userland code of the projects than there is in Linux.
It is difficult to categorize the goals of each project: the differences are very subjective. Basically,
*
FreeBSD aims for high performance and ease of use by end users, and is a favourite of web content providers. It runs on PCs and Compaq's Alpha processors. The FreeBSD project has significantly more users than the other projects.
*
NetBSD aims for maximum portability: ``of course it runs NetBSD''. It runs on machines from palmtops to large servers, and has even been used on NASA space missions. It is a particularly good choice for running on old non-Intel hardware.
*
OpenBSD aims for security and code purity: it uses a combination of the open source concept and rigorous code reviews to create a system which is demonstrably correct, making it the choice of security-conscious organizations such as banks, stock exchanges and US Government departments. Like NetBSD, it runs on a number of platforms.
There are also two additional BSD UNIX operating systems which are not open source, BSD/OS and Apple's Mac OS(R) X:
*
BSD/OS is the oldest of the 4.4BSD derivatives. It is not open source, though source code licenses are available at relatively low cost. It resembles FreeBSD in many ways.
*
Mac OS X is the latest version of the operating system for Apple Computer Inc.'s Macintosh(R) line. The BSD core of this operating system, Darwin, is available as a fully functional open source operating system for x86 and PPC computers. The Aqua/Quartz graphics system and many other proprietary aspects of Mac OS X remain closed-source, however. Several Darwin developers are also FreeBSD committers, and vice-versa.
I thought we all became Linux users to avoid the Blue Screen of Death!
What's that? Oh, that BSD?
Never mind, then.
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.
Linux is for bitches and stupid ones at that :
Your carefully worded and well thought-out reply has forced me to reconsider my position.
I've had much worse support from paid contracts and major vendors.
Someday I'll get around to trying this newfangled Linux thing out, but for now, the employer I'm looking at back home wants familiarity with BSD, and so my spare time is allocated.
Aside from what goes to the wife and kid, that is.