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

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.




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

Search: