"I assume that using version 11.1 is the way to go? No point in using the 10.x branch?"
... and that is everything that is wrong with FreeBSD - and has been for over ten years.
I wrote a long critique of this issue in 2012 that you can read in the mailing list archives:
... and although many of the core team had agreeable sentiments in the very long discussion that followed, nothing at all has changed.
The poster is correct - there is indeed no point in using the 10.x branch. What he doesn't know is that there has been no point in using the 10.x branch for over a year now but since the 11 release was at "dot zero" you were ill-advised to use that as well. This means that for over a year there has been no good answer to the question "which version of FreeBSD should I use".
FreeBSD is an operating system by, and for, FreeBSD developers. It is very difficult to invest time and money into FreeBSD because the platform is neither stable nor long-term. Finally, FreeBSD, possibly unwittingly, loses a lot of end-user development and reinvestment since end users are never working on the same OS that the developers are.
 As usual, all new drivers and non-critical bug-fixes go to 11, since that is what "is current" and nobody bothers backporting any of it to 10. This was true even before 11.0-RELEASE came out.
 I don't mean stable in terms of reliability - FreeBSD is rock solid and we trust all of rsync.net to it - I am speaking of the stability of the OS platform itself and what functions it is capable of.
 I'm not interested in your success stories running CURRENT in production. The official stance of the FreeBSD project is that CURRENT "includes works in progress, experimental changes, and transitional mechanisms". They go on: "FreeBSD-CURRENT is not in any way “officially supported".
Not true at all. The answer is:
1. If you have systems which are already running 10.x, you should run the latest 10.x release.
2. If you're deploying a new system now, you should deploy it with the latest 11.x release.
3. If you're building a product which you will be selling next year, you should build it on top of FreeBSD HEAD, so that it will be running a recent release when it ends up being deployed.
Old STABLE branches get updates and new releases because there are deployed systems which are using them. Think of 10.3 as "FreeBSD 10, service pack 3".
A long time ago I thought it was stupid not to upgrade to the latest and greatest. It turns out in business stability triumph over everything else. ( That is assuming you have a decent security measures put in place already )
@rsync, is there any other BSD out there that has a better model than FreeBSD? (E.g. netbsd, openbsd, dragonflybsd)
Unless your organization, after wasting a year and tens of thousands of dollars on 5.0, has implemented a SOP to never use the x.0 of FreeBSD.
I think that's a decent heuristic in general - for instance, I don't buy a car until they've been rolling off the line for 9-12 months - but in the case of FreeBSD it is a concrete rule based on experience - not a superstition.
So again, the cool kids all stopped working on 10.x over a year ago, and 11.1 was not released.
In our case, 10.x was working fine for us and nothing was terribly broken driver-wise (unlike 8.x when we desperately needed intel NIC fixes circa 8.2 that all went to 9 and never got backported). So we kept deploying 10.3.
 Driver fixes all go to 11, non-critical bugs all "committed to stable", etc.
 Well, except for some nice new bhyve features that all went to stable were not available to us for the last 12-18 months (and will never go to 10).
