Now that you've seen what's the same about the two generations of OS, let's look at where QNX Neutrino has improved functionality over QNX 4:

While some of these improvements are "free," meaning that there are no compatibility issues (for example, POSIX pthreads weren't supported under QNX 4), some things did require fundamental changes. I'll briefly mention the classes of changes that were required, and then we'll look in detail at the compatibility issues caused as well as suggestions on how to port to QNX Neutrino (or keep your code portable between the two).