At the time of writing, I found three major mobile platforms that are continue to occupy the market space: Android, iOS and Windows Phone.
OS: Linux Kernel
Virtual Machine: Dalvik Virtual Machine
Application runtime: Dalvik VM runs java applications, native C/C++ code can be written for resource intensive applications as well.
Development: Android is open source and android applications can be developed using Eclipse IDE. Any platform – Windows, Apple, Linux can be used to develop Android applications as the development kit comes with Android VM and emulator for development and testing.
Virtual Machine: None
Application run time: Native code written in C.
Development: iOS SDK is only available for MAC OSX. Apple developed Objective C language that can be leveraged to create powerful components using the XCode IDE, also the framework for iOS development. So, apple uses the simplicity of C at run time to run native code and developers can use the iOS development framework to make their C development tasks extremely easy.
OS: Widows CE Kernel
Virtual Machine: CLR
Application runtime: CLR for running Silverlight and .Net applications.
Development: XNA is used for game development and Silverlight and .Net for any other applications. They can be developed using the Visual Studio Express IDE that can run on Windows Vista and above only.
There are other platforms which are less common: Symbian for Nokia, WebOS for HP, Bada for Samsung, QNX for BlackBerry, Java ME for cheaper mobiles, BREW, MeeGo and Moblin.