Mobile is dead! (or the flexibility of Linux)
June 7, 2007 Leave a comment
Reading this post is a great reminder as to just how flexible Linux really is:
Back in the good old days we created mobile software from scratch. We created home grown operating systems for mobile phones, mobile stacks and UI frameworks, primitive light weight file systems, and so on. Back then, CPUs were lazy and flash was poor. Thus, we built dedicated software for mobile devices – and we called it Mobile Software ™.
Today, we run Linux, X, Gnome, Flash, and friends on Nokia N800. Our big idea form the start was to run –as closely as possible– a desktop Linux stack. Others will start to do the same and I predict that mobile software will thus eventually die. All we need is software that runs everywhere.
The N800 is a great example of this. For the most part it runs a fairly stock Linux (It’s Debian based – if you’ve never seen an N800 it’s a fantastic device and one I’m throughly enjoying). This is becoming the case even with things as small as a mobile phone. It’s “just” Linux. On the other end of the spectrum we have mainframes that run “just” Linux as well. Now sure, there are differences in kernel compile options, and while the mainframe will utilize NUMA the phone will have many things ripped out. In the end though, both are true Linux. That means you can use the same tools, the same developer knowledge and in many cases the same apps. Whether it be a phone, a tablet, a desktop or a server – it’s Linux. That’s a powerful proposition. OS X looks to be offering that same flexibility (and it’s not surprising, being BSD based) with the iPhone. Compare this paradigm to the Windows world. If you have a mobile or tablet it may run Windows Mobile, but it may run Windows CE. For a desktop you can choose between a couple versions of XP or myriad versions of Vista. For a server you have Windows 2003. Now most apps that work on XP will work on 2003 and many will work on Vista. I don’t think there is any compatibility between say Vista and Mobile or even Mobile and CE. You have different tool sets for many of these, completely different kernels in many cases and some have arbitrary limitations that I don’t quite understand from a technical perspective. Behind the scenes this all has to be a nightmare to manage and I’d guess the duplication of effort is astounding. Makes me glad I run Linux on almost every device I own :)