Though this helped a lot, I believe the commandment "Do not change user space" was a much larger factor. In some upgrades of any of the BSDs, some user program will crash depending upon what changed in base. Linux, hardly ever happens, I have never had an issue with User Space on Linux Upgrades.
> In some upgrades of any of the BSDs, some user program will crash depending upon what changed in base.
For FreeBSD at least, only in major version releases (12.x->13.x); with minor updates (13.1->13.2) there is API/ABI stability. (Free)BSD also has good kernel compatibility, so you don't have to worry about kernel drivers breaking 'randomly' with each update.
However, if you install the compatibility libraries then even recompiles may not be necessary:
Isn’t linux kinda shitty in binary backwards compatibility? Sure, the kernel interface doesn’t break, but it doesn’t mean much in practice. Good luck running a binary that was compiled one Ubuntu LTS version before the current, let alone multiple years.
Windows does actually have superb backwards compatibility.
Though this helped a lot, I believe the commandment "Do not change user space" was a much larger factor. In some upgrades of any of the BSDs, some user program will crash depending upon what changed in base. Linux, hardly ever happens, I have never had an issue with User Space on Linux Upgrades.