Issue
117April 2000
Under
the Covers
Part
1: Get Embed(ded) with Windowa NT 4.0
WHY
NT4 EMBEDDED OVER CE?
If
I developed embedded Windows programs for a living,
the very first thing I would ask myself is "Why do I
have to use Windows NT Embedded 4.0 for anything embedded?"
If I want to embed in Bill’s world, I already have other
embedded operating systems, including a Windows-based
Windows CE. One answer is the size of the embedded device
you are writing to. What I mean by size here is size
in the physical or in the hardware, such as memory size
or data storage size.
Another
answer is security. Will your design be used by the
military or by kids on the block? Yet another answer
may lie in functionality. What does your device have
to communicate with? Does it participate in a LAN, or
does it just dial up the ’Net and browse the web? Without
bashing CE or Windows NT Embedded 4.0, let’s explore
the possibilities.
CE
supports quite a few more processors than Windows NT
Embedded 4.0. They share ’x86 compatibility,
but that’s about all. CE can do MIPS, ARM, and PowerPC
to name a few. Windows NT Embedded 4.0 tends to lean
toward Pentium class processors like the AMD K5 and
K6. Windows NT Embedded 4.0 also supports Cyrix 5x86
and 6x86 CPUs.
As
far as CPU speed, CE runs the gamut. The recommended
speed for Windows NT Embedded 4.0 is 200 MHz and above.
You can see this in my Ampro Little Board/P5x SBC, which
is clocking in at 266 MHz. I have no doubt that the
Ampro Little Board/P5x SBC running Windows NT Embedded
4.0 with a 166-MHz CPU would perform well also.
CE
was designed for small single-processor mobile and palm-top
type embedded applications. Because Windows NT Embedded
4.0 is a binary equivalent, configurable subset of Windows
NT 4.0, just like it’s desktop brother, Windows NT Embedded
4.0 can handle a number of CPUs in a multiprocessor
configuration. Thus, the overhead of supporting multiple
CPUs makes Windows NT Embedded 4.0 bigger as far as
code goes.
The
same size comparison can describe the multitasking capabilities
of each product. Both CE and Windows NT Embedded 4.0
do preemptive multitasking, and both support threads.
However, CE is limited to 32 concurrent applications.
Windows NT Embedded 4.0 is limited only by the amount
of storage it can grab.
Memory
requirements are another factor that makes Windows NT
Embedded 4.0 big when compared to CE. Windows NT Embedded
4.0 requires a minimum of 12 MB to play in and 8 MB
of available storage, if you don’t factor in networking.
With networking installed, those numbers increase to
16 MB of play space and additional 16 MB of available
storage. CE does its thing in 1 MB of play space and
doesn’t require any additional storage.
There’s
really not much difference in usability between CE and
Windows NT Embedded 4.0. Both operating systems have
a gaggle of built-in utilities like Internet Explorer,
Windows Explorer, and Command Shell, and both operating
systems can be configured to work without the seemingly
ever-present GUI.
On
CE and Windows NT Embedded 4.0, this GUI-less mode is
called headless support. Headless simply means that
you can generate your Windows NT Embedded 4.0 or CE
system without a display. In this mode you talk to your
embedded sweetheart via a telnet server or a web-based
management interface.
Although
the Windows NT Embedded 4.0 implementation could be
run in headless mode, the Ampro system has its hat on,
so I can show you things via screenshots. Speaking of
screenshots, CE being optimized for smaller applications
is also optimized for smaller displays. You can stop
your resolution count at 800 × 600 for CE. Windows NT
Embedded 4.0 starts at 640 × 480 and goes up from there.
Communications
protocols for CE include TCP/IP, PPP, SLIP, PAP, CHAP,
HTTP, and IrDA. Windows NT Embedded 4.0 protocols are
all of those you had to know about to pass the Workstation
Exam for your MCP or MCSE. The notable protocol exceptions
contained in Windows NT Embedded 4.0 and not in CE are
AppleTalk, Netbeui, and IPX/SPX. This says to me that
if you want to network off-the-shelf with the legacy
big boys, don’t design your device with CE, or be prepared
to write some interface code.
For
those of you who design in sensitive environments, the
security features offered by NTFS make Windows NT Embedded
4.0 a good candidate for your projects. NTFS allows
the administrator to control access down to the file
level. CE has no inherent security features.
In
addition to NTFS, Windows NT Embedded 4.0 also supports
FAT and compressed data formats. CE does FAT and the
"Kryptonite" FAT32. (Windows NT Embedded 4.0 can’t do
or coexist with FAT32.) These data formats can be stored
in ATA flash memory, M-Systems DiskOnChip, IDE hard
disks, and bootable CDROM using Windows NT Embedded
4.0. Our Ampro Little Board/P5x SBC steps up to include
CompactFlash and the IBM Microdrive mini-spinner. CE
can do all of that, too.
Power
management is a must on CE-equipped mobile computing
platforms, and CE has features to allow for extensive
battery management. On Windows NT Embedded 4.0 platforms,
the power management capabilities are generally left
to the hardware. For example, the Ampro Little Board/P5x
SBC offers "green PC" power-saving modes using APM (advanced
power management) BIOS functions.
|

(Click
here to enlarge)
|
Photo
3—How about that! This is the last operating
system I would have expected to see on the same
page with the word "embedded." |
NT4
IN YOUR FUTURE
I’ve
nearly run out of paper here. I did some more exploring
while you were reading. Seems like the Ampro engineers
felt sorry for me. Not only did they load Windows NT
Embedded 4.0, I see QNX and Linux as boot options on
the Windows NT Embedded 4.0 loader screen, too. Looks
like the IBM Microdrive is also loaded with a version
of Bill’s MS-DOS. We’re going to have a good time next
month!
Next
time, I’ll continue my investigation of Windows NT Embedded
4.0 and try to run an application or two. If I can figure
out how to make those other two operating systems tick,
I might do something there, too. Until then, I’ll leave
you with Photo 3 which proves that even Bill G. thinks
it doesn’t have to be complicated (or CE) to be embedded.