Originally Posted by samab
I do remember Mach, but the discussion was about how it was "complicated" the QNX microkernel supposed to be because stuff are pushed into the userspace. So we have iphone with a RTOS microkernel/hypervisor doing baseband and then mach runs on top of that and then iOS/OS X stuff runs on top of that.
RIM/QNX advises people to do use native codes for multithreading stuff and use flash just for the UI front-end.
You know I missed you saying something that stupid due to your other more stupid comment regarding iOS lacking true multitasking which caused subsequent poor reading comprehension on my part.
You DO know where the baseband OS runs right? Hint: There is something called the baseband processor
on the iphone. In the iphone 3g/gs that's the PMB8878. On the 4 that's the pmb9800. It has it's own ram and is a ARM1176 running at 416MHz.
iOS does NOT run on top of the baseband OS running in the baseband processor. iOS runs on the primary application processor...the A4.
There was maybe one comment regarding the complexity of microkernels not scaling well to more complex OSs vs use within a RTOS. While this is sorta true, I think we can say that OSX shows this isn't all that big a deal anymore. The QNX kernel has some advantages of Mach but total system performance depends on all the layers working well together. And QNX doesn't have some magical advantages over OSX/iOS/mach in terms of multiprocessor/multicore support.
I'm thinking that doing AIR based UIs and QNX based native code is a bit rube goldberg and risky on RIMs part from the perspective of gaining new devs. It's one thing to make a decent looking flash UI in a vehicle with in house devs. It's another to make it not a huge annoyance for app devs. This is one area that both Apple and MS work hard at. Google, a little less so.
QNX? I've never developed for QNX but I have for VxWorks and other RTOS (Lynx, pSOS). It's never been a high pri item for RTOS makers. Developing for an RTOS is a pain in the ass with far more complexities than for a general purpose OS. The last thing as an app developer that I want to do is have to deal with the annoyances of an RTOS.