Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This is great to hear. I'm a huge fan of the BSD OS's, but it's been concerning that lately FBSD seemed to be falling out of favor. Unfortunately, many 'unix' people these days have only ever worked with Linux distros. While the distro model does provide a novel approach to packaging an OS that has it's strengths, there are some downsides. I love Linux for the suppor, the rapid release cycles, and the many different approaches to things(e.g. init systems). However, sometimes I have a project that requires an OS that just works as cohesive product(eg. file server or network appliance) and FreeBSD typically fits that bill for me. The support is much more limited, but the things it does support are almost always rock solid.


The first time I really had to use a BSD (OpenBSD) system for more than some simple tasks, I was blown away. There's a definite feel of design, as opposed to a large set of features and interfaces that happen to work together to varying degrees as in Linux.

And the man pages. Oh, how wondrous they were. This first thing I had to do was learn to NOT google for how to accomplish something, but just read the man page. Often, there's not much on google about something because there was no need for someone to document how they accomplished it, they just did what the man page said and it worked.

In linux, the man pages are generally skeletons outlining some flags and what something might support. In BSD (or at least OpenBSD) for core OS items, they are canonical. Compare:

  http://linux.die.net/man/8/ifconfig

  http://www.openbsd.org/cgi-bin/man.cgi?query=ifconfig
Note: One the reasons the OpenBSD ifconfig man page is so big is because on OpenBSD ifconfig does the job of multiple Linux utils, because it makes sense to have ifconfig control all the interface state.

That said, I still mainly use Linux, specifically RHEL and derivatives, specifically because I think the enterprise Linux distros have a better support model for enterprise environments, where multiple machines need to be kept up to date or in sync, and you need to deploy identically (and repeatably) to systems.

Frankly, I'm surprised there's not a alternate, distro model for FreeBSD that's aimed at the enterprise to address these issues (or if there is, it's not popular enough for me to know of it). Maybe FreeBSD as an organization is coherent enough and does a good enough job at support for the distro in general that there's never been enough of push to really compete in the enterprise server market. Or maybe I'm just misinformed about how much BSD is in use in the enterprise. That's always a possibility.


   And the man pages. [...] This first thing I had to do was learn to NOT google for how to accomplish something, but just read the man page.
I'm only learning, but I've had a very similar experience setting up and hardening a FreeBSD box using the FreeBSD Handbook (at least as my primary resource):

http://www.freebsd.org/doc/en/books/handbook/

You just pick the section of interest (or sit down and start from the beginning) and.. start reading. And when you're done, you understand the overall design of the system, its processes and system tools. With GNU/Linux, I quite often feel that when there's a problem, I'm looking for a quick fix. (Granted, it may simply be due to my limited experience / few years of exposure.)

In any case, I do thoroughly recommend everyone dabbling with fbsd not to underestimate the power of fbsd's documentation, and the uniformity (and the resulting empowerment of the system administrator because of this) of the overall system. As I understand it, OpenBSD is very much alike in that sense.


"Linux doesn't have man pages. It has boy pages." -- Glen Pritchett.


I've always had the strong preference for BSD documentation as well. But you know what's crazy? The guy who coordinates the Linux man-pages project, Michael Kerrisk, is definitely one of the greatest technical writers out there. His book "The Linux Programming Interface" is fantastic.

It'd be interesting to know why the BSD man pages are so much better.


For OpenBSD at least, I'm pretty sure the practice of only accepting code patches that have accompanying man page patches when it changes behavior has something to do with it.


> Note: One the reasons the OpenBSD ifconfig man page is so big is because on OpenBSD ifconfig does the job of multiple Linux utils, because it makes sense to have ifconfig control all the interface state.

https://linux.die.net/man/8/ip

https://en.wikipedia.org/wiki/Iproute2


I was aware of iproute2, but wasn't aware the coverage ip had for features. That is indeed much better than ifconfig (feature wise), but I'm not sure if how indicative that man page is of the man pages on Linux in general, so it may just point out a poor example on my part.

