Hacker News new | past | comments | ask | show | jobs | submit login

"The OS" doesn't matter because it has been decoupled from "the platform", which remains crucial. Developing for Android or iOS, you are exposed only to vague clues that they are implemented on top of Unix. The only reason the OS ever did matter is because virtual machines and complete API abstraction layers have not always been practical.

Also, writing off QNX as just another Unix is a mistake. An RTOS with synchronous IPC baked in to the kernel is potentially game changing technology, though I am skeptical that RIM will manage to fully exploit it.




What advantages do you expect those attributes of QNX could bring to RIM and their users? I understand that QNX has more sophisticated real time capabilities than Android's Linux and iOS' Mach/BSD kernel, but what does that make possible/easier for applications and frameworks on top of QNX than on top of those other kernels?

I certainly agree with you that "the OS" doesn't just mean the kernel nor even the basic userland anymore.


It's a big topic, but in a nutshell: when you can make calls across processes, simply and efficiently, it opens a world of possibilities for interoperation between applications. You can't fake this with sockets, no matter what you layer on top.

Surprisingly, it was the legacy BlackBerry OS that made me realize this. It has seamless IPC too, but only as a side effect of a horrifically insecure and unstable memory model.


Do you have any examples or links? I'm sorry, I'm really interested in what you're saying but I'm just having trouble imagining how it would affect my architecture or what I could do with it that I couldn't feasibly do without. Thanks. And, yeah, things were a whole lot easier back before all this silly security and memory protection, weren't they? :)


It takes a bit of imagination, but think about replacing shared libraries, plugins, and socket IPC with services that live in their own process with their own lifecycle and security sandbox, but can still be accessed efficiently. Apps can be built from many such services, and services can be shared between apps.

There have been many attempts to build this sort of capability into mainstream operating systems, but none have become popular due to the inescapable complexity of IPC. A recent example is D-Bus, which is supposed to be "lite" yet still involves XML interface descriptions and serialization. It's enough of a hassle to implement that nobody bothers, unless it's the only option or they are evangelizing the technology.

QNX is built from the ground up to do everything this way. If it makes IPC easy enough, it could bring this type of software architecture to critical mass.

I realize this is still pretty vague, but I can't think of a specific example at the moment. If you're interested, read up on QNX, or Coyotos, which is a more experimental OS that is based fundamentally on IPC.


Thanks very much for the reply. Yeah, that's interesting. I wonder how much Blackberry's new OS will leverage that, especially since they seem to be targeting the ability to write apps that run on OS 6 and the new Tablet OS. I suppose that's probably more at the UI level whereas services that can be cleanly separated could still perhaps use a separate service model on the QNX based OSes. And of course there could be some interesting implications for the OS' ability to manage these granular processes for maximizing battery life/etc.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: