Michael is a developer for Eclipse International. He can be
reached at [email protected]
Microsoft held Windows CE DevCon in San Jose, California on
April 6-8, 1998. Michael Fitzpatrick, a DDJ contributor, had the
opportunity to chat with Tony Barbagallo, Microsoft's Lead Product
Manager, and Don Chouinard, Microsoft's Product Manager, about Windows
CE. Here is an excerpt from that conversation. For more details
about the conference itself, read Al Stevens' account in the July 1998
issue of DDJ.
DDJ: There's been some talk about bringing COM to
WinCE. What are Microsoft plans?
DC: COM's in there now. It is InProc only. It doesn't
marshal parameters across process boundaries or across the
wire...yet. That will ship in our next major release. All of our
compilers support COM today.
DDJ: Microsoft has put a lot of work into Windows CE,
and it recently bought WebTV. Microsoft already makes mice and
keyboards, but those are passive devices. A lot of folks are worried
that Microsoft will start selling computer hardware now.
TB: I can't speak for the WebTV group because I'm tasked
with marketing Windows CE, and I don't really know what is going on
with WebTV. I don't believe that Microsoft has any intention of
building and selling computers that run any of our OSes, with the
exception of WebTV. We're mainly interested in developing
relationships with technology partners who can provide solutions for
the embedded market. That's kind of an expensive platform, so we go
beyond that and also support an emulation of specific targeted
devices, such as handheld PCs, Palm PCs and Auto PCs. You can write a
lot of code and test it against the emulated device. This is a good
solution for routines that don't require the presence of physical
hardware.
DDJ: Windows CE looks a lot like a desktop system
when it is installed in a Handheld PC (HPC). If I want to add a new
peripheral device, does Windows CE have installable device
drivers?
DC: Yes. In fact, it is very elegant. You take your
installable device driver, load it into the object store, and put an
entry into the registry. Upon boot, we scan the registry and load
each of the installable device drivers in turn. You can even control
the order in which the device drivers are loaded, in case you're
relying on another device driver being there.
DDJ: But, if I want to go all the way down to the
hardware and trap an IRQ, don't I need to link the Interrupt Service
Routine (ISR) binary with the operating system code when I compile
it?
TB: The drivers that go all the way down to the hardware --
they're loaded at compile time.
DC: The person who builds the operating system for a
specific hardware platform does include built-in device drivers for
certain devices such as the display and keyboard. But most of the
device drivers they provide are written as installable drivers. In
Windows CE, interrupts (IRQs) go into the kernel and, in just a few
machine instructions, the kernel passes control directly to the ISR.
This is how an installable device driver is tied to an IRQ.
DDJ: At the Embedded Systems Conference last October,
no one claimed that Windows CE had hard real time. Now, at this
conference (Windows CE DevCon), you're saying that WinCE is hard real
time. Okay, so the interrupts are not reentrant, but you're claiming
to be hard real time. You're talking about "jitter" now, not
reentrancy and nested interrupts.
TB: Well, Windows CE interrupts are reentrant at the thread
level. The mechanism we use is, the kernel calls an interrupt service
routine (ISR) usually within one to eight microseconds from when
interrupt occurs. At that point, INTs are still disabled. We expect
the ISR to be coded in assembly language and to execute very quickly.
The ISR runs in privileged mode and has full access to system
resources. When it is done, the ISR returns to the kernel, which
schedules an interrupt service thread (IST) that does most of the
work. The IST is reentrant, and can be nested if it is coded
properly. The IST runs in user mode, just as any other application
does, but at a higher priority.
DDJ: But this is not truly hard real time.
TB: No, not yet, but we're committed to true hard real time
in a future release, version 3.0 due in the second quarter of 1999.
Even though we're already below 10 microseconds latency, we're going
to support nested interrupts. It's not just the speed. We're going
to add support for a larger number of interrupt lines and
semaphores.
DDJ: Well, with Windows CE, it looks like everything
that was old is new again. After years of getting comfortable with
multi-meg RAM and multi-gig hard drives in OSes, Microsoft is back to
counting bytes and CPU cycles again. Aren't you afraid that feature
creep will take you out of the embedded system space? When you start
adding things like Java, which adds 2 MB to the system ROM and 2 MB to
system RAM, aren't you taking away the incentive to use Windows
CE?
TB: Well, Windows CE is componentized, and it is a
deterministic OS, unlike the other Microsoft OSes. We clearly define
what our upper bound for event response is. And if you don't want
Java or a GUI or any other feature, you can leave it out.
DDJ: What about network and Internet connectivity?
What direction is Microsoft looking at? Right now, it seems that
Microsoft is pushing Ethernet and NDIS drivers for connectivity.
TB: The market will dictate where we go with that. We have
to be responsive to our customers needs.
DDJ: Yes, but if I'm a developer, I'm going to pick
the connectivity solution that comes with Windows CE. Microsoft has a
vested interest in promoting some connectivity options over others.
You have WebTV, which implies cable modems, an ADSL deal in the works,
and sometime in the future, you'll be selling satellite connections.
If I make an ATM switch, how can I get Microsoft to add support?
TB: We try to keep the system very modular. If you were
building one of those boxes, you would go to someone with a background
in the technology and convince them to port it over to Windows CE for
your device.
DDJ: Well, where do you think that the technology
will go? Is the future in ADSL?
TB: That's a real possibility. Part of my role is to work
with technology partners and help them decide whether it makes sense
to port their technology and offer it as a third party. We have a
base set of enabling technology, but beyond that, we really want to
foster third-party business and a third-party market.
DDJ: Well that brings up an interesting point. A
year ago, there was only a handful of Windows CE distributors. Since
then, the story from Microsoft has been changing a lot. Every month
it is a different story. Seems like now, there are just too many
vendors offering Windows CE, and the vendors are competing with each
other.
TB: Absolutely. When I came into this business, I looked at
the landscape and looked for distribution channels that had
differentiation from the current distributors. That's where Applied
Microsystems and Microtec come from, that's where Integrated Systems
Design comes from. It's hard to beat their expertise in the real-time
embedded systems space. You may say it looks like these guys raised
the bar on the people that were there. Maybe we have. We have very
objective criteria that basically comes down to units shipped.
DDJ: When you first started to work with technology
partners Microsoft had very strict licensing requirements. Now you're
giving away the development tools. I got a copy -- three CDs -- in a
recent issue of Embedded Systems Programming.
TB: Yes. That all changed as well. The decision was to
make it widely available. Our goal is to make a huge third party
network of system integrators and supply the tools and technology,
because that's how we think the market is going to grow in this
space.
DDJ: So, if I have a new CPU that I want to offer to
the world, who is going to port it over to Windows CE?
TB: We do the ports for new processor architectures, but
only based on customer demand or based on a customer relationship with
a semiconductor partner.
DDJ: The last issue that I'm interested in is the
legal issue, the FTC/DOJ, trade issue. Now that you're entering a new
region of the marketplace, are you taking any action to prevent any
conflicts with the government?
TB: We're only concerned with developing a product that is
right for the market.
DDJ: Are you ignoring the reality of the
government?
TB: On my list of tasks, one of them is not to take into
consideration ramifications, the potential of monopolistic products
that you may build. That is not one of my objectives. It is not one
of my manager's objective either. It's just not a consideration for
us. We are concerned only with making Windows CE a success in the
embedded system space. You know, we're not the only big player
entering the embedded system space either. Sun is getting into the
RTOS business in a big way.
And some of the big RTOS vendors like WindRiver make a majority of
their money in setup costs for their tools. So Microsoft's business
model is that we collect a royalty for each unit that goes into
production. The cost for our tools is very low compared to other RTOS
vendors. We charge $500 to get started compared to $25,000 for some
other RTOS tools. We aren't looking to make much money on the tools
and startup expenses. A lot of embedded systems never make it into
production. In that case, the other RTOS vendors are ahead. They've
sold their tools, they've sold their services. They didn't get the
run-time royalty, but they've sold the tools and made 80 percent of
what they would have if the customer had gone into production. It's
the same for our systems integrators such as Microtec, AMC, and ISI.
They receive the revenue from their tools and their services, but
Microsoft would receive no run-time royalties.
These op/eds do not necessarily reflect the opinions of the author's
employer or of Dr. Dobb's Journal. If you have comments, questions,
or would like to contribute your own opinions, please contact us at
[email protected].
Terms of Service | Privacy Statement | Copyright © 2024 UBM Tech, All rights reserved.
April 01, 1998
URL:http://www.drdobbs.com/windows-ce-present-and-future/184410807