Mobile Operating Systems Comparison?
dozerbull asks: "I'm working at a Canadian telecom research lab. They are looking into the creation of tools that would facilitate the development of mobile applications. Symbian OS seems to be the lead target platform candidate. There is however a small crowd that is pushing for Microsoft stuff (Pocket PC and Smartphone). How do other systems (Linux and PalmOS) stack up? What would the Slashdot community advise by way of a choice of an operating system for mobile?"
Don't forget RIM.
Their OS targets the Corp. world very well.
Don't mod me, bro'!!!!
Never done it before, don't have the skills, etc. But....
1) Take a cue from Apple. They have hardware control and OS control, which means it is relatively easy to make an OS for that hardware - no (nearly) endless possbile combination of HW components.
2) Make it as easy as possible for 3rd parties to make software/utilities.
Don't blame me, I voted for Kodos
I would use linux as it can be as light wieght as you need it to be (Cheack out damn small linuxhttp://www.damnsmalllinux.org/) or more robust to suit your needs. Also here's a fine example of a linux pda http://www.linuxdevices.com/articles/AT2134869242. html
I personally think it is the most simple route to go as it's free and people will be more than will to make their own software for it.
I've done dev work on both Windows CE devices (AutoPC) and Linux (Zaurus) and I can tell you hands-down that Linux is way easier to work with. Windows CE's roots are that it's a hacked version of Windows 95, so you never know what's there and whether it will work. The Linux flavors are just that - same kernel compiled a different way. There' s not a special set of tools for the platform that your targeting, rather an enhanced set that build on top of an already great system. It's also great to have tools like SSH available for remote connectivity so that you can do keyboard entry from a real keyboard. So if the choice comes down to Linux vs. Windows CE, Linux is the clear winner.
If you don't want crime to pay, let the government run it.
you are giving us zero information to answer your question. So what you're going to get is a bunch of opinions on why you should like one platform versus another.
Which is totally useless in deciding which platform you should use.
Are you doing a proof of concept, or something that will be shipped by the hundreds of thousands?
What are the characteristics of the user?
What are the marketing considerations? E.g. if this is something that you are planning to market as an add-on for cell phone users, if you multiply the number of users of each platform times the proability of a user of that platform will buy the product, what is the potential user base. Alternatively, if you are planning to drive the adoption of mobile technology in an area, how much will it cost your users to buy a device, and will it suit their other needs?
Do you need access to a particular kind of peripheral? To a particular library or framework? What are your developers familiar with?
You really have to do a bit of work to frame your question. Every platform out there works for some users for some purposes. There are still users who swear by their Newton MessagePads.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
You forgot Java, specifically J2ME for mobile environemnts, and the accompanying MIDP and CDLC specs for libraries and interfaces.
I'm going to assume that this is for internal use, i.e. that you are not making actual product to send to customers. See note below as to why I make this assumption.
In which case, probably the best place to start is to download the SDKs for each device and look at them. do they suit your current dev tools? Can they work with your current compiler or IDE? What language are you planning to develop in?
Symbina and MS are probably a good focus to start on since they have the most variety of handsets and form factors.
(Note: because if they are real products for customers then the answer to your question is "whatever your bloody market is using you moron")
~~~~~ BigLig2? You mean there's another one of me?
Then the users will need one of these 384 way servers to run their mobile screen saver.
I know this may sound strange, but you might consider targeting AmigaAnywhere. It'll allow you flexibility to run on many different platforms (WinCE, PocketPC, SmartPhone, Linux, etc...) without having to rewrite code. The AmigaAnywhere platform is based on the Tao Group's virtual processor so it's write once, run anywhere. I'm not deeply familiar with how it all works, but I've heard good things. Something to consider at least.
Amiga Incorporated
Opinions count for nothing.
If you want something well supported in mobile devices with loads of information on how to do stuff, use Linux or Symbian (though Symbian is really more of a phone OS... at least it's tuned for that role)
If you want Outlook connectivity that's second-to-none, use Windows Mobile. I have a Smartphone that I think is great for what it does.
If you want reliability and a rock-solid OS or are running older hardware, do some homework and pick a good RTOS.
If you want raw speed, try assembler.
In the embedded space, the specific requirements of your device should drive the operating system choice. Personal preferences should count for nothing. Even a "company standard" is not good reason in my opinion to use a particular embedded OS; different hardware and application requirements demand different functions that may or may not be supported.
I think choice of embedded OS is a lot easier than choice of Desktop OS these days.
You mention Palm and Symbian. You mention Linux.
They generally tend to different niche markets.
Linux, NetBSD require at least 4MB ram for anything usable (yeah heard of linux-tiny uclibc etc) and are aimed at larger mobile devices that require lots of functionality and expandability. You can put perl, java apps, develop QT apps etc on these, and theyre heavily used in routers, PC104 industrial and medical machines and other custom embedded systems that arent quite mobile.
Then theres QNX, Palm and Symbian. Palm is entirely focused on PDAs and PDA-like personal devices. It has great graphics and personal-apps, mostly on ARMs and dragonballs. Symbian runs on ARMs, and is focused on even smaller devices, specifically cellphones. Both palm and symbian are very user-oriented, and cant support a great deal of multitasking since they dont support MMUs, except the latest palmos.
QNX and vxworks are non-user-oriented. vxworks was used in the mars rovers for instance, and is commonly used in ethernet switches and routers.
So you cant use symbian in routers, cant use palmos in mars rovers(efficiently), cant use linux in the smallest and simplest cellphones without the memory overhead, cant use 32-bit OSes in 8-bit microcontrollers and so on.
So please ask a more specific question.
"Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
because that's the most limited, but with most installed devices and pretty much the easiest to churn out code for(as long as you don't try to do anything impossible on it). and fucking every phone nowadays runs it(so you'll have HUGE, HUUUUGE installed device base). also if it's just something real simple you could introduce the service through a simply built web interface - if it's simple enough it'll be usable from any 'connected' device, be them mobile phones, pda's or laptops. and you'd be surprised for how many 'on the road' applications could be done by this very simple way.
but you really don't define too well your question.
if you're going to shoot for actual casual CUSTOMERS, then I would tell you to go j2me or symbian - simply because of numbers of potential customers for your app available. it doesn't help you much if you got an excellent product out if it's on a device that nobody really has, and the customer won't know if you had hard or easy time writing it.
if you're going to use it for internal purposes only AND have the possibility of choosing the devices as well, I'd go shopping for a device that is conviently shaped, the right price and powerful enough for your purposes(which could be a palm or some pocketpc probably, probably not symbian because well it's a bit of a bitch to code for, should change in the near future for the better though). connectivity is a factor here too. if you go with a popular phone, then even in internal use, it's more probable that people will actually haul it around with them(vs. pocketpc that would be 'extra' for them to keep around.. a phone they would have anyways).
world was created 5 seconds before this post as it is.
i know MS doesnt get much support around here, but using the .net compact framework has been relatively pain free...but we were also building a application for windows mobile 2003.... i think with mobile applications the target device is the major decision maker, what are you developing for ?
Crudely:
> 2mb RAM = vxworks
2-6mb RAM = NetBSD
>4mb RAM = Linux
Symbian? Symbian's a bit crazy. I feel that in order to have progress things need to die. Symbian is actually a rehash of PalmOS; very old. WinCE is actually ok, but again, it's just a rehash and you're not free. Linux is okay if you got the resources, convienient for porting. vxworks is a nightmare, check out the vx-explode mailing list!! It's like they don't want you to know anything about it since important things run on it... like cable modems...
Personally I find NetBSD idealolgically my favorite but I'm not well versed enough on the technicalities.
A blog I run for the wealth
The question is a bit generic, as others have already commented. I will share some of my findings however.
.NET framework, low-level C api's, emulator and more).
Symbian is mature and used on lots of phones (Nokia, Sony Ericsson and more). However, if you look at which models actually runs Symbian and allow the owner of the phone to actually put more Symbian stuff on it, those are usually limited to the very expensive high-end phones. I can only speculate why this is so, but it does not seem unlikely that the phone network operators have little or no interest in phones that would allow users to download applications (and I'm not talking about java toys, but apps that would actually make your phone more useful) which would enable data-rate messaging and similar, potentially killing the SMS based revenues really fast.
Developer support for Symbian is poor as well. Yes, search for "linux" and "Symbian" and you will find some tools (GnuPoc). Good luck - those leave a lot to be desired. If Nokia/Sony Ericsson really wanted independent developers supporting their platform, make sure developers get the tools they need easily, and at low or no cost (and that includes the compiler, not only the API).
Based on my experience, Microsoft currently supports developers nicely and most of the Microsoft phones have not been locked down (meaning users are allowed to download and install "native OS" applications). I know some operators (in the UK I believe) have locked down their Microsoft based phones, but this is the exception rather than the rule as far as I know. Microsoft make the developer tools easily available at no cost (including the compiler,
As for Linux based phones, I have not seen any in my part of the world (Northern Europe), but I've read about them.
So for now, if you want to develop and distribute applications independently (meaning being possible for a customer to download and install the application on his phone), your best bet would probably be to bet on Microsoft. Yes, there might be more Symbian-based phones out there, but in my experience very few of those actually allow users to install applications (high-end only, not the consumer models).
My $.02 anyway.
First off, "Smartphone" is a class of phones and not a specific OS. Pretty much all those platforms you mention are Smartphones. (I guess you could make a Linux non-Smartphone, but I've never heard of one.)
/lot/ of users.
Now just what are you making? They are looking into the creation of tools that would facilitate the development of mobile applications. Is pretty general. And "Telecom" can be anything from a mobile phone manufacturer to a mobile service provider.
If you want to make applications for the general pulic: Go with Symbian as that has a lot of users. Or go with Java Midp if possible if you want to get a
If you want to make inhouse apps: Go with whatever suits your current/future hardware. Of the mentioned platforms I'd still say Symbian, that has the most compatible handsets. Although it can apparently be a bit hellish to develop for (or I've heard from people who actually do it).
If you are making development tools or looking into making mobile phone platforms: Do your own damned research and don't try run before you can crawl.
can run terminal services.
is there even a VNC client for Symbian?
with terminal services/vnc, you can run the largest server in the world on your handheld readily..
every day http://en.wikipedia.org/wiki/Special:Random
There are two for J2ME:
: //j2mevnc.sourceforge.net/
http://www.freeutils.net/vnc2go/index.jsp
http
If you are considering Microsoft, open a vein, let them stick in their sucker and start sucking your blood, then bend over and wait for the other fun. You might feel some pleasure along the way, but when it's all done, you'll be lucky to own any piece of the value chain.
Forget Windows Mobile and Palm... what you need is PSP. Productivity to the max! :D
The friendliest digital photography forums on the net!
Check out handhelds.org and the Familiar project. Most of the new stuff is on the wiki, and on the mailing lists (recent archives of which can be viewed through gmane.org).
We think Familiar provides a base operating system and application set that seriously rivals (if not outdoes) other mobile offerings. The only major issue we have on devices such as the iPAQ that don't run Linux out of the box is that getting all of the hardware supported is a difficult job. However, this situation is improving - commercially-sponsored projects to port Linux to specific handheld devices are currently going on, as are others driven by developers working individually.
Companies taking Familiar and using it as a base for something to be used in commercial products would be a good thing (provided that the GPL is followed, of course). We'd definitely like to see more of that happening.
Are you actually writing apps for the OS, or can you write an app in J2ME or BREW? It seems odd to be writing for a particular OS.
I'm working at a Canadian telecom research lab. They are looking into the creation of tools that would facilitate the development of mobile applications. Symbian OS seems to be the lead target platform candidate. There is however a small crowd that is pushing for Microsoft stuff (Pocket PC and Smartphone). How do other systems (Linux and PalmOS) stack up? What would the Slashdot community advise by way of a choice of an operating system for mobile?
Your question does not make any sense. Choose whatever your end users are using. If you don't know that, ask them. Do some market research.
There are zillions of toolkits that "facilitate development of mobile applications". Many of these are cross-platform, covering the OS with a badly integrated and resource-intensive layer (think J2ME/MIDP) which end up providing a crappy end user experience.
Others aim at providing utility libraries for a single platform, such as cryptography, XML, synchronization or networking utilities. Since OS vendors continuously improve their platforms, these 3rd-party toolkits have a really short lifetime. Building single-platform development tools also requires deep knowledge of the target platform; usually you acquire the deep knowledge FIRST and THEN choose the platform.
Finally, assuming that you DO have deep knowledge of all available platforms, you should already know what platform to choose. No need to Ask SlashDot.
--Bud (mobile developer since 1997)