Do you know if iproute2 if it supports STP configuration? I used brctl in the past to configure that, and it's something I would expect in an interface configuration tool (although maybe not a command named "ip"). I don't imagine that would be hard for them to add in if not though.

I think a better example of my point regarding man pages would be CARP[1]. In my experience where Linux has really lacked in man pages is concepts. The BSDs will offer refer you to man pages that aren't for any one command or file, but for a system or feature to explain it in general.

See also ipsec[2] for a description of the protocol, and aac[3] for a description of their driver implementation for Adaptec "FSA" family of RAID cards, and documentation on how to work with bluetooth[4] at the kernel level on their platform. Really, most of section 4[5].

[1]: http://www.openbsd.org/cgi-bin/man.cgi?query=carp

[2]: http://www.openbsd.org/cgi-bin/man.cgi?query=ipsec

[3]: http://www.openbsd.org/cgi-bin/man.cgi?query=aac

[4]: http://www.openbsd.org/cgi-bin/man.cgi?query=bluetooth

[5]: http://www.openbsd.org/cgi-bin/man.cgi?query=(4)&apropos...


More addon tools simply proves the point.

Task / BSD / Linux

set ip / ifconfig / ifconfig or now "ip" which is extremely confusing

wifi / ifconfig / iwconfig

speed / ifconfig / miitool or ethtool

duplex / ifconfig / miitool or ethtool

vlan / ifconfig / vlan

wol / ifconfig / miitool or ethtool

bridge / ifconfig / brctl

link aggregation / ifconfig / flags while loading module OR use distro network config scripts and restart all networking or reboot server

Want find out which nic is occupying ethX perhaps for tuning or scripting etc?

Linux = complicated, by distro/version

FreeBSD = nic by device eg em0


> Linux = complicated, by distro/version

Most Linux distros are adopting consistent naming schemes, using biosdevname algorithm, e.g.

https://fedoraproject.org/wiki/Features/ConsistentNetworkDev...

> More addon tools simply proves the point.

I was only showing that comparing Linux’s ifconfig with BSD’s ifconfig is not fair, not really making any point.

I don’t see how this is all that confusing though, you get ip for managing routing and iw/ethtool/etc for managing interfaces or creating interfaces on lower networking levels or device level. It’s just different.


Two reasons I recently switched to FreeBSD on my home servers, Dtrace and ZFS. In GNU/Linux I would need sort combination of strace,mpstat,ltrace,vmstat,iostat etc.. to find out the the things that a simple Dtrace script can tell me and also without dramatically affecting a running daemon process as the ptrace* system calls do.


Linux will soon have btrfs, which is as good as (if not better than) ZFS.

Also Dtrace & ZFS originally come from Solaries, so they are not FreeBSD projects. The only reason they do not work on Linux is because of license problems which Sun created.


>Linux will soon have btrfs, which is as good as (if not better than) ZFS.

btrfs does not even try to solve the problem I want zfs for; snapshots over the network.

You see, when you deal with a large amount of storage (especially if you deal with that storage as block devices that run arbitrary filesystems, and not just files on a filesystem) the bottleneck for backups becomes disk bandwidth, not network bandwidth, so things like rsync don't help much.

ZFS snapshots over the network? those help rather a lot. Unlike rsync and stuff, it saves me disk bandwidth, not just network bandwidth. Unlike inotify-based systems, I don't need to have knowledge of the filesystems I'm replicating.

