I have about 20 yrs linux experience and a couple months freebsd (10.0, and now 10.1). Here's my diff against the pretty good article:
I set up everything in /etc/rc.conf.d in separate files and don't touch /etc/rc.conf. I have automation, you see, and its WAY simpler to CRUD an entire file at a time than to automate editing the innards of one file. If only sysctl.conf had a sysctl.conf.d directory... I like how PAM is set up on freebsd which is yet a third way to split (or not split) config across files in the filesystem. Perhaps that directory feature was added for rc.conf.d sometime between the authors 9.3 and my 10.1.
I haven't found a reason/interest in using ports, I'm just pkg all the way. So far. I haven't even begun to look into automating ports for puppet. I'd be interested in anecdotes about that.
The article specifically lists not discussing the linux compatibility layer. I assure readers that you get a most fascinating error message when you don't have the linux layer installed (at least if using nvidia driver). Google saved me of course. Something about the elf format not having a handler, which is kinda a giveaway if you know nvidia driver runs under linux compatibility. If you don't know freebsd has a linux compatibility layer, or that the nvidia driver uses it, then its more entertaining.
Another pity is the article mentions ZFS but not why. Holy cow ZFS is cool. I used LVM for many years (decades?) on linux for volume management (makes physical drive upgrades trivial, snapshots, etc) and my mind was somewhat blown at dynamic allocation. So at the pool level your space isn't allocated until you actually use it. Very cool. Also very fast. Of course everything is fast on a SSD...
Whats missing from the article is tricky stuff for current/former linux admins.
Tricky stuff like my passwd comes from ldap and on the legacy linux boxes I use /bin/bash as a shell so you can guess what happens the first time you enable ldap on freebsd, where it doesn't keep bash in /bin. For better or worse at least short term I put a symlink on the freebsd box. As the conversion proceeds I will end up changing ldap to the freebsd home of bash (/usr/local/bin/bash) and symlink the remaining linux boxes LOL.
Another tricky filesystem path amusement is there's some non-intuitive funkiness like you install openafs so naturally the /etc/rc.conf.d file needs to be named afsd or something like that. You can name the file openafs all you want or whatever, it just won't work. There was some other aggravation.
Other symlink amusements, I had xmonad config with hardcoded paths to xmobar or something (or was it trayer?) and seeing as all my machines have root on AFS that made life entertaining for awhile.
PAM is close enough to linux to make you really complacent but beware, there be dragons. Linux style PAM can have weird results on freebsd. For a good time try ending a stanza (?) with a _sufficient and then try logging in with any random password... it'll let you in. Its similar enough for you to let your guard down, different enough to really shoot yourself in your foot. I suppose if you're not doing LDAP / Kerberos / OpenAFS then you don't touch PAM so it doesn't matter. (Oh and you know whats not fun about PAM on freebsd? No libpam-afsd-session functionality... I want aklog run when I login, so I can access my afs provided homedir. I believe the fix is something with the redhat provided pam krb5 package which I haven't invested the time to fix.)
I jammed my pkg system nicely somehow awhile back and it refused to download new package lists (pkg update did NOT download a new file although the old one was valid, I can't install vim-5.18 or whatever when the archive only has vim-5.40 avail, or something like that) I believe I moved the archive file outta the way forcing it to download a new one and then all was well. So that was interesting.
pkg also acts "weird" if you partially download a file, then control-C or whatever and try to restart. apt-get on linux notices the length discrepancy and redownloads. pkg freaks and won't try downloading a new copy of the truncated pkg. I believe I fixed this with 'pkg clean' and trying a reinstall.
I installed 10.0, tried to upgrade to 10.1, crazy endless kernel panics. Well, that was annoying. A bare metal reinstall of 10.1 worked. 5 or so minutes of automation doing its thing, and everything was set up on the new 10.1 just like it was on 10.0 to my surprise nothing really changed. I don't think I've ever, in 20 years, experienced a debian upgrade failure other than hardware related or systemd related... so that was "interesting" although harmless.
Sound "just works". If you're used to the linux style where either sound doesn't work or a fresh install always sets the mixer volumes to all zeros, you'll be pleasantly surprised with freebsd where it just boringly works.
It makes a heck of a great desktop. I've got my xmonad, my urxvt/bash, my emacs, and my chromium and I need nothing else for a perfect desktop environment. I'm looking forward to my conversion project for the server infrastructure and everything is proceeding nicely so far...
I have about 20 yrs linux experience and a couple months freebsd (10.0, and now 10.1). Here's my diff against the pretty good article:
I set up everything in /etc/rc.conf.d in separate files and don't touch /etc/rc.conf. I have automation, you see, and its WAY simpler to CRUD an entire file at a time than to automate editing the innards of one file. If only sysctl.conf had a sysctl.conf.d directory... I like how PAM is set up on freebsd which is yet a third way to split (or not split) config across files in the filesystem. Perhaps that directory feature was added for rc.conf.d sometime between the authors 9.3 and my 10.1.
I haven't found a reason/interest in using ports, I'm just pkg all the way. So far. I haven't even begun to look into automating ports for puppet. I'd be interested in anecdotes about that.
The article specifically lists not discussing the linux compatibility layer. I assure readers that you get a most fascinating error message when you don't have the linux layer installed (at least if using nvidia driver). Google saved me of course. Something about the elf format not having a handler, which is kinda a giveaway if you know nvidia driver runs under linux compatibility. If you don't know freebsd has a linux compatibility layer, or that the nvidia driver uses it, then its more entertaining.
Another pity is the article mentions ZFS but not why. Holy cow ZFS is cool. I used LVM for many years (decades?) on linux for volume management (makes physical drive upgrades trivial, snapshots, etc) and my mind was somewhat blown at dynamic allocation. So at the pool level your space isn't allocated until you actually use it. Very cool. Also very fast. Of course everything is fast on a SSD...
Whats missing from the article is tricky stuff for current/former linux admins.
Tricky stuff like my passwd comes from ldap and on the legacy linux boxes I use /bin/bash as a shell so you can guess what happens the first time you enable ldap on freebsd, where it doesn't keep bash in /bin. For better or worse at least short term I put a symlink on the freebsd box. As the conversion proceeds I will end up changing ldap to the freebsd home of bash (/usr/local/bin/bash) and symlink the remaining linux boxes LOL.
Another tricky filesystem path amusement is there's some non-intuitive funkiness like you install openafs so naturally the /etc/rc.conf.d file needs to be named afsd or something like that. You can name the file openafs all you want or whatever, it just won't work. There was some other aggravation.
Other symlink amusements, I had xmonad config with hardcoded paths to xmobar or something (or was it trayer?) and seeing as all my machines have root on AFS that made life entertaining for awhile.
PAM is close enough to linux to make you really complacent but beware, there be dragons. Linux style PAM can have weird results on freebsd. For a good time try ending a stanza (?) with a _sufficient and then try logging in with any random password... it'll let you in. Its similar enough for you to let your guard down, different enough to really shoot yourself in your foot. I suppose if you're not doing LDAP / Kerberos / OpenAFS then you don't touch PAM so it doesn't matter. (Oh and you know whats not fun about PAM on freebsd? No libpam-afsd-session functionality... I want aklog run when I login, so I can access my afs provided homedir. I believe the fix is something with the redhat provided pam krb5 package which I haven't invested the time to fix.)
I jammed my pkg system nicely somehow awhile back and it refused to download new package lists (pkg update did NOT download a new file although the old one was valid, I can't install vim-5.18 or whatever when the archive only has vim-5.40 avail, or something like that) I believe I moved the archive file outta the way forcing it to download a new one and then all was well. So that was interesting.
pkg also acts "weird" if you partially download a file, then control-C or whatever and try to restart. apt-get on linux notices the length discrepancy and redownloads. pkg freaks and won't try downloading a new copy of the truncated pkg. I believe I fixed this with 'pkg clean' and trying a reinstall.
I installed 10.0, tried to upgrade to 10.1, crazy endless kernel panics. Well, that was annoying. A bare metal reinstall of 10.1 worked. 5 or so minutes of automation doing its thing, and everything was set up on the new 10.1 just like it was on 10.0 to my surprise nothing really changed. I don't think I've ever, in 20 years, experienced a debian upgrade failure other than hardware related or systemd related... so that was "interesting" although harmless.
Sound "just works". If you're used to the linux style where either sound doesn't work or a fresh install always sets the mixer volumes to all zeros, you'll be pleasantly surprised with freebsd where it just boringly works.
It makes a heck of a great desktop. I've got my xmonad, my urxvt/bash, my emacs, and my chromium and I need nothing else for a perfect desktop environment. I'm looking forward to my conversion project for the server infrastructure and everything is proceeding nicely so far...