A newcomer's life with FreeBSD

Hi all,
I've been using Linux since 1996, so I'm not an old grumpy greybeard veteran yet but I'm not a newby in the *nix world either.
Recently I grew more and more fed up with the nonsense, childishness, incompetence and arrogance of a certain lead developer of a certain init system who infected Linux like an incurable disease, turning what was once a nice OS into a windowish unreliable nightmare. And that's unfair to Windows because at least Microsoft has highly skilled developers and they (pretend to) care about their customers.
Anyway, I never had the opportunity to try FreeBSD 11 so this summer I wiped my Linux partition and installed FreeBSD instead.
About the installer, well I installed slackware 20 years ago, old habits die hard, I was not lost. However I never ever found how to tell it to install boot0 automatically, I quickly found in the cookbook how to do it afterwards but still that was confusing.
First boot, unreliable WiFi, no X, no nothing, that was expected I knew I wasn't installing Ubuntu, but I was a bit in a hurry so I decided to switch to TrueOS.
After installing TrueOS, without any major trouble, I used it for a few weeks until I realised that it was not really ready from prime time yet. What the devs are doing to mainstream FreeBSD is wonderful but their product is far from being ready, a true newby would be lost and a more experienced guy feels frustrated because so much is hidden + it lacks lots of documentation IMHO and the upgrade process is a bit clunky.
So, back to the "real" FreeBSD, as my WiFi was unreliable with 11.x I gave 12.x a try. I knew after using trueos that the issues I had were fixed in -current and indeed the WiFi worked well but -current clearly means bleeding edge and I'm not 20 anymore, I don't have nights to waste trying to fix what broke with the last update.
At that point I had a good knowledge of what I needed and installed 11.1 again, I compiled the unified rtwn driver of -current in order to fix my WiFi, configured X, installed slim, wasted half an hour searching why it would not start my XFCE session, wasted another half a day to understand why this damn Hal refused to mount my NTFS usb stick when I clicked on it, fixed Nvidia tearing issues (same sh*t as with the Linux drivers) and finally I can say that I have a working Freebsd computer at home and it's really pleasant to use (especially its init system ;-) ).

So, after this long long post here is my question, is there any willingness to mainstream FreeBSD, for example by giving some help/money to the TrueOS devs, or is the steep learning curve assumed ? Don't get my wrong I'm not criticizing at all, I like this OS the way it is, it reminds me lots of good memories to hack through config files in order to get exactly what I want , where I want and how I want, but for one guy like me there are thousands who give up and install gnu-systemd-OS and think they are using a real Unix, and that's a pity. Next time I'll see a guy like that I'll give him a nickel and tell him to buy a better Unix :)
 
So, after this long long post here is my question, is there any willingness to mainstream FreeBSD, for example by giving some help/money to the TrueOS devs, or is the steep learning curve assumed ?
Learning curve is assumed. Nothing is ever configured or enabled by default on FreeBSD. This was the case when I started (FreeBSD 3.0) and is still the case now (FreeBSD 12).
 
And that is no better way to learn the inner workings of your system. Curve was a little steep for me at first, but I absolutely like where I am now, knowing it will only get better. Stick with it. You won't regret it.
 
TBH I did not find it hard to get a working freebsd desktop, as I said above I've been using *nix systems for a couple of decades now, the main difficulty was to learn how the configuration files are organised and the way you're supposed to interact with them.

For example there is one thing I did not manage to solve in a clean way, I have an usb WiFi adapter which is a bit slow to startup and netif was always starting too soon and missed wlan0. I was not willing to mess up with the services startup order so I solved it with a "sleep 3" at the beginning of netif script. That's really ugly but it works, however I'm still looking for a better solution. Maybe I'll write a custom startup script to wait for rtwn_usb initialisation.
 
In general, it is a good idea to load the device drivers of USB network devices in /boot/loader.conf. By this way everything is in place once the network is going to be configured.
 
It's already in loader.conf but this WiFi adapter needs a few more seconds to be up in a usable state, it's no big deal anyway I can live with a 3 seconds sleep in my boot scripts.
 
First off: welcome aboard!

Second, what they said ^

Everything is (or can be) difficult when you first use it, and I think FreeBSD fits that description. However.. It also has the amazing FreeBSD handbook which, although definitely not perfect, can be a huge help to get started. In my opinion obviously.

See; the main thing about FreeBSD is that all the 3rd party software ("ports") will behave and work mostly as their authors have intended it. The one thing which bugged me about Linux eventually (before systemd) was the issue of incoherency. Install Apache on RedHat and you can configure it "A-wise". Install it on SuSE (which both use the RPM package manager) and all of a sudden you'll be lost when configuring it because now it's done "B-wise". And in both examples don't keep your hopes up for the official documentation because that will in most cases not fit the situation at all.

FreeBSD does that a "little" differently.

But once you get some experience with the whole thing then it'll be easy on you. For example, I can't find myself in a previous comment about FreeBSD desktops because both my laptop and since today my server provide me with a FreeBSD powered desktop (XFCE4 on my laptop and KDE4 on my server) and well... it just works ;)

But yeah... steep learning curve: generally speaking that's not so much a FreeBSD issue but more so those of the initial developers. Xorg can be tricky to set up, same applies for other applications. Yet when that is the case don't expect handholding. You're on your own ;)

Anyway, hope you'll enjoy the ride. I gave up on Linux around 10 years ago and to be very honest I never missed it.
 
Actually it reminds me a lot slackware but with a better packaging tool and a different kernel, it's really enjoyable to use. I think I've found my new desktop OS for the decade to come :)
 
It's already in loader.conf but this WiFi adapter needs a few more seconds to be up in a usable state, it's no big deal anyway I can live with a 3 seconds sleep in my boot scripts.

Take a look at the netwait in /etc/rc.conf:

Code:
#
# NETWAIT
#
netwait_enable="YES"            # Enable rc.d/netwait (or NO)
netwait_ip="10.0.1.1"       # IP addresses to be pinged by netwait.
netwait_timeout="60"            # Total number of seconds to perform pings.
netwait_if="em0"                # Interface name to watch link state on.
netwait_if_timeout="30"         # Total number of seconds to monitor link state.
 
Two other tips for getting started:
  1. Be sure to take a few minutes reading through /etc/defaults/rc.conf to see some of the settings that you can adjust on the base system.
  2. service -e will show you your enabled services (in start order.) Using -r instead will show all available services.
 
Back
Top