(I know I harp on this a lot... I just want to point out that btrfs, no matter how good it is for the problems it attempts to solve, isn't even trying to solve the problem I need ZFS for.)


> btrfs does not even try to solve the problem I want zfs for; snapshots over the network.

This a recent Ubuntu system (ie not using development trees etc)

    $ btrfs send --help
    usage: btrfs send <command> <args>

        btrfs send [-v] [-i <subvol>] [-p <parent>] <subvol>
            Send the subvolume to stdout.

    $ btrfs receive --help
    usage: btrfs receive <command> <args>

        btrfs receive [-v] [-i <infile>] <mount>
            Receive subvolumes from stdin.


Ooh. thanks. this post is probably the most useful bit of information I've read this month. Hm. I will have to research more, but this might... change things significantly. I mean, it's still a newish feature, not something you want for backups, but between that an bcache, Linux looks like it might deserve another look, storage-wise.


At <company I work for, which owns pfSense> we use ZFS for exactly this. Functional, always 'on' backups to the hosting center next door (we have some nice single-mode fiber running to our cabinet there.)


> Linux will soon have btrfs, which is as good as (if not better than) ZFS.

It may be awesome, but I'd say "soon" is a pretty optimistic timeline.

Our testing pretty conclusively demonstrated that btrfs was still a long way from production-ready; We've seen numerous problems with deadlocks; Filling up a filesystem pretty much ruins it forever -- And these are not new problems.


Indeed, "soon" is taking a little longer than expected:

http://lwn.net/Articles/238655/

As far as I can tell, those forecasts have almost always come from outside the project. I don't recall Chris Mason ever saying that it's right around the corner.

In fact, searching for "soon" on the Btrfs wiki produces 0 results.

It's still a very active project, but there's still a lot of work to be done.


At this point, the amount of complete data losses I've seen on the LKML makes me wonder why anyone wants to promote BTRFS as being better than anything I would want to use for things approaching production.

I may be an old Solaris hand now but ZFS works. Now, not in the future, my home fileservers on FreeBSD have worked for ages and had no issues. Unlike the many complete losses on BTRFS on Linux that I see happening time and time again. SuSE might be promoting BTRFS, but objectively I can't agree with their decision.


> Linux will soon have btrfs, which is as good as (if not better than) ZFS.

ZFS is stable and released. Pretty sure that makes it instantly "better" than btrfs right now.


"license problems" ∈ "problems"

One thing I like about FreeBSD, and the BSDs in general, is that they don't suffer from such problems.

It's odd that Oracle (who now own Sun's IP) paid to develop a whole new filesystem (btrfs) for Linux instead of just changing the licensing terms for ZFS. It would be nice to have a really good, Apache-licensed filesystem that could run across Linux, OS X, BSD, and Solaris.


Actually there is HammerFS. Porters welcome, I'd love to see it more widespread.


People who compare zfs and btrfs and even put them on the same level, are usually people who have no idea about neither of them.


Would you recommend a BSD VM for web development? That's my use for linux, and would love to try something new, FBSD has a good reputation.


FreeBSD is just fine for web development, and it runs great on VirtualBox if you want to try it. PC-BSD (the "Desktop" edition of FreeBSD) has live CDs and pre-installed VirtualBox and VMware images if you want to give it a try:

http://www.pcbsd.org/en/download.html

Where FreeBSD really shines though, is web deployment -- i.e, it's an awesome platform to deploy your webapps on once they're ready.


That's kind of a hard question to answer without knowing your definition and requirements for 'web development'.

First, keep in mind that some of the packages will simply not run on FreeBSD because it's often overlooked by developers. Same logic applies for technical support for applications that are running on FreeBSD powered machine.

You also will need to learn how port system works on FreeBSD and it might be a weird learning curve. Same applies for kernel patching/upgrading/etc.


The learning curve isn't too bad for FreeBSD. I primarily develop F#/.NET apps on Windows; I've used Linux occasionally for research over the past few years, and more recently, to try out the F#/Mono combination.

I decided to try FreeBSD last year and was able to learn enough in a week to do some basic development work with it. In fact, I submitted patches for Mono 3.0 and F# 3.0 to the FreeBSD ports tree:

http://www.freshports.org/lang/fsharp/ http://www.freshports.org/lang/mono/

The folks on the FreeBSD forums are also very helpful (and patient!) so if you do run into trouble, you'll likely find the solution by asking there.


Ehh. I don't think it's too bad these days. Especially with tools like portsnap and portmaster(which are well documented in the handbook).




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: