comp.unix.bsd.freebsd.misc > debian vs. freebsd - View Parsed Show only message text Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!cyclone.bc.ne t!sjc70.webusenet.com!news.webusenet.com!wn11feed!wn13feed!wn12feed!worldnet.at t.net!204.127.198.204!attbi_feed4!attbi.com!rwcrnsc54.POSTED!not-for-mail From: Brent Busby Subject: Re: debian vs. freebsd Newsgroups: comp.unix.bsd.freebsd.misc References: <169a7283.0301290616.2a55f3a3@posting.google.com> Organization: Insight Broadband User-Agent: tin/1.5.12-20020427 ("Sugar") (UNIX) (FreeBSD/4.7-RELEASE-p2 (i386) ) Lines: 336 Message-ID: NNTP-Posting-Host: 12.221.229.59 X-Complaints-To: abuse@insightbb.com X-Trace: rwcrnsc54 1043921013 12.221.229.59 (Thu, 30 Jan 2003 10:03:33 GMT) NNTP-Posting-Date: Thu, 30 Jan 2003 10:03:33 GMT Date: Thu, 30 Jan 2003 10:03:33 GMT Most threads like this don't interest me too much because of the flame potential they always have, but this one did because I had to make the exact same choice once. It wasn't easy. I like them both very much. In fact, I ended up running Debian on another machine just because I couldn't stand to be without it, even after I chose FreeBSD. It's the type of choice that will really make you end up splitting hairs. But here are some of those hairs: Pros for FreeBSD... 1. FreeBSD likes to do things the traditional, classical Berkeley UNIX way, not the GNU way. This is just more standard, unless you're one of those people who think of Linux as a standard on its own weight. There are numerous examples of this: FreeBSD puts installed apps in /usr/local where they belong, not /usr/bin. FreeBSD has a real /bin/sh, not bash running in Bourne shell emulation mode. FreeBSD's userland just generally looks the way a pure UNIX directory hierarchy should, more purely than even a lot of vendor UNIX systems that run on big iron that I could name. (Sun and HP have gotten downright weird in this area.) It's all just very orthodox. 2. FreeBSD maintains a big brick barrier between the OS and your apps, and when you want to upgrade, they're handled independantly. This is a nice breath of fresh air compared to Linux, which seems to have the paradigm that every package you install is just an extension of the OS, leading to system upgrades that end up upgrading every app you have on the same day if you're not very deliberate about avoiding that. While it is true that Debian, bless their hearts, gives you a "hold" marker that you can put on packages before an upgrade to prevent them from being touched...it's not the default. Which means unless you take the time to mark as held every single non-core package on your system that you don't want to upgrade, you will get a mass upgrade of everything just like you would on non-Debian distributions of Linux. That kind of sucks. FreeBSD's separation of OS from apps is more sane. I normally only upgrade an app if there's a new feature I want, or a security exploit has been discovered. The rest of the time, why on Earth would I want to upgrade every app on my machine? 3. FreeBSD comes with the IPFilter stateful packet firewall software built into the kernel. While it is true that Linux's firewall has improved now that they have iptables, I still think that IPFilter is the best firewall software I've ever used. It's also more standard, since IPFilter can also be found on big iron platforms like Solaris, whereas iptables, ipchains, and pretty much all other Linux firewalls are found only on Linux and have their own unique syntaxes for their scripts. 4. FreeBSD's package system is based around the C compiler, like a real UNIX system should be. It seems that many UNIX users -- not just in the Linux world, but everywhere -- have forgotten over the decades just why UNIX systems come with C compilers. It's not for C programming. It's because C is a portable language that lets you get software across platform barriers. A UNIX package system makes the most sense when it takes full advantage of the power of C as a portable language. Linux on the other hand encourages users to become dependant on binary package formats like RPM and DEB. Though Linux obviously does come with a C compiler, its user culture obfuscates the purpose for it being there, and most Linux users end up truly believing that if they can't get software in some native binary package format, that there is no way for them to use it. One has only to use the FreeBSD ports tree once and watch it automate a build of a complicated program like Mozilla or KDE from source to appreciate the work that FreeBSD has put into making their package system based around the compiler where it should be. (Of course, Debian has some major perks for its package system, too -- more on that later, just to confuse you....) ;-) 5. Related to #4, since the package system is built around the idea of having source tarballs automatically FTP'ed from whatever site they originally come from and built for you fresh on your machine, they obviously tend to be much, much more current than any distribution of Linux will generally give you, Debian especially. Debian has a bad reputation for taking over a year or more to release packages of many common end-user apps, leading to a general perception that the software is usually stale and out-of-date by the time it reaches Debian. It's often said that this is only true if you follow Debian's 'stable' tree, which is made for production servers; if you follow their 'testing' tree, the software is much newer, and aimed at desktop users (despite the scary name, 'testing' is actually quite stable). That is true, but not as true as it should be. I've found that generally even the software in 'testing' is often quite old, and it's really hard to compete with the currentness of the FreeBSD ports tree anyway, since it FTP's the source right from the sites where it comes from right when you ask for it. Probably no binary package collection a la Linux is going to be able to beat the currentness of that. 6. This is the one everyone brings up, so it's probably obvious, but it belongs in any comparison of FreeBSD versus Linux: The BSD kernel is far, far less likely than Linux to go into a saturated CPU condition under high loads, and bounces back far more gracefully after the load conditions subside. This can be important for servers and desktops alike, since often misbehaving, poorly written desktop apps can go into a loop condition where they try to take all the CPU, and at that point, it only becomes a question of whether the kernel is willing to let the bad app have what it wants. Under FreeBSD, I've never seen that happen. Again, this is a notorious difference that you've probably heard before. 7. We're starting to get into hairsplitting now, but this is something that always impressed me: FreeBSD has the vidcontrol command. Yes, it's a little thing, but the ramifications are important to me, since I spend a lot of time using TTY mode. If you're mostly an X-Window user, it may not be important to you. Anyway, vidcontrol lets you change the hardware text mode of your video card on a per-tty basis any darn time you like. You can go from the default 80x25 terminal to 132x43, to 80x30, to whatever else your video card's BIOS supports. Yes, Linux lets you choose a hardware text mode from LILO...at bootup. On a real UNIX system, you shouldn't be limited to doing *anything* only on a reboot. Not even piddly things like changing your TTY video mode. 8. FreeBSD has a faster, more intelligent tape driver. I've done remote backups to SCSI DAT tape on both systems, and trust me, if tape backups are of any importance to you...you WANT the FreeBSD SCSI tape interface. Actually, FreeBSD kicks Linux in regard to pretty much anything SCSI-related in general. The scary thing is, Linux kicks Windows in that area. Windows SCSI must be truly evil. 9. On many machines, it's faster than Linux. I know many people have said that it's *always* faster than Linux, but after having compared the two on many computers, I've found that it's a highly, highly hardware dependant thing. You'll never be able to predict in advance whether a particular computer will be more tuned for Linux or FreeBSD unless you try them both on that machine. It seems to be very related to the motherboard more than anything; Asus boards seem to be very friendly to FreeBSD, and often run it faster than Linux running on any kind of board. You'll just have to try them both on any given machine since the quirks that make the difference are usually not anything that can be isolated or identified. 10. FreeBSD has no special OS-specific "gimmicks" for system administration: Processes are signaled with kill. Services are started and shutdown with rc scripts. Packages are installed with pkg_add and removed with pkg_delete, not some rpm nonsense. You get the idea. If you know UNIX, you won't have to additionally learn FreeBSD. FreeBSD is UNIX, and you administer it like you would administer classical UNIX. Often the gimmicks various flavors of UNIX and Linux add to make themselves more "friendly" just make them more confusing and non-standard. Just give me UNIX, and I'll take it from there. Pros for Debian... 1. The number one most advanced technology, in my opinion, that the Debian developers have given to the world is the APT package system. No, it's not based around the compiler like the beautiful FreeBSD ports system is, it's based around pre-compiled binary packages like other Linux distributions. The difference is, unlike RPM and the Windows InstallShield and so many other attempts at managing installed software on various platforms, it actually works. And that's something. No one else has ever been able to do that, to do what normal users expect when they say they want to have the computer handle installation, removal, and upgrade of programs on their machine. No one. Not Windows, not RedHat, not anybody. Everybody's software install management sucks. APT is the only binary package system I've ever seen that does what such a system is supposed to do: It doesn't let you have a dependancy conflict. It fully automates upgrades of apps and OS components, or everything all at once. When you remove things, it will get rid of just the program leaving your configs and data intact, or remove everything, depending on what you want, and knows the difference. When upgrades happen, it leaves your existing configs in place, so you won't have to recreate your environment. It even does some things that are beyond the call of duty and somewhat mind-boggling, that nobody even expects of a package system: It will automate *downgrades*, taking care of all the dependancies as you rollback your system to an earlier version! And it will upgrade programs and even network daemons while they are in use, by doing an amazing script-automated acrobatic juggling feat during the upgrade process to keep daemons in a sane state while the executables underneath of them are being replaced. Though it's not advisable, you can actually do software upgrades on a live server with Debian while the services being affected are in use by multiple remote users! It's, as they say, frigging unbelievable. You can even upgrade the entire X-Window system and the apps you're running on it while you sit in X-Windows and run the apps. You must see it to believe it. Again, I believe APT is the most advanced thing Debian has done for software. This is the reason they've never bowed to pressure to "standardize" and use RPM like all the other Linux distributions, who assume Debian is just being obtuse and arbitrarily uncooperative. It's because the APT system is technically superior, and...let's face it, if you've ever been on non-Linux UNIX systems, you know that RPM isn't really a standard anyway. For that matter, it's not even standard on Linux. 2. Debian gets major kudos from me for being the only major Linux distribution to stick with the original idea of installing a small core system and adding to that as desired, rather than dumping five CD-ROM's full of drivel you may never use or even identify on your hard drive as part of the OS install. Some Linux distributions have even been known to include the Apache web server amongst the spillage. (You always wanted to be a webmaster on a Internet-connected machine without being asked about it, right?) Thank you, thank you, thank you, Debian, for not taking us the way of the fools. 3. Though I know a lot of people here on the FreeBSD newsgroups don't particularly care for the GNU Public License (it's something I can see both ways personally, the BSD versus GPL thing), one must at least appreciate Debian for not being half-hearted about it. When they say GPL, they mean it. You have to wonder about companies like RedHat that sell an "Advanced Server" edition of their operating system for $800USD, amounting to little more than software you could FTP from anywhere and set up yourself with a little UNIX experience. Debian is truly free by the GNU definition, whether you agree with the GNU definition or not. 4. Though the directory layout isn't nearly as orthodox as FreeBSD, it's way more so than other Linux systems. Debian has actually given some considerable thought regarding what goes in each subdirectory of the filesystem, and makes no exceptions for anything to the rules they've established: /var is *always* for anything that can change on a running system. /etc is *always* where all config files end up, and so on. They don't do it exactly like a normal UNIX system, but at least they have a scheme, and that's more than you can say for the chaos you see on most other Linux installations' directory trees. 5. Some of the packaged versions of programs in their distribution are better than the upstream originals. Debian people like to debug programs they aren't even responsible for. It's one of the main reasons their releases take so long, and the software gets so out of date by the time each new version of Debian comes out. They debug everything. They'll debug stuff they didn't even write. They'll delay an OS release until everything runs like it was made by God. It's no wonder their release cycle is so slow. It's actually analogous to what it would be like if we asked Microsoft to delay a new release of Windows until every single major WIN32 app that existed had no important bugs. And they do it every single time they release Debian. On the one hand, it makes their releases way, way more smooth than any other Linux update from anyone I've ever seen. On the other hand, you really have to wonder if anyone has ever suggested to them the fact that they're not responsible for maintaining every piece of UNIX software in the world. Anyway, you often get Debian versions of programs that are way better than they would be seen floating in the wild, as a result of all this work. (On the minus side, sometimes the Debian customizations have been known to complicate programs that are fairly simple anywhere else. Case in point: Psionic Software's 'logcheck'. The Debian version is scary.) 6. If you like games, I've found that OpenGL games like Quake and such tend to work much better on Linux. FreeBSD will run them, but in my experience, not so terribly well, as they're really tweaked for Linux. Point for Debian here, I guess. I actually use a Windows box for games. 7. USB and firewire are far more developed on Linux. In many areas, I prefer Linux's implementation of them to Windows. FreeBSD on the other hand has only the most rudimentary concept of USB, though it is improving. Actually, peripheral support on Linux is more comprehensive overall anyway, since Linux is focused on the desktop where a person might be expected to have all kinds of things plugged into their computer in all sorts of varied ways. FreeBSD is focused on the server closet, and where varied peripheral support exists, it tends to be for things like RAID arrays and WAN cards, and different other sorts of things you might have to define to an average desktop user before you could tell them why they'd want it (or wouldn't). The desktop devices that are supported in FreeBSD tend to be the common ones that many people have a need for, and the drivers for those are excellent. 8. SMP is also more developed on Linux, since the Linux people have put considerable effort into being very advanced on multiple processors. FreeBSD is actually much better at SMP than it's given credit for, and is actually much better at it in the real world than Windows is. But it must be said, Linux still kicks our rears on this one, at least until the new SMP technology in FreeBSD 5.0 gets more sorted out. 9. Linux has ALSA, which no other UNIX type system currently does. Why would this matter to you? Well, if you're not a musician, it probably won't. But OSS sound architecture has been holding back UNIX from moving into the arena of professional grade studio recording apps for some time now, since it was never made for it. Basically, OSS lets you play MP3's, play Quake, have GUI sound events, and other things like that which wouldn't be too much of a hassle for a SoundBlaster card. If you have an RME Hammerfall audio board with some forty-eight 96kHz inputs that you plug into a mixer desk, which is in turn hooked into a bunch of effects processors, synthesizers, guitar processors, drum machines, a miked up drumset, and so on, and expect to record from forty-eight sources at the same time and have audio control over them all at the same time, OSS is going to leave you wanting a bit. Actually, that's just a polite way of saying OSS has the brains of a monkey going to special ed classes for jobs like that. It was a crude attempt at desktop audio for UNIX systems, and Linux has grown beyond it with ALSA. The rest of the UNIX world is still waiting for real audio. 10. It's easier to get questions answered on Debian than any other Open Source system I've been on, due to prevalent documentation on the Web. Yes, I know my FreeBSD brethren are going to scream at me about that one, because FreeBSD always prides itself on the documentation. Well, I must admit, FreeBSD has the best man pages. And it has a great handbook. But if you've ever tried to find information on the Web for FreeBSD, you've probably run into one of the three common scenarios: 1. You find a link to something that describes your problem exactly...but it's in Russian or Japanese. I know one of the interesting aspects of FreeBSD culture is the way it's really taken off in the former U.S.S.R. countries and the Far East, and that's fascinating. But sometimes...usually, it'd be nice to get some help in English. I often see Debian help on the Web in any of dozens of different languages all the time, not just Russian and Japanese. 2. You find an article on Geocrawler's FreeBSD knowledge base where somebody has asked the exact question you're asking...and it has no follow-ups. Nobody answers. I know that happens in knowledge base forums for everything, even Windows software, but it seems epidemically common on GeoCrawler regarding FreeBSD. 3. You ask a question on Usenet, and the opposite happens: Nine people answer, each with different *wrong* answers. Eventually, a tenth person will answer who knows what he's talking about. Usually getting the right answer on Usenet with FreeBSD just involves following the replies to your question for enough days to wait for the real guru to come along. It normally doesn't happen until six or seven other people who really don't know have already answered. This doesn't seem to be so much the norm on Debian forums, where information seems to circulate a little more accurately. 11. Security updates on Debian are just plain easy. I know it's almost tradition in UNIX circles to say that if you can't do something the manual way, you're not a real UNIX user. Well, that tradition got its roots in the fact that usually doing something the manual way gives you more power and control. But for security updates, what power and control are you seeking by making it harder than it has to be? Let's face it, you're applying a patch from your OS or application developer to fix an exploit. Patches are a fairly simple concept. Debian seems to have figured that out, and using their APT package system, applying security fixes is something a monkey could do. That's really the way it should be. Is security really something we should be obfuscating? Anyway, that's my comparison of Debian and FreeBSD. I love them both, and run them both, and have flip-flopped my server between the two of them twice trying to make up my mind. I finally settled on FreeBSD, but it wasn't an easy choice. In my opinion, these are two of the best offerings in the Open Source world, with NetBSD being the third not looked at here. It's also worth checking out as well, especially if you think you might want to run on big iron hardware like DEC Alpha, Sparc, or something like that, which NetBSD is very good at. -Brent -- |-+{ Brent A. Busby } +-| "Imagine running a dog mind at very high | |-+ b...@catmind.org |-| speed. Would a thousand years of doggy | |-+ Normal, IL (USA) |-| living add up to any human insight?" | |-* FreeBSD UNIX 4.7.0 *-| --Vernor Vinge, 1993 | ©2006 Google