18 ms·
Ask HN: I'm a Linux guy. Tell me about all those BSDs
I use Linux and I have for nearly all of my teenage and adult life. I had a short foray into Solaris; ZFS was nice, and so were the raid tools. Otherwise I found it to be rather tedious.
Tell me, why would I ever want to use one of those BSDs over Linux of some sort? What's the allure?
- Desireco 16y agoI have wondered the same thing, can't wait to hear what others will say
- fjarlq 16y agoI've used FreeBSD continuously (as a server, no GUI) since 1995, with some Linux use here and there, and I find myself leaning toward Linux lately, mainly because Ubuntu has done a lot of great work recently to support Amazon EC2. FreeBSD has fallen behind on Amazon EC2 support for some reason. I was initially attracted to FreeBSD because I had first learned Unix on a BSD system in the late 80s, and the more restrictive licensing terms of Linux made it difficult for my company to use it. So unless you have a specific need like ZFS or liberal licensing terms, I can't think of a reason for a long-time user of Linux to switch to FreeBSD. Similarly, unless you have a specific need like Amazon EC2, I can't think of a compelling reason for a long-time FreeBSD user to switch to Linux. Both are good, solid systems with some minor individual strengths and weaknesses.
- danielrhodes 16y agoI think FreeBSD boxes are generally used as perimeter boxes by most sys admins because of their reliability, therefore compatibility with virtualized environments is not a priority.
- sophacles 16y agoWe once had some sort of explosion regarding mail-servers at a company I worked for. I have no idea, what the actual problem was, other than too much incoming mail combined with some settings goof. The mail server software ended up eating memory and cpu cycles like crazy. This was on a FreeBSD box. I remember the sysadmin saying "You know, linux would have just OOM-killed it at this point, but its a BSD box so it's doing the right damn thing". Ever since then I've carried around this idea that BSD is stable to a fault :)
- carson 16y agoNow that EC2 has support for PV-Grub you can almost run FreeBSD there. It would seem the insistence of FreeBSD to be booted from the loader is going to make it hard to run there.
- 126 16y agoThe FreeBSD Portage System kept me there, until ubuntu did something similar, then the community got bigger and faster, then the portage feature + the community was better... so I stayed with ubuntu. Plus, FreeBSD is an ex-girlfriend type operating system now. Sure, you could go back and teach it... but... (I too used FreeBSD since the '90s, for whatever it's worth. Still love it, but cannot justify keeping it foremost. Besides, I use Mac OS X also, so yes, I still use FreeBSD)
- caf 16y agoDon't tell your current girlfriend that you still love your ex, though ;)
- zacharypinter 16y agoHere's to hoping cperciva comments.
- cperciva 16y agoAsk and ye shall receive. :-)
- bleepster 16y agoreading this [http://www.over-yonder.net/~fullermd/rants/bsd4linux/bsd4linux1.php http://www.over-yonder.net/~fullermd/rants/bsd4linux/bsd4lin...] might give you a good understanding of *BSDs -- written specifically for linux users ;)
- Andys 16y agoThey have a different development model which is not as Linus-centric. The user-land and kernel ship together as a more tightly integrated package. In terms of performance, I found that the linux kernel is often optimised for bandwidth at the expense of latency. eg#1, When the system is under heavy memory pressure, Linux tends to grind to a halt and start killing processes randomly, where FreeBSD responds more gracefully. eg #2, In highly-threaded environments (eg, 32 or more cores), Linux doesn't really work very well unless you pin processes to specific CPU cores. In fairness, BSD doesn't perform much better, but at least avoids pathological cases.
- Andys 16y agops. I should add that I really don't use BSD much anymore. The reason is that ease of administration and wider driver support is more important to me than purity of development, and neatness of the user-land. For that reason I'm using Ubuntu Server for many roles now.
- beej71 16y agoWasn't BSD originally just another Linux fork? I'm kidding. The cathedral nature of BSD likely gives it a security edge.
- deleted 16y ago[deleted]
- kljensen 16y agoThe BSDs always feel beautiful to me. (I'm a mixed GNU/Linux, FreeBSD, Mac OSX user. ) The kernel configuration feels more simple and the official documentation feels uniform, informative, and almost always sufficient. If more virtualized hosting providers offered BSDs (FreeBSD in particular) I would choose them over Ubuntu for servers.
- a2tech 16y agoI had the same dilemma when looking for virutal hosting-I ended up at rootbsd.net because running FreeBSD was important to me. Not as cheap/featureful as linode, but its good enough for rsync.net its good enough for me.
- avar 16y agoYou can run FreeBSD on Linode as of FreeBSD 8.*. It can run in domU now.
- lsc 16y agois this true? hot damn, I am behind the times. do you know if it's the paravirtualized kernel? last I checked it wasn't particularly stable... but damn. I don't see it in their 'distro manager' thing
- a2tech 16y agoI emailed them about it after 8 was released-they have a 'non supported install method' for OpenBSD that a forum member wrote. They told me it SHOULD work for FreeBSD, but they're currently not devoting any resources to figuring out how to make it go
- deleted 16y ago[deleted]
- lsc 16y agohuh. the paravirt OpenBSD stuff is pretty old and dead (Theo, uh, is obviously not a fan of virtualization) I'd be interested to hear if anyone has gotten FreeBSD running on linode or another paravirt xen host, though.
- may 16y agoI used to play the "what distro are we running this week" game. Most were too big, others too small. Some had great communities, but lacked a killer feature. Etc. etc. Then I found FreeBSD. The learning curve was steeper, you had to know more about how things actually worked under the hood (a plus, in my book) and the system was elegantly clunky. A cohesive whole -- more or less -- instead of endless re-packaging of the same things. I do a minimum install, then build my system up from the ports system. (Ports is like apt-get, pacman, other package management systems. Compiling from source can be a bitch, but only for big things -- Emacs, X11, Firefox etc. but it allows unparalleled customization, or at least the option for it.) Installing binaries is also an option if you don't want to compile. It has had every piece of software I've ever needed (minus http://joey.kitenet.net/code/mr/ http://joey.kitenet.net/code/mr/) already in ports. I even recompiled my first kernel within three days of starting out (thanks to Absolute FreeBSD, by Michael W. Lucas), something that seemed a dark art on GNU/Linux. I've had no stability problems in the last year or so, and I just upgraded from 8.0 to 8.1 smoothly. Everything important on my laptop is supported. If I want shiny stuff like webcam, usb auto-mounting, all that, I reboot into Ubuntu. Not because FreeBSD can't (I'm mostly assuming), but because this is my dev box and I'm not supposed to be doing anything shiny or distracting on here, hehe. In short, think of an older truck with a manual transmission -- it's dependable, gets you there and back with minimum of frills and you can tinker rather than a new SUV with bells and whistles. While FreeBSD is more angled towards servers, I love it as a desktop OS -- at least for coding and light web browsing. And it's a single community, without the balkanization of GNU/Linux.
- timtadh 16y agoreally usb auto-mounting is shiny? that shit should just work.
- may 16y agoWell, I meant in terms of "plug it in and it appears on your desktop". When I'm coding, I don't have a desktop, nor any wish for one. All I do on this box -- by design -- is code and spend too much time on e-mail/HN/reddit/etc. If I need to work with a digital camera or a flash drive, I just reboot into Ubuntu and do it quickly there. FreeBSD is strictly for work (in theory). I've only mounted stuff under FreeBSD maybe once in the past year or two, so it isn't even on the list for me. So, from my point of view as a software developer who lives in Firefox and Emacs, it's shiny. Others differ. But for me, it's not required, at all.
- cperciva 16y ago(Speaking as a FreeBSDer here -- I'll let NetBSD and OpenBSD folks cover those, since I don't follow them closely enough to offer accurate comments.) 1. We don't let licenses get in the way of making good technical decisions. This means that, for example, we had no problem with importing DTrace and ZFS. 2. We have more of an emphasis on doing things right. This often means that it takes longer before we acquire new features; but it means that once we acquire new features, they work and aren't likely to be removed or completely rewritten any time soon. 3. We develop the kernel and userland in tandem. This allows new features in the kernel to be accessed from userland faster (usually immediately) whereas in Linux there will often be a significant lag time before your libc supports everything in your new kernel. 4. We have stable development branches, and we're serious about them. Not "stable" in the linux kernel sense of "we think this won't crash" -- stable in the sense of APIs and ABIs, so that code you compile on FreeBSD 8.0 will work without recompiling on FreeBSD 8.4 five years later. 5. Our stable branches apply to the kernel, too. You can compile a kernel module for FreeBSD 8.0 and use it on later versions of FreeBSD 8.x, too -- linux, in contrast, has on occasion broken kernel ABI compatibility in security patches. ("Gee, do I want to apply this security patch, or do I want to keep using the video card driver supplied by my vendor?") 6. Personally I greatly prefer the FreeBSD ports tree over the linux equivalents, but that's just a matter of taste and what you're used to.
- tedunangst 16y agoMost of that applies to OpenBSD as well, except we did let licenses stand in the way of importing DTrace and ZFS.
- konad 16y agoAnd the Plan9 compilers, the OpenSD team wanted to lose GCC and were considering the plan9 toolchain. Turning Plan 9 from open source into Free had plenty of teething troubles, getting the lawyers from Bell-Labs then Lucent then Lucent-Alcatel into the idea took years. Originally Plan 9 was paid for software with full source included. Then from v.3 it was a free download but with its own license which included a "if you make modifications you must send your changes back to Lucent". Then it was lobbied for change and to comply with US munitions law Lucent included the export restrictions proviso OpenBSD's Theo so eloquently argues against : http://groups.google.com/group/comp.os.plan9/browse_thread/thread/d23e576bf06efdfb/84670c239a7f3684 http://groups.google.com/group/comp.os.plan9/browse_thread/t... Ironically the compiler suite became available under GPL / MIT via Vita-Nuova who bought the rights to Inferno. Licensing helped keep Plan9 away from developers at exactly the same time GNU/Linux and OSS exploded on to the scene in much the same way early adopters got interested in GNU/Linux it during the BSD / AT&T lawsuit. How our computing landscape would be different if we all valued freedom.
- alec 16y agoI used FreeBSD and OpenBSD for a while, and what drove me back to GNU/Linux was package management. OpenBSD was OK at it even if it had a limited selection, but I never had much luck with FreeBSD ports. Having a nice, stable base system wasn't very useful when ports were always being updated to the latest version; if I wanted a security fix, I had to take all the feature changes and new bugs, too. I tried a bunch of different port upgrading scripts but they always seemed to miss something. And upgrading ports took a long time; I want to be using my computer, not having my work interrupted by compiling in the background and occasional troubleshooting. I have high hopes for Debian GNU/kFreeBSD - the FreeBSD kernel with the Debian package management.
- jacktang 16y agoFirst time hear DNU/kFreeBSD, I have been used Debian for some years, and will try kFreeBSD later
- silentbicycle 16y agoWhile I'm not as up on FreeBSD, OpenBSD's package management has really improved over a year or so ago - I run snapshots on my desktop, updating the whole shebang every week or two, and "sudo pkg_add -ui -F update -F updatedepends" just updates everything* via binary packages. It updates as smoothly as Debian. Also, in 7 years, I've never had package updates break things on OpenBSD (aside from config file formats changing or postgres database transfers, with warnings at update). That happened to me a couple times with Debian (around woody). * except for my ports that haven't made it upstream yet.
- sigil 16y agoBinary package management in FreeBSD isn't well-advertised, but it's definitely there: # portupgrade -rvP --batch foo-1.2.3 This will upgrade installed package foo and anything that depends on it using binary packages from the mirror site, falling back on a build from source. Installing a new binary package: # portupgrade -vNP bar/baz If you're using portaudit to stay on top of vulnerabilities (it's part of the default install these days), here's a nice way to upgrade everything: # portaudit -a | sed -ne 's/^Affected package: //p' | sort -u | \ xargs portupgrade -rvP --batch I'm like you, for some vulnerabilities I don't want to upgrade a ton of stuff. FreeBSD is perfect for this though, you can just pop into the port directory, "make extract," apply the patch, and "make reinstall." You can avoid full rebuilds by always passing "-W" to portupgrade whenever you install / upgrade stuff.
- strlen 16y agoTo add to what cperciva said, there's also the difference between the base system (/bin and /usr) and the ports subsystem (/usr/local). Most user space software is in /usr/local, which makes is convenient in that you could always solve nasty library/installation problems by removing /usr/local and starting from scratch. The whole of userland and the kernel can also be built with a single command ("make world"). The code is often beautiful and easy to read (my alma mater taught a graduate OS Case Study class where the textbook was "Design and Implementation of FreeBSD" and assignments involved fixing bugs in the FreeBSD kernel) and you get a chance to play with some interesting things (DTrace and ZFS). It really depends on what you're looking for. If you're going to deploy a production web app it may or may not be the best choice (I honestly don't see a big advantage). FreeBSD once used to be lauded for network performance and while it's still excellent, Linux has caught up. Depending on what you're doing e.g., a distributed storage or processing cluster, it may well be worse than Linux (but again, benchmark and stability test it yourself before taking my word for it). If you're curious about operating systems (or are interesting in building your own custom OS without licensing issues e.g., what Juniper did with JunOS), it's perfect.
- dashr 16y agoBecause it just works. Uptimes are counted in years. Low loads. Great memory management. Ports are compiled for your system from source pretty easily. It always seems able to stretch your hardware's potential. I'd never use it for a Desktop, but as a server, and a dev server especially, it rocks.
- CyberFonic 16y agoIf you are using an Apple Mac, then you are using BSD (with bits of Mach and a sprinkling of Apple fairy dust) ! I'm over simplifying, but with Linux or BSD it's really only about the kernel. They both use the same collection of GNU tools and open sourced programs like FireFox, Python, etc. Package management is more a distro issue, than a Linux vs. BSD issue. If you want to customize your kernel for a specific server configuration, then one of the BSD's might be more optimal. However, if you just want something that works with most devices, especially notebooks, then Linux has a larger collection of drivers.
- spudlyo 16y agoThey both use the same collection of GNU tools and open sourced programs like FireFox, Python, etc. This is incorrect. BSD systems for the most part eschew GNU tools. You will find many annoying differences in programs you take for granted like find, xargs, ps, top, etc.
- fs111 16y agoThe apple statement is not true: http://events.ccc.de/congress/2007/Fahrplan/events/2303.en.html http://events.ccc.de/congress/2007/Fahrplan/events/2303.en.h... http://vimeo.com/6955695 http://vimeo.com/6955695
- mkramlich 16y agoFirst of all, they only happen on Windows boxes and...
- ax0n 16y agoDie hard OpenBSD fan. ( http://www.flickr.com/photos/kc-bike/2894306940/ http://www.flickr.com/photos/kc-bike/2894306940/ ) The primary functional differences are a more mature code base (I didn't say more technically advanced or superior) and in general a unified system. What most people have come to know as "Linux" or "GNU/Linux" is a kernel mashed together with the GNU userland. And most distributions then further pile things onto it, kind of assuming they know what kinds of things the end-user will want to do, and picking a few applications that will help the end-user accomplish those tasks. Maybe it's Gnome, OpenOffice, Firefox and Pidgin. The BSDs provide a system. The kernel and userland are maintained and enhanced by the same group of people. There's a bit more control in what's provided in the base system. After installing Free/Net/OpenBSD Users are generally left with a text-mode login console where a small subset of non-BSD-based things are installed but often not active. X.Org may be ready to go, as may Apache, lynx and some others. In the case of OpenBSD, these tools are often patched considerably before packaged with the base OS. Want something other than twm for your Window Manager? Want a graphical web browser? An office productivity suite? You can install them easily via binary packages, or use the ports system. If you've used Gentoo or Arch Linux, you will probably find that the ports system (/usr/ports/* if you installed it) is familiar. I use OpenBSD quite a bit, even on the desktop. It's fast, free, and very robust. It's also probably the most strictly audited operating system code base in existence. Those guys (like me) are pedantic when it comes to security. I highly suggest you fire up one of them (OpenBSD or FreeBSD, I'd suggest) in a VM and give it a shot. VirtualBox is free. NetBSD is primarily geared toward maximum portability between hardware platforms. I personally think that's the only thing it's got over OpenBSD. I used to be a FreeBSD fan before 5.x. The team had a really rough time after Jordan left for Apple. I became disenchanted and haven't really given it the time of day for almost a decade now. It's probably a fine OS.
- sliverstorm 16y agoAs a Linux user, OpenBSD feels to me like using my father's old tools. They are old, have some funny practices, and aren't always pretty, but they are phenomenally functional, simple, fantastic at what they do, and when used properly virtually impossible to break. Similarly, OpenBSD is sometimes trailing in features, and as a desktop with a pretty UI and all the most recent packages, it did very poorly. But as a server, IMHO it is fantastic. To give you an idea of the beautiful simplicity; the OpenBSD install environment is... a kernel. You download a kernel that's a couple of megabytes, boot it as if it was any other kernel, it asks you for your install source, and then continues with other questions. That's it.
- cicis 16y agoPeople always like celebrities, but I think those in uniform deserve more respect. '' They defend our country and safeguard our policy. '' ' ___________M i l i t a r y f l i r t s * c -0- m ____________ '' '' show your love and respect to our military heroes. ..... , . - . - , _ , ..... ..... ) ` - . .> ' `( ..... ..... / . . . .` . . ..... ..... |. . . . . |. . .| ..... ..... . . . ./ . ./ ..... ..... `=) /.=` ..... ..... `-;`.-' ..... ..... `)| ... , ..... ..... || _.-'| ..... ..... ,_|| _,/ ..... ..... , ..... || .' ..... ..... | | ,. ||/ ..... .... ,..` | /|.,|Y, ..... ..... '-...'-._..||/ ..... ..... >_.-`Y| ..... ..... ,_|| ..... ..... || ..... ..... || ..... ..... || ..... ..... |/ .....
- trunk 16y agoand if it comes to HPC, the world tends to think it's a Linux box, while we still have this ( http://people.freebsd.org/~brooks/papers/bsdcon2003/ http://people.freebsd.org/~brooks/papers/bsdcon2003/ )
- rythie 16y agoThat's 7 years old! I'm not sure it helped make your point.
- silentbicycle 16y agoI've been using OpenBSD for several years (since 3.4...wow, that's almost seven years), as my primary OS. I had been running Debian for 2~3 years, and Red Hat (briefly, ick) before that. A lot has been covered already, but: 1. The BSDs feel significantly more cohesive to me. Other people have mentioned this, but it deserves greater emphasis. The config files, man pages, etc. are quite a bit more consistent, and my first guess about where something is located is nearly always right. Red Hat, in particular, seemed to cavalierly scatter things in /usr/bin, /usr/local/bin, /usr/local/sbin, etc. (Around 7.0, IIRC.) The man pages & other docs are consistently excellent, for everything from malloc to spamd, it's a cleanly and consistently designed system for learning Unix / system administration. 2. OpenBSD has a focus on security. While this isn't my top priority, personally, I really like its secondary effects - it tends towards minimalism, so there are less dusty corners to harbor exploitable bugs, and they pass security patches upstream. OpenBSD's malloc (http://www.openbsd.org/cgi-bin/man.cgi?query=malloc http://www.openbsd.org/cgi-bin/man.cgi?query=malloc) can also be configured for very aggressive scrutiny. Not quite the same as running everything under valgrind, but it has also much less overhead since it's better integrated. If you're working in C, it's a great platform. 3. I can install and configure an OpenBSD system in under ten minutes, easy. Its installer is spartan and based on text prompts. Once you know what to expect, it's a snap. Also, they put all recognized drivers in the kernel (ostensibly since debugging weird custom-kernel issues would be tough with a smaller community) - if the dmesg doesn't say "... - not recognized" at boot, you're usually set. No rebuilding kernels or modules just to get things working. I haven't dealt with much really weird hardware, but any random crappy old x86/amd stuff has worked fine. (Cheap old Thinkpads run BSD brilliantly, by the way. I'm typing this on a T41.) 4. The BSDs have less GNU stuff in the userland. This is probably a matter of taste, but a lot of the GNU stuff seems really bloated by comparison - gmake vs. BSD make, gawk vs. awk, etc. (That said, I'm also an Emacs user. :) ) The BSDs also seem less political. It isn't Linux or GNU/Linux, it's just BSD. 5. I really like source / ports-tree-based packaging. You can still use binary packages (especially if you're installing KDE, doing that from source is just silly), but ports+flavors works quite well. Some Linux distros (Arch and Gentoo) have similar packaging systems, now. Of course, some programs are hard to bootstrap - GHC, in particular, has lagged behind. I've only used FreeBSD a bit here and there, but it also seems like an extremely solid OS, and most of the same advantages apply. It doesn't have as much focus on security, but its community is much larger, and it's probably more newbie-friendly.
- dschobel 16y agoI've been using FreeBSD since the 8.1 release a few weeks back and as my first *BSD experience it is fantastic. The only thing which will keep me from committing to it is the absence of a stable and/or official version of Google Chrome (the only freebsd versions of Chromium I've found have been very much alpha software). I (like a lot of people I suppose) spend too much time in my browser to have this be a negotiable point. I have been very much impressed by the cohesiveness of the platform (akin to what Ubuntu has achieved on the linux side) and the documentation is fantastic so if you're a FF user anyway, go for it.
- Lammy 16y agoI'm using the official port right now with no trouble: http://www.freebsd.org/cgi/query-pr.cgi?pr=146302 http://www.freebsd.org/cgi/query-pr.cgi?pr=146302 It's not in the tree yet due to some licensing problems that need to be sorted out. The newest shar file as of this writing is here: http://chromium.hybridsource.org/chromium-stable-125.shar.txt http://chromium.hybridsource.org/chromium-stable-125.shar.tx...
- dschobel 16y agoThank you, I'll check it out.
- sigil 16y agoI've been using FreeBSD and Linux side by side for about 10 years. FreeBSD appeals strongly to the developer side of me: a typical install puts the complete kernel source code in /usr/src, includes a compiler and other build tools, section 3 man pages, and Makefiles for 20,000+ software packages (the ports system). On Debian-based systems at least, these are things I have to ask for later, and there always seems to be a bit more struggle involved in any given developer setup...it's almost like there's a velvet rope separating users from developers. Maybe other developer-centric Linux distros have caught up in certain ways; I'm actually quite interested in hearing more about them. With FreeBSD though, the low barrier to development has always been there, and when you dig deeper, you'll start to feel like part of a great tradition.
- caf 16y agoI quite like Debian for development - when installing a new system there's a slew of packages I always add (eg "manpages-dev"), and after that it's plain sailing.
- kunley 16y agoI work on both BSDs and Linux boxes and this fact struck me recently: for i in /bin /usr/bin /usr/local/bin; do ls $i|wc -l; done Linux: 124 2155 67 FreeBSD: 44 430 1067 On BSD, you clearly see which programs are essential for your system to be up & well, which are service additions and which are 3rd party stuff (yeah I missed sbin but you see the picture). On Linux there's a big bag of /usr/bin and a beginner can have no clue if some stuff is important or not. And the sources. On BSD, sources of kernel all system programs are at your disposal in /usr/src and that's it; they represent a coherent view of what meat you have running. On Linux of course you can download the sources and most probably your distro will help you with obtaining the right version. But it isn't the same when you hit the problems, esp. on production. Well even without the need of fixing anything or tracking problems, the sources serve a great educational value with an immediate availability. In general, the BSD approach seems to come from a longer experience of establishing best practices. I'd say the principle is the same with Linux and BSD, but the devil (pun intended) is in the details, and BSD details look as better engineered for many. [edited for clarity]
- rubashov 16y agoThat's a distro thing. A slackware or debian setup will not have much superfluous stuff installed.
- kunley 16y agoThe Linux numbers were actually taken from Debian. On both families of systems you can decide what to rule out and this is healthy thing to do. But, you know, there's still a difference in thinking. On BSD I'm sure what constitutes a core system and what belongs to the ports -- and that's what I was writing about, not the sum of programs installed but splitting them into sub-hierarchies in a sane way. Such distinction provides a subtle kind of hygiene which occasionally can be a savior. But yeah well it can be appreciated when you just use it for a while.
- vegai 16y agoArch Linux: 87 845 0 That's installed as a desktop about a month ago, with all the basic stuff I need installed.
- jtchang 16y agoMy first unix like system was FreeBSD. I then moved to Linux because it is more widely used and supported. I still have a sweet spot though for FreeBSD. The main reason is that they have figured out the perfect balance of how much to include without being overwhelming. It is also a great learning system because FreeBSD forces you to understand all the pieces of *nix.
- grammaton 16y agoPut simply, it's more integrated and unified than most Linux distributions. Instead of packaging this thing from here, that thing from over there, and ramming in this new toy from that place there, everything in each release - tools, userland, ports, kernel - moves in lockstep. The result is an OS that's very consistent once you figure out how it does things, and rock solid stable. It takes a bit more tweaking to get, say, your compositing window manager running - but once you do, you can be guaranteed it will keep running - even when you change or upgrade other things - with all the stupid consistency of a rotating planet unless you screw up and do something very bad. Also, in my experience, it's much more customizable than Linux. The kernel sources are included in the distribution, right there for the building, and the process of configuring and making your own kernel is fairly straightforward, even easy. Contrast with the closest thing I've seen on Linux, Gentoo - which is significantly more involved. That may seem like an obscure point, but if someone walked up to me and told me I needed to put a *nix on a server tomorrow and strip it down to get every last iota of performance out of that server, FreeBSD would be the first thing I reached for.
- 16s 16y agoI like OpenBSD the best of them all. The project has principles and they stick to them. It is simple and understandable and people like Stuart Henderson are very helpful with ports and new developers. It's a much smaller and friendly project than you may believe. Theo and Ted and Marco and OGA and all the other devs are great and they are all very open about everything they do. I only have one majpr concern with OpenBSD: * Multiple CPUs/Cores With the lateral move by Intel and AMD to more and more cores rather than more hertz the future of CPU processing seems very clear. The problem is that OpenBSD has primitive SMP support, and is nowhere near FreeBSD or Linux. It's hard to find single core servers these days and in a few years, 12 or 16 cores will probably be entry level and 48 to 64 will be common... maybe more. In short, I hope OpenBSD can keep up with multiple CPUs/cores. Otherwise it will seem just wrong to load it on new servers. If they do not keep up, I would still buy the CDs to support the project and its many side projects (OpenSSH, OpenBGP, OpenNTP, the new smtp system, etc.). Even if you, as a Unix user absolutely hate OpenBSD for whatever reason, you should still buy the CDs to support OpenSSH.
- 404error 16y agoI miss TechTV. This question reminded me of this episode. Pt. 1 http://www.youtube.com/watch?v=91igg2UX7o8 http://www.youtube.com/watch?v=91igg2UX7o8 Pt. 2 http://www.youtube.com/watch?v=oU88fQkwfws http://www.youtube.com/watch?v=oU88fQkwfws
- bl4k 16y agoI have been an OpenBSD and FreeBSD user, as well as minor contributor, since the mid-90s. All the answers here are good, and I would like to add: * FreeBSD is on the cutting edge of performance. Because it is a total OS (as opposed to just a kernel), performance improvements are made and integrated into the binary packages and ports build options of common packages. FreeBSD was one of the first operating systems to implement kqueue, which is now available on OS X. This was part of the reason why for years FreeBSD dominated high-performance web serving. If you asked this question 5-10 years ago, the answer would simply be 'FreeBSD performs a lot better than Linux with web serving', but that is not as true today since Linux has caught up in the 2.6.x branch (with epoll). For more info see the classic: http://www.kegel.com/c10k.html http://www.kegel.com/c10k.html The good servers like nginx and varnish take advantage of these performance benefits that FreeBSD offers. (there was a similar system here with the virtual memory manager, while the Linux kernel struggled with this issue ~01-02 FreeBSD was miles ahead). FreeBSD is the starting and development point for a lot of new technologies. 2. Everything is done the BSD way, from directory layout to the rc.x startup system. It is the same and uniform and integrated with the kernel and doesn't vary across releases. There is a single reference handbook, and POSIX compliance. I have always preferred the BSD way of file system layout, and that is what I have become accustomed to. (ie. /usr/local/ really is usr local). 3. The BSD's are a monolithic kernel (which Linux is today, mostly, if you choose to) which has performance implications. FreeBSD support kernel modules, but the monolithic approach is preferred. It is very easy to build your own custom kernel (I suggest you do for servers) and the defaults are include nothing and build what you need from there, which provides a very small, fast and optimized kernel image. Linux distributions tend to take a 'kitchen sink' approach, since they are aimed at people who don't want to compile and load a kernel module for device XYZ. FreeBSD places the onus on the user to know what they are doing - which forces you to understand the internals of the operating system and how it works. Linux usually has different distributions depending on the target, but FreeBSD is flexible enough to only have a single distro that can be customized from a 20MB install image through to a desktop system that will support your Chinese webcam when plugged in. It can do this without compromising on performance or bloat. I suggest you start FreeBSD with the minimal binary install plus the ports tree (the ISO is 50MB, install is about that). 4. You can take this one 'distro' and way of doing things across a multitude of architectures. 5. jemalloc - a virtual memory manager for parallel processing that outperforms Linux, see: http://people.freebsd.org/~kris/scaling/7.0%20Preview.pdf http://people.freebsd.org/~kris/scaling/7.0%20Preview.pdf 6. The GCC compiler and toolchain are steadily being replaced by the less bloated and much faster Clang/LLVM which are part of Xcode and BSD licensed. It allows much better IDE integration, is modular and a lot lot faster than GCC. Clang/LLVM are already at the point now where they can compile all of FreeBSD 7. The TrustedBSD event auditing, ACL, stack protection, other security features and OpenBSM make FreeBSD orange book compliant in terms of security. OS X also has this (it is the same security model). This is important if you are in a corporate environment and need to stamp some certifications or meet compliance regulations with the systems you choose. 8. Zen and VMWare virtualization support available in kernel. Virtualization support is very good in Linux, but the virtualization providers have been supporting FreeBSD for a while now, and have hired core team members to develop software. EC2 needs better support, but I am sure it is coming. 9. Linux has abandoned the development branch approach (ie. 2.7.x) and instead trails along 2.6 releases with releases candidates. With FreeBSD you can be assured that STABLE is stable and CURRENT is current. Releases are taken very seriously, as can be seen by FreeBSD 5 (one of the best OS releases every, IMO) took years to finalize. Point releases are binary and API compatible with .0 releases (ie. 5.5 binaries are guaranteed to run on 5.0) 10. You have linux binary compatibility anyway, at near-zero cost. 11. A more liberal license to use in commercial environments (ie. if you sell a firewall, or an embedded device, no need to release your own code - Apple have done this spectacularly). 12. ZFS (works) 13. Excellent handbook that encompasses the entire operating system: http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ 14. Average knowledge of a FreeBSD/OpenBSD community member is higher than Linux (personal experience) and since there is usually only one way of doing things, you will find consistant answers and advice on your questions or issues across the web. 15. FreeBSD hasn't had a default install, STABLE security advisory in ~10 years. In conclusion, if you like to know what is actually happening on your server or machine so that you can tweak, optimize and better understand performance and other issues, BSD will almost force you into understanding it. If you are running linux and just downloading and installing binary packages, you are simply unaware of what is happening on your system (no different to running Windows, really). BSD will teach you the old school UNIX way of doing things, is consistant throughout and through just using it it will teach you a lot more about your system and operating systems in general than Linux.
- Daniel42 16y agoI love OpenBSD's philosophy and documentation and enjoyed testing FreeBSD but I always return to Arch for my desktop and laptop and Debian for my servers. Except for two project that are on my todo list for years but never been completed: a router firewall using OpenBSD (with the wonderful PF) and a NTP server using FreeBSD and a GPS with time pulse signal. I hope someday I will give them the time because I feel that I could have a lot of fun with that.
- tzs 16y agoOne nice thing about the BSDs is that their users don't get annoying things like this when they look for basic manual pages: The GNU folks, in general, abhor man pages, and create info documents instead. The maintainer of tar falls into this category. This man page is neither complete, nor current, and was included in the Debian Linux packaging of tar entirely to reduce the frequency with which the lack of a man page gets reported as a bug in our defect tracking system. If you really want to understand tar, then you should run info and read the tar info pages, or use the info mode in emacs. Problems with this man page should be files as bugs against the Debian tar package, not submitted to the tar maintainers. There is a fair amount of truth in the old joke that BSD is for people that love Unix, and Linux is for people that hate Microsoft. As the name says, GNU is not Unix, and that shows through in most Linux distributions.
- rbanffy 16y ago> There is a fair amount of truth in the old joke that BSD is for people that love Unix, and Linux is for people that hate Microsoft Curious... I always thought BSD was for people who hate GNU, Linux, the GPL... ;-) The wise route out of this problem is to create an info2man utility that converts info pages into man pages. Can't be that hard, can it? And, once you learn your way around it, info is much nicer than man. It's sily to hang on to 60's tech when there is 70's tech available.
- avar 16y agoIt already exists: http://packages.qa.debian.org/i/info2man.html http://packages.qa.debian.org/i/info2man.html It's odd that Debian doesn't simply use it instead of creating their own bastardized manpages of GNU programs.
- rbanffy 16y agoLike I said, why keep using 60's tech when there is 70's tech available? A man2info tool and linking man to info would solve the problem just fine.
- jacquesm 16y agoMy main reason for no longer running FreeBSD (which we used for quite a few years) is that since I've switched my desktop environment to Linux I got caught time and again by small differences between the servers running FreeBSD and my dev box. So I switched everything over to Debian or debian derived distros. Ubuntu notebook remix for the laptop, Kubuntu for the desktop and straight debian on the servers. Other than that, my experience with FreeBSD is that it was absolutely rock solid and bullet proof, uptimes of many years with machines pumping out data at a pretty decent clip for the time we're talking about. *BSD is not always as fast with supporting the latest hardware or adding a new feature or technology but what's done stays done. Linux tends to yoyo for a bit before settling.
- RexRollman 16y agoIn my opinion, operationally speaking, there really isn't a lot of difference these days between Linux and BSD. Personally, I like both OpenBSD and Arch Linux.
- malabar 16y agoPlain and simple, FreeBSD is the horniest OS around.
- masomenos 16y agoDoesn't look like anyone's mentioned another unique feature of a BSD: every OpenBSD release comes on a CD with funky artwork, stickers, and an original song. See http://openbsd.org/art1.html http://openbsd.org/art1.html and http://openbsd.org/lyrics.html http://openbsd.org/lyrics.html for more.
- novel 16y agoI have an impression that FreeBSD are being strongly supplanted by Linux in these days of virtualization. There were times where jails ruled the parties, but now these days are over and Linux has a number of great virtualization solutions like KVM or Xen while there is no much progress on jails. Also, for some reason it's not very popular in enterprise despite of API and ABI stability, i.e. one could hardly find enterprise products like e.g. IBM WebSphere available on FreeBSD. One probably could use Linux ABI support but I'm not sure how reasonable that is. I used to work at ISPs few years back and FreeBSD was very popular in this circles. At one place we had FreeBSD running on absolutely all servers and in other one we had only one RHEL box which was a requirement for some VoIP billing. About two years ago I moved to a software development organization which is quite close to enterprise and virtualization and I've seen 'live' FreeBSD only once and the folks are going to migrate to Linux in the near future (I don't know what their reasons are though). And that's quite sad because I really like FreeBSD.