Starting in 2003 we used NetBSD for good reasons.
The first order for SwiftIOS required that we use an approved operating system, which in this case was either Linux or Windows.
Whilst we considered that NetBSD was and is superb, our experience of developing had shown that the core is brilliant - but that third party stuff is often lagging behind Linux and often has bugs that hampered us, so in many ways we felt that moving over to Linux would be an overall improvement.
We knew that this meant redoing the way that UNOS eventcounts were emulated - under NetBSD we had used a kernel driver based approach which was painful in terms of debugging and keeping up with kernel changes. We knew that the shared memory would need to be redone and that our IPC methods would change.
At the same time we decided to switch to using boost, for shared memory, IPC and synchronisation / locking (mutex etc.)
The resulting system was faster and more stable because of the move of everything into user mode.