Favorite FreeBSD Feature?

What I like?
  1. Documentation - When I first decided to try FreeBSD it was out of my league (skill wise), the documentation pulled me through
  2. Organized - FreeBSD = A userland + a kernel. It's a very good development model IMO. This creates a more well thought-out design that is under complete control of the developers.
  3. Fast, stable, secure - enough said
  4. Ports tree (and the option to use binary packages when I don't want to compile)
  5. ZFS
  6. I feel like a badass when I use FreeBSD.
  7. I like the licence, it's true freedom.
But if I could change anything about FreeBSD it would be the state of X.org. I wish it performed a little better.
 
sk8harddiefast said:
Community. Everything starts from there and ends there. Google and docs not always give the answers. Sometimes you need a friend to help you. To be patient and have the courage to explain.

I'd have to agree. Maybe I'm just used to FreeBSD, but I hate troubleshooting problems on a Linux system because it's hard to find good help and documentation (besides being chaotic, IMHO).
 
The design of the system and the available software. I am setting up an audio/dj/studio laptop for a friend and he is happy with the near finished project. He is very impressed over the amount of control offered by software and the straightforwardness of the system.

There will also be tutorials that will let him know the how's and why's of FreeBSD itself.

This took a month to do. I am so glad for documentation and the privilege to be part of the BSD and Open Source communities.
 
My favourite features...

  1. Man page – I always show my students FreeBSD's man page so they can understand system calls faster. (They use some other operating systems to do programming, and the man page there are, well, you know what I mean.)
  2. Geom_mirror – It's the best tool for people who don't want to handle a hardware RAID card. Now we have ZFS but I am not yet brave enough to try on computers with small amount of memory.
  3. Fast installation – It's great to install software fast when a server is down. But I never tried reinstalling FreeBSD in urge so I cannot say this feature saved my life anyhow.

My wishes...

  1. I want mod_php (and similar things) be back. I still remember the good-old days I issued pkg_add -r mod_php4 as the first command and the system equipped itself to run PHP scripts within minutes.
  2. I want no more trouble with Xorg, HAL, etc. I even thought of implementing my own window system. (By the way, anyone heard of the Y window system? I want to see the relevant master thesis but couldn't find it online.)
  3. QUOTA option default in GENERIC kernel. (I heard it is already so in 10-CURRENT.)
  4. Non-GPL code in kernel and world, and finally ports (e.g., by an environment variable). So I can learn and reuse the code without fear of breaching anything, as long as I don't remove the license files.
 
ananm1 said:
What is your favorite aspect or feature of FreeBSD? Is there anything you would change?
Like many other posters I have several features which almost immediately drew me right in..

Acts and feels like a Unix system
The most important thing to know about Unix, in my opinion, isn't so much how everything works but the way you can find out about it. The hierarchy, the manual page structure (and their contents) and most importantly: they way all that is executed. That is in my opinion an excellent aspect.

Put differently: I could easily stop using FreeBSD for one or two years, thus totally forgetting about all the specific tricks. And easily find them again the very moment I'm back behind the console.

For example; I want to know about bootstrapping my system but I forgot all about gpart. Of course I do recall fdisk but that's more PC oriented. So when I use $ apropos bootstrap I get to see this:

Code:
smtp2:/home/peter $ apropos bootstrap
boot(8)                  - system bootstrapping procedures
bootptab(5)              - Internet Bootstrap Protocol server database
loader(8)                - kernel bootstrapping final stage
loader.conf(5)           - system bootstrap configuration information
ExtUtils::Mkbootstrap(3) - make a bootstrap file for use by DynaLoader
So if I then check out the boot(8) manualpage I get this important part at the end:

Code:
[B]SEE ALSO[/B]
     ddb(4), boot.config(5), make.conf(5), ttys(5), boot0cfg(8), [I]bsdlabel(8)[/I],
     btxld(8), config(8), halt(8), loader(8), nextboot(8), reboot(8),
     shutdown(8)

And based on my experience bsdlabel() would be more than enough to catch my attention. And its "SEE ALSO" block will then directly point me to both fdisk(8) and gpart(8). And this is but one example, there is so much more where this came from.

It's this consistency which also immediately made me embrace Solaris/x86 when it first got out, even though it didn't ran as smoothly as Linux did back then. If you knew your way around Solaris on a Sparcstation and were put behind a Solaris 10 console (without any prior knowledge on ZFS or Zones and such) you'd still have all the options at your disposal to learn about those.

Strict separation between Ports and base system
I'm sure its something most FreeBSD users take for granted, but with a very deep Linux history I can tell that from this perspective it's an invaluable feature. Sure; Linux also bootstraps the kernel though a bootloader, control then eventually gets transferred to init and then your system starts.

But here's the problem...

Code:
root@debian:~# dpkg-query `which getty`
util-linux: /sbin/getty
root@debian:~# dpkg -p util-linux | grep Depends
Depends: lsb-base (>=3.0-6), tzdata (>=2006c-2), initscripts, dpkg (>=1.15.4) | install-info, debconf (>= 0.5) | debconf-2.0
Pre-Depends: libblkid1 (>=2.17.2), libc (>= 2.11), libncurses5 (>= 5.7+20100313), libselinux1 (>= 1.32), libslang2 (>= 2.0.7-1), libuuid1 (>= 2.16), zlib1g (>= 1:1.1.4)
Do you see libc up there? Its a common library which is used by many programs on your system. So what would happen if a package would depend on another version of the libc6 package which can't co-exist with this one? Or for that matter any of the other dependencies listed above..

Then you'd risk getty not working any longer thus effectively making it impossible to logon to your system.

Now, obviously it's not something which happens all the time on Linux, nor should it be used as an argument as to why one OS (or package environment) would be better than the other. That's bollocks because although the risk is real, its something which hardly happens. But during upgrades this becomes a very potential issue which is more than often waved away with "Then you're better of with a clean install".

Ports
For years it always felt like a waste of time to me: compiling your own programs while you could easily grab a binary package and be done with it. Ever since I started doing it myself I had to re-adjust that opinion quite drastically (180 degree turn).

Apart from the previous (related) reason there's more to Ports. It doesn't provide software, it provides a means to install and use software whereas a common Linux environment provides software, with several risks attached.

On Linux you're not putting trust in the distribution, but in the dozens of package maintainers. Most of those will change the way a software package works in order to make it "fit in" with the distribution. This is why configuring Apache on Debian will be a completely different experience than doing the same on SuSE.

But there's more.. Maintainers will also easily change the way the software works if they deem it required to be used on the distribution. And because you're using binary packages chances are high that you won't be (able to) seeing what has changed and why. Sure; sometimes you get a file explaining the build options, that's hardly enough.

Take for example the Debian OpenSSL disaster (link to Slashdot, not my favourite resource but its a good one for this due to the comment section). This disaster even went as far as big names like GoDaddy (which I hold in good esteem for certificates and domain registrations) revoking and re-issuing all certificates which had been created for use on a Linux / Apache environment.

And all because one package maintainer thought he knew better and changed the package to make it more "suitable".

Sure; on Ports there are also changes (patches) being applied, but I have full access to the patches up front. I can see exactly what is or isn't being done. Most of all; because it grabs the original tarballs there's nothing stopping me from compiling and setting up the whole thing myself if I'd really insist on that (which is bad practice, but simply as an example..).

And that's my top 3 :)
 
Well, I'm new here from using CruncBang Linux which I still like on my netbook.

I feel very comfortable with the FreeBSD package installer feature. It reminds of doing Apt-Get Install only now I do pkg_add -r.

The documentation is also there. I like the FAQ section.

I also like the Beasty daemon logo :)
 
The community. Period.

The FreeBSD Foundation is transparent and friendly. I can feel their dedication and friendliness in their newsletters and in Google+ pages.

The forum people, especially the admins and mods, are nice and helpful.
 
Reliability, customizability and the community. I started in the IT business supporting Suns when the SPARCstation 1 made it's debut in 1989 which ran SunOS 4. I like the ability to remove everything out of a kernel I don't need or want.
 
A feature for me is Consistency.

An example is Jails; how it works has largely remained the same. If you look at the equivalent in Linux; you have lxc, OpenVZ and Vserver. None of these are the same technologies that they were a year ago; everything has been replaced under the same name. I just don't have mental energy to invest in any of them. So instead you get stupid sloppy things like Docker to "abstract" over the mess (Ironically, Docker also deprecated LXC for its own Go written system).

I don't need to mention the consistent init system either ;)

Also network configuration. FreeBSD is lucky to not have (let me know if I have missed any)
  • nmcli
  • /etc/network/interfaces
  • systemd-networkingd
  • dhcpcd
  • /etc/sysconfig/network*
It was quite frustrating to see kids with the Raspberry Pi through the interfaces -> dhcpcd transition get utterly screwed over by the lack of consistency in Linux.

Now I am in no way against change. But change that gets deprecated the next year isn't change. It is breakage!
 
Seems there's a lot of that breakage you speak of in other systems, changing things without solid reasoning only to move on the next change a short time later. Post #2 in this thread actually nails it pretty good in terms of what I like about FreeBSD, but the fact that changes in FreeBSD are mostly well thought out and reasonable is definitely a big one to like. Not that FreeBSD is perfect there, but they do a lot better than others.
 
Back
Top