QNX vs WinCE

I’ve had a hard time examining the differences between QNX and WinCE.
I’d prefer to develop for our embedded project using QNX since I come from
a unix background, but I’ve had a strong push from management to use
WinCE. I really need to show them why WinCE would be a bad idea with hard
data. So…

Where can I find information on performance speed? (switching speed,
soft & hard interrupt latency, etc.)

Where can I find information about comparing methods of scheduling, memory
management, etc?

And finally, why is POSIX-compatibility important? My understanding is
that WinCE is not POSIX. Why is POSIX a benefit?

Thanks in advance!

I’ve had a hard time examining the differences between QNX and WinCE.

I’d prefer to develop for our embedded project using QNX since I come
from
a unix background, but I’ve had a strong push from management to use
WinCE. I really need to show them why WinCE would be a bad idea with
hard
data. So…

The fact that you are more productive under QNX is a valid point for
starters.

Where can I find information on performance speed? (switching speed,
soft & hard interrupt latency, etc.)

QSSL does have this information on their web site, but as with any type
of benchmarking, something that you run on you own platform will be much
easier to relate in a meaningfull way. QSSL does have a performance
monitoring tool, that they handed out at their roadshow which you could
run on your platform so that you could compare easier (you’d have to ask
Microsoft if they have something similar - if they don’t, I think that
speaks volumes).

Where can I find information about comparing methods of scheduling,
memory
management, etc?

Do you have the RtP distribution ? If you have it, the online docs have
a fairly good overview under QNX Neutrino OS 2.11->System Architecture.
If you don’t they also have this doc on their website qdn.qnx.com (on
the left side there is a hyperlink to the documentation).

As for CE, I assume that you are posting on their newsgroup with the
same question.

And finally, why is POSIX-compatibility important? My understanding
is
that WinCE is not POSIX. Why is POSIX a benefit?

