[Sussex] Sky boxen / Embeded LINUX and NT

Geoff Teale Geoff.Teale at claybrook.co.uk
Fri Sep 27 12:16:01 UTC 2002


Aha!!

I thought this one might bring forward some interesting points :)

The question, as you recall:

> > How can we be sure that LINUX in embedded space isn't a lame 
> > duck just like Windows?

Steve answered:
=============== 
> 1/. Linux source is peer reviewed.  This gives better quality.
> Would you release source code that was badly written for the 
> world to read?

On this one I agree.  Working on something where people can see (and
crucially, _fix_) the bugs is a major plus point for LINUX in all
applications.  If you decide to develop on an embedded Windows platform you
have to take what you are given.
 
> 2/. Linux is driver by technical goals not by commercial needs.
> Look at the time between major releases of Linux to WindowOS.
> Does anyone not see that announcing that the next OS (in '93?)
> that the next OS will be called Windows95 doesn't put a 
> commercial pressure on the OS developers to release in '95
> regardless of it bug status.

Hmm, this is a great arguement, but the reality is that a lot of embedded
development is using kernels that are heavily 'tweaked' by companies like
(i.e Lineo Embedix) who _are_ a commercial venture and _do_ work to release
deadlines. 

> 3/. Linux is one source that just scales real well.
> WinCE is not the same beast as Win2K, WinXP.  My evidence
> is that Word for WinCE is not (from what I've here - I've
> never used it) 100% compatible with Word for Win95/NT/2K/XP.
> If it's not the same beast then it has different bugs, 
> different developers, ...  The fact that one source is used
> for IBM/UP/Sun big iron and for miniPC controller in your
> car means that a bug fix in one place is fix for all.

See above.  It is great to see some Realtime concerns begining to be
addressed in the kernel these days and that reflects possibly the best thing
about open source OS's.  If you have a configurable, compilable Kernel you
can optomise it to run well in most environments.

ONe thing I should point out is this:  WinCE is indeed a different beast
than WinNT / 2000 - it actually is closely related to Win9x and has a cut
down version of the Win32 enviornment.  Software written for WinCE can be
compiled for Win9x and WinNT but not necessarily the other way around.
WinCE was microsoft first attempt to squeeze there GUI OS's into an embedded
system.  NT Embedded and XP Embedded are aimed at a more serious market -
often we're talking about systems without GUI's or with very simple GUI's.
THese products are again cut down from the system that sits on most
desktops.  They _do_ share the majority of their codebase with the machines
you find on the average desktop.

The crunching arguement is this.  It's OK to share operating system code
across different hardware platforms.  Fundementally an embedded device's
computing architecture doesn't differ to wildly from a desktop PC.  What's
worng here is that Window's embedded platform works by loading third party
drivers into userland and allowing them unprotected access to kernel space.
The bug with the Dell machines at work stems from the same thing.  The fault
is shared equally between the motherboard driver and the kernel design in NT
(which allows drivers and certain Userland libs to have access to memory
being used by the kernel via "portals" that were put in to speed NT up after
3.51.  

Microsoft have shifted this problem to embedded space in order to maintin
speed and frankly I think it is unacceptable.

What will stop a conflict of interests between server based LINUX users and
embedded LINUX users resulting in one groups needs being compomised ?

> 4/. Linux has the bigger development team.  Never have so
> many people worked on just the one project.  Read "Just
> For Fun".

True enough.
 
> 5/. Linux is a well (technical) designed OS.  Only the kernel
> runs in protected mod.  Applications in there on virtual 
> space (thanks to the MMU).  As a result only a bug in the
> kernel will take the whole machine out - even on embedded
> devices.  

Yup agreed.  WinNT doesn't do this since 3.51 (see above) and the old 9x
series (including CE) didn't do it until Win ME because of the 16bit legacy.

>I would guess that to get performance out of WinCE
> any "performance" hack was used.  The protected/user mode
> context switch is expensive (in CPU).  In Linux (a macro- 
> kernel) less of these context switches are required.  With
> all the message passing that the different subsystem in 
> a micro-kernel (Win?? and iMac are micro-kernels) will 
> require more of these context switches.

Hmm, Yes, this certainly shows in a lot of Microkernel OS's - BeOS and Mac
OS X both have very poor network performance.  

That said, a proper microkernel OS is much more stable than a Monolithic
kernel as more and more functionality is outside of the critical zone.  QNX
Neutrino 2 (as used in QNX RtP 6.x) is a fine example of how to write a
microkernel - it's rock stable and yet to see any OS delivery performance on
a par with it.

Going back to the point though, I have to say you're right.  A well debugged
LINUX kernel can deliver speed without too much compromise.  Windows took
the microkernel approach and had to back out of it - what do you end up
with?  Something that doesn't offer any of the advantages of either
approach.  That's key in my opinion.

> Before Neil and the other iMac lovers flame me I would point
> out the Neil did use the word "now" when we were talking 
> about OS performance last night.

-- 
GJT
geoff.teale at claybrook.co.uk


The above information is confidential to the addressee and may be privileged.  Unauthorised access and use is prohibited.
 
Internet communications are not secure and therefore this Company does not accept legal responsibility for the contents of this message.
 
If you are not the intended recipient, any disclosure, copying, distribution or any action taken or omitted to be taken in reliance on it, is prohibited and may be unlawful.
 
Claybrook Computing Limited is a subsidiary of Claybrook Computing (Holdings) Limited
Registered Office: Abbey House. 282 Farnborough Road, Farnborough, Hampshire GU14 7NJ
Registered in England and Wales No 1287205
 
A Hogg Robinson plc company





More information about the Sussex mailing list