Since I’m a little under the weather at the moment, posting is a bit slow on OSAlert (yes, a story about Notion Ink’s Adam is upcoming!). I’m kind of picking the simple and easy-to-write items for now, and this is most certainly one of them. As some of you might know, Microsoft unveiled Windows Phone 7 Series yesterday, a complete reboot of its mobile operating system. While little is known about its internals, it’s most likely based on Windows Embedded CE 6.0.
Windows Embedded CE 6.0 has been released a long, long time ago. Perusing through the OSAlert archives reveals that it was released November 1, 2006 – more than three years ago. Windows Embedded CE 6.0 brought with it numerous improvements over version 5.2, partially because the kernel was completely redesigned. However, despite being over three years old, Windows Mobile is currently still using version 5.2. The Zune HD, however, does use version 6.0.
So, what, exactly, are the improvements made in version 6.0? As already mentioned, the kernel was completely redesigned, giving it support for 32768 simultaneous processes, with each process capable of supporting up to 2GB of virtual memory. Windows Embedded CE 5.2 has a maximum of 32 processes supporting a maximum of 32MB per process. CE 6.0 runs on x86, ARM, SH4, and MIPS.
Microsoft also took the opportunity to do some shifting around between kernel and userspace. Things like GWES, device driver manager, and file system manager were all moved into kernelspace to improve performance. In addition, whereas CE 6.0 supports kernelmode drivers, 5.x did not.
There are more improvements than just these, obviously, but I chose to highlight these to illustrate just how different 6.0 is from 5.2.
Another important aspect of Windows Embedded CE 6.0 is its shared source model (not to be confused with open source or Free software, by the way). The entire source code for the kernel, many of its drivers, and some higher-level parts, is available for viewing, straight from the Windows Embedded CE 6.0 distribution package.
Windows Phone 7 Series is not just a massive reboot of the Windows Mobile user experience – the core of the operating system is also a vast improvement over previous versions of Windows Mobile. As such, it simply doesn’t make a whole lot of sense to call WP7S “Windows Mobile 7”.
As interesting as this stuff sounds, it doesn’t answer any of the burning questions regarding Microsoft’s new mobile operating system, such as how (or if) it does multitasking, how application distribution is handled, and so on.
Windows CE 6.0 R3 kernel is fantastic. the 6.0 release is by far one of the best embedded systems out there, that and QNX (glorious QNX).
It is an improvement and has more future than WinMo (although that doesn’t say much), but “best” is a big word .. most embedded devices at this years CES would disagree.
But anyways, I think it is a pretty safe bet that WP7 will have no real multitasking (where it counts) and that app development will done with Silverlight 4.0 and you get apps from the market, but I guess MS will be more developer friendly than Apple in some ways .. not sure which though.
Most of my coding goes into the embedded space these days, so as far was WinCE (not win phone, but it’s underlying platform go) its surprisingly good.
As for multi tasking, WinCE 6.0 R3 is very very good at multi tasking. I would be surprised if MS prevented their phone setup from being able to, after all they are trying to get the edge over apple and that would be a good way to do it. even apple is reportedly going to have multi tasking enabled in their 4.0 release. The only drawback if battery usage increases (and some other things not worth mentioning due to irrelevance). MS wants to get the upper hand, and I would be shocked if they shipped this new mobile OS (based on CE 6.0 R3) totally stripped down, it just wouldn’t make sense.
MS already announced that there won’t be multitasking.
So recent experiences with webOS phones getting really slow when a few apps are open is “not worth mentioning due to irrelevance”?
They have not announced any such thing. They haven’t said ANYTHING about this.
“So recent experiences with webOS phones getting really slow when a few apps are open is “not worth mentioning due to irrelevance”?”
The WebOS problem you use as an example is, well, a WebOS problem. It’s a fairly new operating system and its multi tasking implementation is not as good. WinCE 6.0 has been tried and tested under a staggering amount of different circumstances and mission critical environments. WinCE’s multi tasking is incredibly efficient and has been fine tuned over many years. WebOS is still, to an extent, in it’s infancy and does not have it’s roots any deeper than the hand held market.
So just to wrap things up, WebOS’s slow downs, due to multiple applications running at the same time, effect (drum roll)…. WebOS.
Edited 2010-02-16 23:47 UTC
webOS is a standard Linux OS with a proprietary GUI slapped on top of it. There it nothing new about its multitasking capabilities.
Are you sure you are a “professional” on that field when you don’t even know such basic things?
Err, it might be Linux underneath, but webOS has a completely custom userland – heck, it has a very revolutionary userland. It’s not just a reimplementation of some existing idea – it’s completely new.
As such, it is to be expected that the webOS’ multitasking capabilities need refining.
Since when does the userland handle multitasking?
Oh, and BTW: webOS’s userland is far from being totally new. If you look at http://opensource.palm.com/1.3.5.2/index.html you’ll see many familiar packages (at least familiar to people with some Linux knowledge)
Edited 2010-02-17 00:24 UTC
yes it is not 100% new and created from nothingness, but as a whole put together package, it is new. also, if you know your OS’s under the hood, user land (many aspects of it) doesn’t access the kernel with a single thread, and i believe webos’s UI elements interact with the kernel over multiple threads (i could be wrong though, i don’t use or program for webos… yet).
keep in mind i could be wrong on this and have not done the appropriate research the verify…
Where did he say that it did. Either provide proof or retract.
Yes, but a system is a sum of all its parts; the kernel is but one component, how they operate together in a system dictates how well it functions.
I understand his thinking and consiquently, why its wrong.
Basically Thom said WebOs didn’t handle multitasking well because it was new, then the other guy pointed out the kernel was linux thus not new. Mutlitasking is properly perfomed in an os in the kernel. While that’ts true, that’s almost besides the point.
Think back to the horribleness of basic Visual basic apps. When the app is busy the UI wouldn’t redraw itself because it was freaking impossible to do multithreading inside visual basic. Sure the win32 kernel could multitask, but that didn’t magically make the interface of an app redraw itself when the rest of the app was busy. The new part of WebOs is essentially like that Visual Basic environment ( only obviously better). Its ability to do multiple things at the same time is not determined by the kernel.
In other words, the Apps may not be (and I’m guessing are not) independent of the WebOs (non kernel) environment. It probably has its own thread management/scheduling code and the separate apps are really just running in the environment.
If you bother to read the initial post of this thread, you’ll understand that it’s solely about the kernel performance.
Your VB comparison is flawed, because I just argued that Linux is a proven kernel.
Sure, you can put bad performing apps on top of the Linux kernel, but so can CE apps perform bad on top of a CE6 kernel — unless you can prove that CE6 has some sort of magic abilities to make all apps perform greatly.
No, its not. I was replying to the webOS performance aspect. Not Ce Vs Linux or anything of the sort.
I’m just saying that if Web os suffers multitasking problems its not from the kernel. The applications are probably being run from within a larger framework that suffers from running multiple apps with it. My main point was that its entirely possible to build a crappy app that controls other apps on top of a good kernel.
WebOS does not use a completely vanilla linux kernel. Multi tasking on the kernel has to be optimized for each platform (and compile target) that you are deploying. different hardware can require changes to the kernel in order for a successful compile and optimization. WebOS also has taken many thing out of the kernel that were not needed for Palm’s platform. Just because something runs a linux kernel doesn’t mean it will run the same on different architectures and platforms, especially when the user land aspects are fairly different (as a whole) than the longer running traditions WM’s or DE’s.
That’s a very good point as well.
Yes, I see ipkg, which was developed for the Compaq/HP iPaq at the time. Like Nokia’s Maemo and Ubuntu all based on Debian and Linux, interresting.
An operating system is more than the just the kernel; an operating system is made up of many components and just because it uses a component from few open source projects doesn’t change the fact that it is more or less a new operating system. New doesn’t have to mean “from the ground up”.
The original postered pointed out that it is a new operating system because many of these components aren’t full optimised for the constrained environment – thus there has been severeal releases so far fine tuning different parts of the operating system to make battery life better, multi-tasking smoother and so on.
The way you’re behaving sounds like you’re accusing Palm of simply grabbing some soruce code, compiling it and then throwing it on a telephone and hoping for the best.
Edited 2010-02-17 02:02 UTC
Don’t put words into my mouth! I never wrote that. Go trolling somewhere else!
It doesn’t sound like they used a Linux-variant that is actually tuned for embedded use. But more of a general purpose one, normally used for desktops or maybe even servers.
What do you think “tuned for embedded use” even means?
Linux kernels for embedded systems are not total rewrites. Embedded developer Monta Vista does all its work upstream in the Linux kernel — Monta Vista is one of the biggest kernel contributors.
It’s not rocket science to turn off features that are not needed on phones, just as it’s not rocket science to turn on or tweak other options.
How do you know? Compared to what?
(I distinctly remember a door locking system based on an earlier version of WinCE we had to ‘hard reboot’ several times. Does not sound like a “fantastic kernel” at all. Based on those experiences, I wouldn’t trust WinCE a bit – seems more like a toy OS for cheap CE devices to me which is inappropriately used for things it shouldn’t just because companies happened to occupy some Windows developer somewhere)
He said he was a RT programmer, which seems more knowledgable than you. Your door opening example may well not be an OS problem, it’s easy to take a good kernel and trash it with bad coding, especially in the RTOS world.
“Compared to what?”
BeRTOS, VxWorks, QNX, Nucleus, FreeRTOS, Nuttx, LynxOS, Microware OS-9, MontaVista Linux. (QNX is my favorite. ACCESS linux too, but it doesnt quite count).
“I distinctly remember a door locking system based on an earlier version of WinCE we had to ‘hard reboot’ several times. Does not sound like a “fantastic kernel” at all.”
Prior to WinCE 5 the platform was less than impressive, only keeping up with customer demand, very little innovation. When 5 was released MS aimed at taking their embedded development seriously and innovating instead of doing just what it took to get by. Version 6 later came out making version 5 look like garbage. WinCE 6 is more powerful than any of the OS’s I listed at the top (with the exception of QNX).
on a side note, Flash support is going to be easier than with the other OS’s since 6.0 R3 already has flash working (flash lite). See what I mean here: http://www.microsoft.com/windowsembedded/en-us/products/windowsce/p…
“New: Internet Explorer Embedded
Internet Explorer feature enhancements like panning and zooming, Flash Lite 3.1 support…”