Forward compatibility

If I have a server with (say) FreeBSD 9 installed on it, is it safe to assume that FreeBSD 10 (and 11 and 12 etc.) will work with it in the future? In other words, is hardware compatibility cumulative over the years? Or does certain drivers/support for some hardware get removed over the years?
 
The goal is of course to have drivers that will continue to work on later versions. However the reality is that there's always a possibility of regressions (unexpected side effects) when the internals of the kernel change over time and drivers will need fixing and sometimes it's just not possible to fix some drivers to satisfy the new requirements enforced by the new kernel programming API. A good example is the filesystem drivers that were relying on the so called giant locking mechanism which means that all those drivers were using a single global lock for handling concurrency in the kernel. This mechanism is now deprecated and all the filesystem drivers that were not fixed in the required time got axed from the kernel.

https://wiki.freebsd.org/NONMPSAFE_DEORBIT_VFS
 
Thanks @kpa.

I'm only asking this as I am about to build a new server soon and was curious how far into the future I could keep upgrading the operating system. On my current server I have upgraded from 7.2 to 8.0 to 8.2 to 9.0 to 9.1 to 9.2 over the years and it's never been an issue (except when they changed the disk names in 8.0 I think but this was fixable).

I appreciate the explanation.
 
Last edited by a moderator:
I've run FreeBSD 9.0 on ancient hardware - An IBM with a 266 MHz K6-2, 160MB of RAM, a 4 GB Quantum IDE hard disk, and a 3com 3c905TX. This computer still had most of it's hardware supported, except for the modem (It's a winmodem), but I pulled out the modem because I have no use for it.

Old hardware support is more of a concern on Windows or OS X than on FreeBSD, unless the hardware is too ancient that nobody really uses it today (Linux dropped 386 support almost a year ago).
 
Note that by 386 support what is meant is the support for the ancient i386 CPUs, not the i386 architecture that now covers all CPUs i486, i586 and i686. FreeBSD dropped support for 386 a bit earlier I think.
 
kpa said:
Note that by 386 support what is meant is the support for the ancient i386 CPUs, not the i386 architecture that now covers all CPUs i486, i586 and i686. FreeBSD dropped support for 386 a bit earlier I think.
Also note that the 80386 is still supported, it's just not in the GENERIC kernel any more. You can still build a custom kernel that runs on a 80386.
 
Back
Top