Frankly, if that's the lesson you learned from FreeBSD 5.0, I don't know that there's anything I can say to help you.
A more appropriate lesson to learn from FreeBSD 5.0 would have been "don't use releases which are cut from HEAD and announced as being for 'early adopters'". The FreeBSD 5.x stable branch started at FreeBSD 5.3.
Maybe we can't convince John to unlearn his wrong lessons, but I'd like to avoid having him teach those wrong lessons to everybody else.
> Unless your organization, after wasting a year and tens of thousands of dollars on 5.0, has implemented a SOP to never use the x.0 of FreeBSD.
The important thing to keep in mind is that these are two consequences of the state of the FreeBSD tree in the early 5.x days. There's no question the first couple of 5.x releases had a great number of stability and other issues, and I can certainly understand that experience leading to an approach of "never use a .0 release." But it is precisely because early 5.x was in such bad shape that 4.x continued to receive ongoing development for so long.
If FreeBSD were to accommodate this kind of SOP given their current resources, what could they do other than just call the first release x.1 instead of x.0?
I've been steadily upgrading FreeBSD since version 8.x.
It's also generally very conservative with its feature set, unstable and experimental features are generally very clearly labeled and are not marked as stable until actually stable.
You're a power user and you follow the development of FreeBSD extremely closely and you're frustrated that you have to wait 10 months for a feature to make it into a release. That's understandable. I on the other hand use FreeBSD as some kind of 'install and forget' OS. It's stable, it Just Works and I just need to remember to run freebsd-update from time to time.
>FreeBSD is an operating system by, and for, FreeBSD developers.
I see your point but I'll take that over what seems to be the mindset of most Linux distros these days, "let's dumb everything down and hide everything behind mountains of crappy abstractions to cater to the mythical 'average desktop user' who doesn't even use or care about our OS anyway".
FreeBSD has a very good documentation but it doesn't attempt to dumb things down and assumes a certain level of technical knowledge from its users. I think understanding the release cycle is part of that, all the information is out there, it's up to you to decide what's good for you. CURRENT, release, oldrelease, they all have their use case.
I don't think I'm an idiot, but sometimes FreeBSD makes me feel like one. (This is, of course, in contrast to OpenBSD where the software may not make me feel like an idiot, but the developers do.)
Edit: I realize my comments may sound a bit unfair. I don't want to come across as saying "they had a bug in their software, so they suck!" I realize stuff happens, and these are complex things. But I'm bothered by the fact that it has happened often enough that I'm actually nervous to upgrade my FreeBSD system, even though I have been using the OS for 20 years and did time as a professional sysadmin. I guess the flip side is that once it's working, FreeBSD is so stable and drama-free that my incentives for upgrading are very low unless there's a critical security issue.
At my current employer, and the previous, we used FreeBSD for its base OS, and then most of the services we ran were our own proprietary code, built with in-house patches on top of an open source language. We didn't and don't tend to upgrade the OS unless a release (or a patch) fixes a specific issue we're seeing, or is a security issue in things we actually use, but new hardware tends to get the latest OS (we're currently installing 10.3, but may consider 11.1 now that it's out; we do have a couple machines running 11.0 because they need the per disk io threads and fixes to directio that i think were in 11 as well). When we run into problems, we'll look to see if it has been fixed in upstream, and see if we can apply that to the whatever release we're currently using. If not, we try to fix it ourselves, and then offer the fix back; but we're happy to run with our version of the fix until it makes it upstream.
We've had pretty good luck with upgrades not causing major issues, but we did have some trouble with mrsas drivers for a while, and the VM change in 10.x where pages are marked inactive and can get swapped out without memory pressure caused us a lot of trouble until we figured it out.
The benefit of the lengthy release process is that the releases are pretty solid, and once a system is setup, we don't have to touch it. Also, because FreeBSD doesn't change for the sake of it, we don't usually have to worry about some systems being on 9.x, some on 10.x, and some on 11.x; we just are sure to build software either on the hosts themselves, or on an older system, so it'll run on all systems.
Edit to add: The most frustrating thing for me are the many Bugzilla entries for issues that I'm having, with patches, that are sitting there for years. For example this one https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=25986 which was open for 14 years before it became CVE-2015-5358
That one is a particularly disappointing and egregious example, but highlights the problem we have with stale PRs and patches. There are a number of folks in the FreeBSD community working on triaging old (and new) PRs, but it's slow going and a mostly thankless task.
If you have other cases of issues that have existing PRs and/or patches please feel free to let me know (email in profile) and I'll try to find out why it's stalled and if someone can help out.
And having used FreeBSD for nearly 18 years now, there have certainly been hiccups, but for the uses I have had 9 and 10 were perfectly usable.
It is very appropriate that you remember the 4.x days like that since that is the last time there was a long term, stable target for FreeBSD development (and investment). Remember, the 4 branch went to 4.11.
It is 4.x that I identified in my original mailing list post (2012) as the time, after which, I thought FreeBSD began having problems with focus and longevity.
For the record, I think we all agree that this kind of panic is not FreeBSD's fault. Linux support for this kind of driver is more stable and advanced, but, even though I use FreeBSD both for production and personal use, its "expected" case is production server.
It's an update of the graphics stack to match modern Linux. Apparently amdgpu leaks memory, but radeonkms might work fine.
There's something inside wait6 and kevent that causes a thread to sleep whilst holding a non-sleepable lock. I hit it more than most I suspect because on my systems a lot of processes are blocked in kqread, whereas with the stock toolset one sees few processes using kevent.
I brought the subject up last year on freebsd-hackers, but nothing came of it.
That was definitely a low point for the Project.
Edit: Ha! It looks like we have this conversation every time there's a new release: https://news.ycombinator.com/item?id=12368914
You don't get to use the "unpaid volunteers" excuse when a good portion of FreeBSD's site is dedicated to explaining why GPL and copyleft is anti-corporate and big business should be/is afraid of it, and how BSD is more business friendly.
Red Hat is a business. FreeBSD is a volunteer/community project.
FreeBSD is a volunteer/community project that offers more business-friendly licensing than gNewSense, which is also a volunteer/community project. It is not, however, a business like Red Hat.
Red Hat development gets all that funding because Red Hat is a business. FreeBSD relies more on volunteer time because it is not a business.
Fedora is a "community" project of Red Hat. FreeBSD is a community project of, well, a community. Red Hat funds Fedora (astroturf project) as its testing ground for RHEL (commercial project), while FreeBSD is just a community project.
What part of this do you not understand?
While I don't want to dismiss you... The number of extremely profitable companies that built their products on top of freebsd tells me you're completely off base with your opinion.
Just off the top of my head: netapp ONTAP, emc isilon onefs, juniper Junos, Sony PlayStation, ixsystems, pfsense, Netflix, Intel, etc.
That means, you probably just can't cut releases on a schedule and call it a day, you also have to decide which commits should be added to your inbetween releases, and which should wait. Sometimes, that's probably pretty easy, but other times, I would expect a lot of things to be mixed together, especially when code refactoring is needed to enable new features, the refactoring may (hopefully) fix existing bugs, but the new features are likely to be unstable for some time, and shouldn't really get into a release until they're done.
Managing that without upstream cooperation sounds like a nightmare, or at least like something that needs a team of smart people.