Wednesday, October 10, 2007

Linux vs. Windows Architecture

Coffee with ThoughtFix episode 7 - Linux vs. Windows in embedded environments:



Enjoy the video! (Forgive the title - I thought I was on Episode 6)

The two graphs in the video are from Wikipedia articles. Here are some articles for extensive reading:
p.s. This is my first video made with my new Canon Powershot S5 IS camera that I picked up specifically for blogging. How's the quality?

5 comments:

Wilfred said...
This post has been removed by the author.
Ryan said...

To be fair, you should be comparing with XPe (XP embedded) or WinCE/Pocket PC architectures. XPe (and I'm sure the soon to be Vista embedded) reduces the system resources and services running on the device so that you have fewer wasted cycles. The advantage is that it is a full Windows environment and could therefore incorporate nearly all existing 3rd party software without recompiling those apps.
WinCE devices use a similar but not identical API, and as such someone familiar with writing code for Windows can write code for the WinCE platform. Designed specifically for embedded devices, the kernal, a hybrid model like NT, is designed for a small memory footprint with low power consumption.

thoughtfix said...

Ryan: That's a very valid point and one brought to me by my friend JKK.

Except for the HTC Advantage, there aren't any consumer devices in this market segment availble. When they become so, I will amend this post.

Anonymous said...

Thanks for the video.. Just from a production standpoint, the camera you're using seems to be working great, but I'd compose the shot with less headroom (ie, aim the camera down a bit). Don't put your head in the middle of the frame. Instead, allow one third of the frame to be above your face and two thirds below it. This might allow you to zoom in a bit too, but the main reason is it ends up looking more natural. I know it's a pain in the ass when you're aiming your own camera though!

Paul Harvey said...

Ryan,

You are right that for embedded devices Microsoft does not expect OEMs to use Vista...

However it's interesting that if you use Linux on your embedded device, you have essentially the same software available to you (CPU power and memory permitting) as desktop Linux. And we're not just talking about userland either: unlike working with XPe and Windows Mobile/WinCE, the exact same drivers that fall out of a kernel build on the desktop for things like say USB devices will for the most part be available when your target is an embedded Xscale/ARM or MIPS CPU.

And we use the exact same build, debugging and development toolchain as well.

What makes embedded Linux attractive to engineers is that almost any small team down to a one-man band, can come up with their own single-board embedded computer platform in any configuration they dare to dream up, and make the minor modifications necessary to adapt Linux to their particular piece of hardware. All without having to mess with any kind of driver signing issues, NDA paperwork, or working around a black-box operating system which really needs the hardware designer to be mindful of exactly how they wire things up to minimise customisation limitations or expenses.