Best parts already mentioned in this thread (pf, jails, etc.) I would add one thing to the list:
* https://freedesktop.org/software/systemd/man/file-hierarchy....
It does exist in the same umbrella project as systemd, (and I think that is an issue) but embedded is the wrong term.
Don't use it then. Anyway, since systemd-the-project doesn't have a separate name from systemd-the-init, I don't see any problem with Cieplak's statement.
(I run Open and Free, and started with Net, I have no dog in this race)
What laptop are you using and exactly what does/does not work for you?
E.g. Guix is a very cool Nix-like distro.
https://forum.alpinelinux.org/forum/general-discussion/alpin...
PREFACE
I've been using linux since the mid-90s. I know how to use the console, I compiled kernels, played with the old xfree86 config files and all that back in the day.
THE GOOD OF FreeBSD:
* Stable. It feels like a Unix out of the 80s. If you know what you're doing, it'll get the job done.
* man pages - Haven't used them much on Linux recently, felt that they were on the level of command --help, but on FreeBSD they felt like reading an authoritative blog post. Clear and concise.
* Cross-update versions - better than Debian. I personally never successfully had a seamless update between major releases, while FreeBSD did.
* No systemd (for now) - Unfortunately, systemd is taking over Linux because the largest block of user-space OSS programmers work for RedHat, which pushes for systemd. IIRC, the reason Debian went with systemd is because their maintainers simply have no resources to commit to remove it from gnome, etc.
However, as systemd grows in scope, FreeBSD will have to either play with it, re-implement it in a normal way (which will let other Linux systems find a way out), or stop being compatible with gtk, gnome, et al.
THE IRRELEVANT:
* BSD license - unless you're modifying and then distributing your modification, it doesn't matter.
* "Fragmantation" - True, "FreeBSD" is less fragmented than "Linux", but "BSD" is more fragmented than "Linux" and "Debian" (or RedHat or Ubuntu or Arch...) is the same not fragmented as FreeBSD. Look at the Distro as the OS rather than the kernel.
And it doesn't matter -
If you're distributing OSS, then release it as POSIX and configure; make; make install, and let the distro figure out packaging.
If you want to make life easier for the distro or releasing closed source software, Linux (on the server) has an order of magnitude more users than FreeBSD (https://en.wikipedia.org/wiki/Usage_share_of_operating_syste... ), and if your program works with Debian, Ubuntu and RedHat/CentOS, you'll probably cover the vast majority of users.
* Ports - Complicated to update, takes a long time (unless you have a fleet of servers), and can't be automated. And pkg is no better than apt.
* ZFS - ZFS is being ported to Linux, and btrfs may one day become stable. Either way, in a few years you'll be able to run the same ZFS on Linux as on FreeBSD.
THE GOOD IN LINUX
* Update - On Debian, you run apt upgrade && apt update. And it updates everything. And if you're on a stable release, updates are only bug-fixes, so (short of bugs/regressions), it can be automated.
FreeBSD, on the other hand, doesn't have enough maintainers to keep a stable ports tree, so every update can break your setup. So every update has to be taken care of manually.
* Security - Yes, I know that "experts" like the FreeBSD kernel better and everything, but the FreeBSD kernel has bugs of its own, so practically the key to secure both is keeping them up to date. And most of the time you're using ports, which isn't really run by FreeBSD and subject to their code review. So as Linux has an easier time updating (see above), it would be more secure.
* Directory structure - Why would you want a "blessed" vi? Why should a distro manager decide that /usr/bin/vi is (say) vim while neovim /usr/local/bin/nvi.
If anything, Linux is a lot more "Unixy" (I do know that FreeBSD is the "traditional" way, but I think that Linux is a lot more Unixy) - Why shouldn't I be able to write my own libc without having to maintain my own kernel? On Linux I can replace glibc with muslc. Why can't I do the same on FreeBSD?
If anything, this is what everyone's complaining about systemd: "It's not modular". Well, neither is the FreeBSD base. (Though in truth, FreeBSD seems much more careful about basic software hygiene than systemd).
* Default software - Maybe I'm unique, but I kind of like bash. I don't see why it shouldn't be my default shell except "Well, if it didn't exist in the 80s, it won't exist now" (It could also be a licensing issue, but as a user I don't really care about that).
Others will scream "ShellShock". Well, yes. Though ShellShock shouldn't be a security issue if you don't rely on userspace software to maintain security.
The OS should assume that software will break, and defend against it. So things like pledge or SELinux are much more effective (and sustainable) than treating userspace bugs as security holes.
Though in truth, I can't see why Apache should ever run bash honestly.
btrfs seems like an elaborate hoax. ZoL is fine, but support and integration still go Illumos > FreeBSD > ZoL. There are enough commercial products using FreeBSD ZFS that it is robust.
UNIX uses the shell for a lot of things, interactive users are just one infrequent process. Bash is harmful as a non-interactive shell. Change your interactive shell to bash or zsh, problem solved.
There's a difference between manually logging in once a day and typing apt-get update && apt-get upgrade, seeing warnings, responding to them and applying and re-configuring/recompiling ports.
One can take five minutes. One can take an hour.
>On a workstation there are really no significant issues.
Yes, and on linux you can run testing. But I want more stability on a server.
> ZoL is fine, but support and integration still go Illumos > FreeBSD > ZoL. There are enough commercial products using FreeBSD ZFS that it is robust.
For some reason, all of a sudden everyone thinks that ZoL is legally safe to use. I'm not a lawyer, but whatever. The point is that it's still new and not tested significantly, but it should be more stable soon.
>UNIX uses the shell for a lot of things, interactive users are just one infrequent process. Bash is harmful as a non-interactive shell. Change your interactive shell to bash or zsh, problem solved.
So write shell scripts against /bin/sh or dash.
>Bash is harmful as a non-interactive shell.
How is it harmful? I mean why are your putting your shell in an untrusted environment?
Moreover, I understand if you like sh, tcsh, zsh or bash. My point is that it seems to me more of a "we always used tcsh/sh, so that's how it will stay forever" rather than "let's see what's the best default shell now and use it".
And why can't both shells (or zsh, which is MIT licensed) be included in base?
That reason is because it's free software, even the FSF thinks it's fine to use ZFS on your system. The issue is whether it's fine for the ZFS module to be distributed with the Linux kernel.
And automatically updating ports is easy. Set up Poudriere somewhere to build every night, log in, check security notices, and install the already compiled packages.
> And pkg is no better than apt.
Apt is pretty good, so being no better than it isn't that bad.
> * Directory structure - Why would you want a "blessed" vi? Why should a distro manager decide that /usr/bin/vi is (say) vim while neovim /usr/local/bin/nvi.
> * Default software - Maybe I'm unique, but I kind of like bash. I don't see why it shouldn't be my default shell except "Well, if it didn't exist in the 80s, it won't exist now" (It could also be a licensing issue, but as a user I don't really care about that).
It helps to think of FreeBSD base as a minimum workable install: the goal is not to install everything you need, it's to get enough software that you can a) build whatever you need from ports, b) rebuild the kernel and the world. That's why /usr/bin/vi is vi (not vim) and the vi you like is in /usr/local/bin/, it's pretty helpful to have a screen oriented editor, so they've given you a basic one. I personally am not sure why they ship tcsh in base, but it's probably because they always have; philosophically they should just let you install tcsh if you need it, just like bash. Running a simpler shell than bash for /bin/sh is just good sense, Debian uses dash for /bin/sh too.
You mean frozen package versions + backported security fixes as in stable Debian branch? I think Debian is pretty unique in trying to support the whole world.
Just to clarify, FreeBSD as a project only supports the base system. Ports tree doesn't have any notion of releases and is intended to be always kept up to date, akin to Gentoo portage or Arch linux packages.
>Just to clarify, FreeBSD as a project only supports the base system. Ports tree doesn't have any notion of releases and is intended to be always kept up to date, akin to Gentoo portage or Arch linux packages.
Yes. I understand the amount of work Debian admins put in (which is why I stick with Debian, even though nixos/guix seems much more interesting), but it's a strong advantage.
Where's the beef? If you like/want it, then just make it your default shell. All it takes is "pkg install bash" and "chsh". I happen to find the default /bin/sh (Almquist shell) provides just about everything I care about in bash, while being much lighter weight and less full of security holes, but if I ever want bash all I have to do is type "bash" from my sh prompt.
https://www.freebsd.org/doc/handbook/
The book, Design and Implementation of the FreeBSD Operating System is quite good if you like technical reading.
* NetBSD Guide: https://netbsd.org/docs/guide/en/
* FreeBSD Handbook: https://freebsd.org/doc/handbook/book.html
* DragonFlyBSD Handbook: https://www.dragonflybsd.org/docs/handbook/
* TrueOS User Guide: https://www.trueos.org/handbook/trueos.html
* PC-BSD User Guide: http://web.pcbsd.org/doc-archive/10.1.2/html/pcbsd.html (viewable off-line directly in both PDF and HTML forms in /usr/local/share/pcbsd/doc/)