In a word portability. There are two types of portability that Posix
supports, the first is application portability, and the second (which is
more important for embedded systems) is programmer portability. Any
programmer who knows Unix/Linux (there are many more of these than
experienced CE programmers) can be up to speed on QNX very quickly. CE
is a lot different than Windows programming (the reason is that Posix
was designed from the ground-up to be a layered API that supports
different hardware profiles - toasters to supercomputers, while Win32
API was only designed with the desktop in mind). Microsoft will, of
course, try to convince you that programming CE is like programming
Windows. The best way to demo to management how truthful microsoft is
being, is to concoct a non trivial test project within the domain you
are targeting, and have your best Windows programmer do it on CE, and
your best Linux programmer do it on QNX, and see who has the easiest
time - to make it really fair, you need to split the test project into
two parts, with the second part kept secret from the two programmers
developing the system - once both have completed the first part, the
second part is then revealed and the modifications are made, this gives
an idea as to the quality of the part 1 implementation - i.e. how easy
it is to maintain. Is this a lot of effort ? yes; is it worth it ? it
depends on what you are committing to building, if this is the basis of
a whole new product line, you bet it’s worth it; oh, and if your gonna
do this, keep an eye on the Windows programmer, he’ll most likely try to
find out ahead of time what the secret part 2 is (Windows programmers,
being immersed in the environment, tend to absorb the microsoft way of
doing things :wink:

I thought that Wince was no longer available. If that is true, I’d say it’s
a pretty good argument. Even if it is not true, I can think of a zillion
other good reasons. Like, QNX actually works!


Bill Caroselli - Sattel Global Networks
1-818-709-6201 ext 122



“Rennie Allen” <RAllen@csical.com> wrote in message
news:D4907B331846D31198090050046F80C903AABC@exchangecal.hq.csical.com

I’ve had a hard time examining the differences between QNX and WinCE.

I’d prefer to develop for our embedded project using QNX since I come
from
a unix background, but I’ve had a strong push from management to use
WinCE. I really need to show them why WinCE would be a bad idea with
hard
data. So…

The fact that you are more productive under QNX is a valid point for
starters.

Where can I find information on performance speed? (switching speed,
soft & hard interrupt latency, etc.)

QSSL does have this information on their web site, but as with any type
of benchmarking, something that you run on you own platform will be much
easier to relate in a meaningfull way. QSSL does have a performance
monitoring tool, that they handed out at their roadshow which you could
run on your platform so that you could compare easier (you’d have to ask
Microsoft if they have something similar - if they don’t, I think that
speaks volumes).

Where can I find information about comparing methods of scheduling,
memory
management, etc?

Do you have the RtP distribution ? If you have it, the online docs have
a fairly good overview under QNX Neutrino OS 2.11->System Architecture.
If you don’t they also have this doc on their website qdn.qnx.com (on
the left side there is a hyperlink to the documentation).

As for CE, I assume that you are posting on their newsgroup with the
same question.

And finally, why is POSIX-compatibility important? My understanding
is
that WinCE is not POSIX. Why is POSIX a benefit?

In a word portability. There are two types of portability that Posix
supports, the first is application portability, and the second (which is
more important for embedded systems) is programmer portability. Any
programmer who knows Unix/Linux (there are many more of these than
experienced CE programmers) can be up to speed on QNX very quickly. CE
is a lot different than Windows programming (the reason is that Posix
was designed from the ground-up to be a layered API that supports
different hardware profiles - toasters to supercomputers, while Win32
API was only designed with the desktop in mind). Microsoft will, of
course, try to convince you that programming CE is like programming
Windows. The best way to demo to management how truthful microsoft is
being, is to concoct a non trivial test project within the domain you
are targeting, and have your best Windows programmer do it on CE, and
your best Linux programmer do it on QNX, and see who has the easiest
time - to make it really fair, you need to split the test project into
two parts, with the second part kept secret from the two programmers
developing the system - once both have completed the first part, the
second part is then revealed and the modifications are made, this gives
an idea as to the quality of the part 1 implementation - i.e. how easy
it is to maintain. Is this a lot of effort ? yes; is it worth it ? it
depends on what you are committing to building, if this is the basis of
a whole new product line, you bet it’s worth it; oh, and if your gonna
do this, keep an eye on the Windows programmer, he’ll most likely try to
find out ahead of time what the secret part 2 is (Windows programmers,
being immersed in the environment, tend to absorb the microsoft way of
doing things > :wink:

Another item to add to your comparison, Carl, would be architecture. QNX
microkernel is far more stable than the WinCE architecture, which is a
monolithic kernel. Personal experience: I owned a WinCE handheld for a
while, and installed a third party handwriting recognition app onto it. The
app was buggy, and just like a PC, I had to reboot my handheld every other
day. QNX isolates everything, including drivers from the kernel. So, if
you’re planning to deploy your products in scenarios where there are likely
to be non-technical people using them (an industrial setting, for instance),
or mission critical functions depend on them (a nuclear reactor…) or
consumers use them (imagine re-booting your fridge, or television!) or …
well, you get my point, I’m sure.



“Carl Hanson” <nemesis@naboo.outflux.net> wrote in message
news:Pine.LNX.4.10.10104041547090.8071-100000@naboo.outflux.net

I’ve had a hard time examining the differences between QNX and WinCE.
I’d prefer to develop for our embedded project using QNX since I come from
a unix background, but I’ve had a strong push from management to use
WinCE. I really need to show them why WinCE would be a bad idea with hard
data. So…

Where can I find information on performance speed? (switching speed,
soft & hard interrupt latency, etc.)

Where can I find information about comparing methods of scheduling, memory
management, etc?

And finally, why is POSIX-compatibility important? My understanding is
that WinCE is not POSIX. Why is POSIX a benefit?

Thanks in advance!

On Tue, 10 Apr 2001 08:08:22 -0700, “QDN” <alecs@qnx.com> wrote:

Another item to add to your comparison, Carl, would be architecture. QNX
microkernel is far more stable than the WinCE architecture, which is a
monolithic kernel. Personal experience: I owned a WinCE handheld for a
while, and installed a third party handwriting recognition app onto it. The
app was buggy, and just like a PC, I had to reboot my handheld every other
day. QNX isolates everything, including drivers from the kernel. So, if
you’re planning to deploy your products in scenarios where there are likely
to be non-technical people using them (an industrial setting, for instance),
or mission critical functions depend on them (a nuclear reactor…) or
consumers use them (imagine re-booting your fridge, or television!) or …
well, you get my point, I’m sure.

Yeah but you can’t find recognition software for QNX, so architecture
isn’t everything…

“Carl Hanson” <> nemesis@naboo.outflux.net> > wrote in message
news:> Pine.LNX.4.10.10104041547090.8071-100000@naboo.outflux.net> …
I’ve had a hard time examining the differences between QNX and WinCE.
I’d prefer to develop for our embedded project using QNX since I come from
a unix background, but I’ve had a strong push from management to use
WinCE. I really need to show them why WinCE would be a bad idea with hard
data. So…

Where can I find information on performance speed? (switching speed,
soft & hard interrupt latency, etc.)

Where can I find information about comparing methods of scheduling, memory
management, etc?

And finally, why is POSIX-compatibility important? My understanding is
that WinCE is not POSIX. Why is POSIX a benefit?

Thanks in advance!

No, I bet you can find recognition software for QNX, if you are the
right customer (true you can’t buy a package off the shelf). I know
that Photons input system was designed to have the determinism and
resolution to support handwriting recognition (to do good handwriting
recognition, three axis measurement - x,y and pressure, and reliable
sampling rates to establish accurate acceleration/deceleration profiles
are required - this is a big problem for Windows/WinCE apps - perhaps
this is why the WinCE app mentioned below crashed - it had to bypass the
O/S to get the necessary performance).

I think the main reason that we haven’t seen good handwriting
recognition on portable devices yet is primarily due to the cost of high
res pressure sensitive touch screens, and lack of OS support for such
devices (Photon supports them though). Contrary to the implication of
your post, if a company wanted to make a really good handwriting
recognition system, QNX would probably be the best choice, due to the
fact that Photon was designed from the ground up to support it. I do
think that really good handwriting recognition on portable devices will
show up in the next couple of years. (hopefully due in some part to QNX
:slight_smile:.

-----Original Message-----
From: mcharest@nozinformatic.com (Mario Charest)
[mailto:mcharest@nozinformatic.com]
Posted At: Tuesday, April 10, 2001 8:32 AM
Posted To: advocacy
Conversation: QNX vs WinCE
Subject: Re: QNX vs WinCE


On Tue, 10 Apr 2001 08:08:22 -0700, “QDN” <alecs@qnx.com> wrote:

Another item to add to your comparison, Carl, would be architecture.
QNX
microkernel is far more stable than the WinCE architecture, which is a
monolithic kernel. Personal experience: I owned a WinCE handheld for
a
while, and installed a third party handwriting recognition app onto it.
The
app was buggy, and just like a PC, I had to reboot my handheld every
other
day. QNX isolates everything, including drivers from the kernel. So,
if
you’re planning to deploy your products in scenarios where there are
likely
to be non-technical people using them (an industrial setting, for
instance),
or mission critical functions depend on them (a nuclear reactor…) or
consumers use them (imagine re-booting your fridge, or television!) or

well, you get my point, I’m sure.

Yeah but you can’t find recognition software for QNX, so architecture
isn’t everything…

“Carl Hanson” <> nemesis@naboo.outflux.net> > wrote in message
news:> Pine.LNX.4.10.10104041547090.8071-100000@naboo.outflux.net> …
I’ve had a hard time examining the differences between QNX and WinCE.
I’d prefer to develop for our embedded project using QNX since I come
from
a unix background, but I’ve had a strong push from management to use
WinCE. I really need to show them why WinCE would be a bad idea with
hard
data. So…

Where can I find information on performance speed? (switching speed,
soft & hard interrupt latency, etc.)

Where can I find information about comparing methods of scheduling,
memory
management, etc?

And finally, why is POSIX-compatibility important? My understanding
is
that WinCE is not POSIX. Why is POSIX a benefit?

Thanks in advance!

On Tue, 10 Apr 2001 11:43:24 -0700, Rennie Allen <RAllen@csical.com>
wrote:

No, I bet you can find recognition software for QNX, if you are the
right customer (true you can’t buy a package off the shelf). I know
that Photons input system was designed to have the determinism and
resolution to support handwriting recognition (to do good handwriting
recognition, three axis measurement - x,y and pressure, and reliable
sampling rates to establish accurate acceleration/deceleration profiles
are required - this is a big problem for Windows/WinCE apps - perhaps
this is why the WinCE app mentioned below crashed - it had to bypass the
O/S to get the necessary performance).

I think the main reason that we haven’t seen good handwriting
recognition on portable devices yet is primarily due to the cost of high
res pressure sensitive touch screens, and lack of OS support for such
devices (Photon supports them though).

Lack of OS Support? If your ready to shell out money to write your
own handwriting recognition software, writing your own input stuff to
bypass the OS shouldn’t be an issue.

Contrary to the implication of your post

[cut]

Well I reread my post, could not find such an implication :wink:

Let me clarify (and since this is advocacy). My customers are in the

1000 to 10000 unit volume. I don’t consider this huge volume. Hence
they look for as much off the shelf component as possible. First
to reduce cost, second to shorten development time.

My understanding of PalmOs is that handwriting recognition is build in
(if not the hanwriting example should be replace by something else…)
If you build a Palm like device (no real-time requirement) and you
need handwritting recognition, what OS are you going to choose.
PalmOS with the buildin stuff or QNX6 with the superior architecture.
I would choose PalmOS.

Handwritting on QNX6 may be better but today it aint there. That’s
the case for LOTS of features nowadays. From my observation QNX6
definitely lack behind most other OS in this area and is not
improving. . In my day to day work this is getting to be more and
more of a problem for my customer. Sure QNX6 is comming out
with new stuff, USB for example. but I don’t feel that’s enough,
the gap isn’t closing.

In conclusion my point is (no more not less), architecture isn’t
everything.

  • Mario

Yeah but you can’t find recognition software for QNX, so architecture
isn’t everything…


“Carl Hanson” <> nemesis@naboo.outflux.net> > wrote in message
news:> Pine.LNX.4.10.10104041547090.8071-100000@naboo.outflux.net> …
I’ve had a hard time examining the differences between QNX and WinCE.
I’d prefer to develop for our embedded project using QNX since I come
from
a unix background, but I’ve had a strong push from management to use
WinCE. I really need to show them why WinCE would be a bad idea with
hard
data. So…

Where can I find information on performance speed? (switching speed,
soft & hard interrupt latency, etc.)

Where can I find information about comparing methods of scheduling,
memory
management, etc?

And finally, why is POSIX-compatibility important? My understanding
is
that WinCE is not POSIX. Why is POSIX a benefit?

Thanks in advance!
\

Lack of OS Support? If your ready to shell out money to write your
own handwriting recognition software, writing your own input stuff to
bypass the OS shouldn’t be an issue.

I didn’t suggest that one could not purchase the recognition technology.
Bypassing the OS can be a very big issue depending on the architecture
of the OS (in QNX it would be a breeze - but wait you don’t have to
anyway).

My understanding of PalmOs is that handwriting recognition is build in
(if not the hanwriting example should be replace by something else…)

What Palm has is not handwriting recognition; it is simple gesture
recognition (and it is completely useless - anybody who uses that on a
Palm is a geek, plain and simple - PDA’s are not going to become
ubiquitous with gesture recognition).

If you build a Palm like device (no real-time requirement) and you
need handwritting recognition, what OS are you going to choose.
PalmOS with the buildin stuff or QNX6 with the superior architecture.
I would choose PalmOS.

Again PalmOs does not have handwriting recognition. Your choice is
QNX6 with no handwriting recognition or PalmOs with no handwriting
recognition, or WinCE with bad handwriting recognition that crashes
every 15 minutes.

As per the old MI series “your mission, should you choose to accept it,
is to provide handwriting recognition … Jim, you can have QNX6 as one
of your team members, or you can have PalmOs, your choice … this tape
will self destruct in 5 seconds”.

Handwritting on QNX6 may be better but today it aint there. That’s

It ain’t there on PalmOs either, and it ain’t really there on WinCE
either (try using it).

the case for LOTS of features nowadays. From my observation QNX6
definitely lack behind most other OS in this area and is not
improving. . In my day to day work this is getting to be more and
more of a problem for my customer. Sure QNX6 is comming out
with new stuff, USB for example. but I don’t feel that’s enough,
the gap isn’t closing.

It seems like your argument is that QNX6 should provide basically
everything you or your customer wants. QNX6 is not an end-user OS, it
is aimed at companies with the where-with-all to add real value.

In conclusion my point is (no more not less), architecture isn’t
everything.

Well, that’s a difficult point to argue if taken literally, however, the
implied North American cultural semantics of “isn’t everything” are
“isn’t anything”, and that’s where the “implication” comes from. IMO
good architecture gets you 90% of the way there (which in North American
semantics equates to “architecture is everything”).

On Wed, 11 Apr 2001 09:16:04 -0700, Rennie Allen <RAllen@csical.com>
wrote:

Lack of OS Support? If your ready to shell out money to write your
own handwriting recognition software, writing your own input stuff to
bypass the OS shouldn’t be an issue.

I didn’t suggest that one could not purchase the recognition technology.
Bypassing the OS can be a very big issue depending on the architecture
of the OS (in QNX it would be a breeze - but wait you don’t have to
anyway).

My understanding of PalmOs is that handwriting recognition is build in
(if not the hanwriting example should be replace by something else…)

What Palm has is not handwriting recognition; it is simple gesture
recognition (and it is completely useless - anybody who uses that on a
Palm is a geek, plain and simple - PDA’s are not going to become
ubiquitous with gesture recognition).

Well given the success of the Palm, it appears to me this gesture
recognition is rather popular. Most people I’ve seen using it
seem to enjoy it (the recognition). Personnaly I don’t own a PDA,
so I don’t really know what I’m talking about :wink: But this
recognition think is not important for that discussion. We could
be talking about support for DOC which came really late for NTO,
support from broadcom. (I could tell you more about the later…)

If you build a Palm like device (no real-time requirement) and you
need handwritting recognition, what OS are you going to choose.
PalmOS with the buildin stuff or QNX6 with the superior architecture.
I would choose PalmOS.

Again PalmOs does not have handwriting recognition. Your choice is
QNX6 with no handwriting recognition or PalmOs with no handwriting
recognition, or WinCE with bad handwriting recognition that crashes
every 15 minutes.

It did mention: “If the hardwriting is not in the palm replace it
by something else” so replace it by ". That gives QNX6 with no
gesture recognition versus Palm with gesture recognition.


As per the old MI series “your mission, should you choose to accept it,
is to provide handwriting recognition … Jim, you can have QNX6 as one
of your team members, or you can have PalmOs, your choice … this tape
will self destruct in 5 seconds”.

I would pick QNX6 that’s for sure, but you change the question :wink:

Handwritting on QNX6 may be better but today it aint there. That’s

It ain’t there on PalmOs either, and it ain’t really there on WinCE
either (try using it).

the case for LOTS of features nowadays. From my observation QNX6
definitely lack behind most other OS in this area and is not
improving. . In my day to day work this is getting to be more and
more of a problem for my customer. Sure QNX6 is comming out
with new stuff, USB for example. but I don’t feel that’s enough,
the gap isn’t closing.

It seems like your argument is that QNX6 should provide basically
everything you or your customer wants. QNX6 is not an end-user OS, it
is aimed at companies with the where-with-all to add real value.

No I’m not, I have no problem writting driver for devices ( that’s
what most of my work is). Most of the time QNX6 provides the
tools to do that.

My concern is with what are “mainstream” features, perhaps
i’m streching the target marget of QNX6 beyond what QSSL
really intend to do.

I know QNX6 is not an end-user OS (and I’m not the one
who’ll be pushing for that). But as a usable OS there are
certain thing I would expect that I find missing.

In conclusion my point is (no more not less), architecture isn’t
everything.

Well, that’s a difficult point to argue if taken literally, however, the
implied North American cultural semantics of “isn’t everything” are
“isn’t anything”, and that’s where the “implication” comes from. IMO
good architecture gets you 90% of the way there (which in North American
semantics equates to “architecture is everything”).

I’ll take your work about the semantic :wink:

But I’ve seen people through away LOTS of work (and money) because
they couldn’t deal with that 10%.

But I’ve seen people through away LOTS of work (and money) because
they couldn’t deal with that 10%.

I’m sure, but I have seen people waste a lot more money when they have
the 10% but not the 90% :slight_smile:

Rennie

“Rennie Allen” <RAllen@csical.com> wrote in message
news:D4907B331846D31198090050046F80C903C808@exchangecal.hq.csical.com

But I’ve seen people through away LOTS of work (and money) because
they couldn’t deal with that 10%.

I’m sure, but I have seen people waste a lot more money when they have
the 10% but not the 90% > :slight_smile:

:wink:

Rennie

Carl Hanson wrote:

I’ve had a hard time examining the differences between QNX and WinCE.
I’d prefer to develop for our embedded project using QNX since I come from
a unix background, but I’ve had a strong push from management to use
WinCE. I really need to show them why WinCE would be a bad idea with hard
data.

If you are looking into things like “performance” data, then you are on
the wrong path completely. (I suspect CE will suck in that area compared
to QNX, but that is not the point.)

The point is that you need something that is reliable and is designed
for its purpose.

Microsoft cannot comprehend the concept of “reliable”. They scream and
yell and beg that they understand, but the key to reliability is:
SIMPLICITY.

Microsoft makes everything they build at least 10 times more complex
than it needs to be to solve the problem.

In addition, CE is based largely on the premise that you gain value by
reproducing the Win32 edifice, but streamlining it somewhat for the
embedded or realtime market. The problem with this assertion is that it
is nonsense – you gain almost nothing in terms of product value by
trying to force-fit the desktop/server Win32 edifice (APIs, tools, even
programmers) into the embedded or RT market – they are virtually
distinct.

Frankly, it is a good thing that you won’t find many RT programmers
from the Windows ranks – you probably want it that way! (And I am a
Windows programmer, and still say this!)

I am an experienced programmer who prior to downloading QNX knew almost
nothing about Posix. I can now, barely a few days later, write simple
QNX programs. The basics of file handling, memory allocation, etc. are
not rocket science, especially if the API is straightforward. The Win32
is absurdly complex, with even vanilla functions typically having 6 or
more parameters, most of which are not used in most cases. They built it
for the 99.99% use cases, leaving the 99% use cases saddled with stuff
that is never used.

And worse, your so-called “experienced” Windows developers are going to
have to spend vast amounts of time learning all the differences between
regular Win32 and WinCE – it is just easier for an experienced
programmer to learn a simple, purpose-built API instead.

The product counterpart to the WinCE dogma, is that making a small OS
equivalent to Windows will somehow lever product design and user
expectations. But notice how this nonsensical dogma has been completely
contradicted by the marketplace facts, where PalmOS has whupped MS’s ass
soundly, and the WinCE based portables are almost extinct.

WinCE is more like a religious dogma than a viable product.

\

Brad Aisa <baisa@NOSPAMbrad-aisa.com>
http://www.brad-aisa.com/ – PGP public key available at:
http://pgp.mit.edu:11371/pks/lookup?search=Brad+Aisa&op=index

“Laissez faire.”