3 ms·
Years ago it seemed to me that Symbian was a dead-end. Just reading about the programmer APIs was enough to convince me of that. Motorola finally realized tha
by ansible 16y ago
Years ago it seemed to me that Symbian was a dead-end. Just reading about the programmer APIs was enough to convince me of that.
Motorola finally realized that P2K and their other proprietary stuff wasn't going to cut it for the future. Most of these mobile phone OSs were designed for very small, resource-constrained devices. Which is fine... that's all that was viable in the market at the time. But they weren't designed to scale up.
For example: Android uses Linux, and it has had MP support for a long time (late 1990's?). Even as of five years ago, many people would have thought that a phone with a multi-core CPU is crazy. Why would you need all that power (and power consumption)? And here we are in 2011, with the Nvidia Tegra 2 and other CPUs in shipping phones. For most of those phone OSs, adding multi-core support would be a multi-year re-write. Linux? No problemo.
And beyond that, there is database support, and support for various Internet-based protocols (chat, radio, web, etc.). And what is needed for that is a really solid TCP/IP stack. I've seen (and done) things to a TCP/IP implementation to get it running on a small device. It wasn't pretty. Or high performance. It will 'work', but not for heavy duty use like you'd need on a smartphone these days.
Edit: grammar. Mention of TCP/IP stack.
- iuguy 16y agoThat's a good comment, but bear in mind that the MP support in the 90s was Pentium Pro only (and expanded to x86/64). While multi-processing algorithms can be generalised, they're best when they're optimal for the architecture they're running on. MP on Arm is quite different when it comes to things like thumbing and pipelining compared to x86. I only know this because I did some work on Arm 7 after doing some MP work on Pentium Pro 200s a few years earlier. It's amazing the crap your brain collects over time!
- ansible 16y agoOh, indeed. My point was that the rest of the kernel (VFS, device drivers, etc.) was already fairly well prepared for MP when ARM multicore came into the picture.