General discussion


Embedded Linux vs Windows CE

By archikins ·
I just read a thread on Linux vs Windows. I am wondering what the choice would be for embedded environments. While Symbian takes a large share of the market, if the choice were down to embedded Linux vs Win CE, would would it be?

Specifically, what is the difference in deployment costs (end user license). - Specifically Montevista version of Linux.

Ease of development - Win CE offers Platform builder. What about embedded Linux ?

Language of choice. How easy/difficult is C++ for Linux? Is c++ code developed on Win CE portable to embedded Linux?

So guess my question really is two part - comparing the two embedded OS, and portability from win ce to embedded linux.

What do you think?

This conversation is currently closed to new comments.

Thread display: Collapse - | Expand +

All Comments

Collapse -


by Jaqui In reply to Embedded Linux vs Windows ...

I can't really say anything about Monevista, as I've never looked at it.

But I would say that the linux is a lower cost licensing wise, since you can take any free distro and create a custome version for an embedded device.

C++ is easily worked with in linux.
porting something developed on windows may be hard, depending on how much proprietary MS code you have to replace with portable code.

Collapse -

Tips for portable c++ code?

by archikins In reply to well

Thanks. Do you have any pointers to make the C++ code portable to an embedded linux environment?

If you could point me to some books or resources also, that would be good.

Collapse -

there are

by Jaqui In reply to Tips for portable c++ cod ...

two things you can do very easily to make sure the code is portable:
use ansi standard C++ only, no mfc code, no Borland code..

use gtk/gdk, qt or wxwidgets for any gui work.
all 3 widget sets are cross platform, making it easier to tweak your code.

wx widgets uses an abstraction layer between the "native" widgets and your code, so it uses the mfc, but you don't actually include any mfc in the code.

gtk/gdk Gimp Tool Kit / Gnome Development Kit, a linux gui class that has been ported to windows.

QT Trolltech's widget sets, the foundation for KDE, and extremely close to windows native look and feel. [ also is the foundation for borland's original widget set in C++ builder version 1.0 ]

Collapse -

by ABX In reply to there are

> wx widgets uses an abstraction layer between
> the "native" widgets and your code, so it uses
> the mfc, but you don't actually include any mfc
> in the code

That's incorrect. wxWidgets use native widgets (not sure what '"' supposed to mean) but it does not use MFC for drawing nor accessing widgets. It use native win32 API. For WinCE port it uses native widgets as well, just like for GPE. Here is more about wxEmbedded variants of wxWidgets:

ABX, wxWidgets developer.

Collapse -

ABX, so with wxwidgets

by Jaqui In reply to

You have to code differently depending on the platform you are coding for?

Or does wxwidgets actually create the appropriate calls for whichever platform you are building for?

if the latter, it is effectively an abstraction layer, where you code once and compile on any platform.

I'm currently reading up on wxwidgets and was under the impression that they are coded for the write once compile anywhere model.
[ reading Cross Platform GUI Programming with wxWidgets by Julian Smart, Kevin Hock and Stephan CSomor ]

Collapse -

by ABX In reply to ABX, so with wxwidgets

wxWidgets is C++ library which hides calls to native APIs. It is BUILD ONCE - RUN EVERYWHERE. You code single source and it is well shown in supplied samples. In previous post there was reference to page with screensots taken from wxGPE port. Here are screensots taken from the same sample (the same source code) compile against wxWinCE port:
Even the same port (wxWinCE) compiled from single source supports native appearance on different devices:

ABX, wxWidgets developer

Collapse -


by Jaqui In reply to

I didn't realise that is was a compile once run anywhere.
This means that building an app on my linux systems I could run it on a windows or mac system without having to build on them..

Ideal cross platform development.

Collapse -

Good Question ?

by dawgit In reply to ABX, so with wxwidgets

I have seen that book, but don't have it yet. (other projects ) I do have the "X Window System Programming"; by: Nabajyoti Barkakati. I had been of the thought that the X Window was for Unix/Linux only. But, I guess I'm still (always) learning. :) -d

Collapse -

wxWindows is not X Window

by daniblum In reply to Good Question ?:|

Hello dawgit, maybe I'm wrong but I think you confused wxWidgets with X Window. You are right, X Window is (up to now) for Unix/ Linux only. The wxWidgets project (former wxWindows, to further confuse the reader :-) ) is, on the other hand, a full-fledged project which takes as far as possible the idea of a Graphical User Interface whose source can be developed once and whose final products can be created to be run on a variety of platforms.

Collapse -

It can be / It is ... Done.!.

by dawgit In reply to Tips for portable c++ cod ...

I find it easy to put together C/C++ for DOS, Windows, or Native Linux with the Notepad++ Editor*. You can compile on a Windows Machine, Choose how you want it to be run, and done. (Unix Code is just one option, out of many)
*Notepad++ v2.7
[ ]
with on line help too, or e-mail to:
(written by Don HO)

I personally think there is as much, if not more DOS embeded as WinCE, and Linux is fast closing the gap. Many operational programs can be run on either now. (with small mods, naturally)

As for just Programming in C or C++ on a linux Computer, any good Linux book covers it. And of course there's always the (Free) Eclipse Editor, that runs on either Platform, and will do C/C++ just fine. (from: [ ]

Also don't forget Assembler, which can be programed on either Linux? or Windows?.
Clean, simple machine code.

1) Guide to Assembly Language Programming in Linux; by: Sivarama P Dandamudi; Springer, ?'05. ISBN 0-387-25897-3
2) Assembler Programmierung; by: Wolfgang Link; Franzis, ?'06 ISBN 3-7723-7798-X


Related Discussions

Related Forums