Question

I'm not sure if this is possible, but I'll give it a go.

I'm creating a device where I have to add a customized user-interface instead of the normal operating system UI. I'm thinking of installing Windows CE (or .NET MICRO) or Linux, but I'm not sure which OS would let me do this. Also, the software (UI) would load instantly and doesn't show the OS. I hope I that makes sense.

My question is: is this possible?

Was it helpful?

Solution

Judging the level of customization you require, I would suggest GNU/Linux. I don't think Windows would allow you to use your own UI instead of its own.

With GNU/Linux, you can choose among several UI providers or make your own. Besides, everything is customizable in GNU/Linux, you can create your own embedded distro with your application's requirements.

OTHER TIPS

If you want to make your own UI, you should probably Linux or something in that matter. You could maybe do it with Windows too, although I doubt it would be easy/easier than with Linux.

If your device is more of a mobile device (something like a mobile phone, or a tablet), you might also want to take a look at Android, which is Linux based and it is very customizable for developers.

For other devices you might want to take an open-source distro of Linux, and redesign it to fit your needs. You would then still have the advantages you want from that distro, but could customize it too.

EDIT: I know some netbooks (like the EeePC, I think) uses a light Linux distro as a "super-fast" and "super-easy" operating system. The case might also be the same with Android, since it is a light Linux distro too, but I am not totally sure.

Contrary to the evident misperception, you certainly CAN create your own UI under Windows CE. The source for the default shell ships with Platform Builder (even the eval version), so does a bare minimum shell, but you're certainly free to create any shell you want or modify what Microsoft ships to meet your own needs. This is a pretty common requirement.

CE is not like desktop Windows. You can also decide exactly which pieces go into the OS, so you can select which drivers and OS components meet your requirements and go in the OS, and you can add security to allow only your applications to run.

The tools to get your OS up and going are not really easy on either side, but Platform Builder is a bit easier to get a functional OS out of than the Linux tools if you're not already experienced with Linux tools in general.

EDIT

This question may be worth looking at as well.

The .Net Micro Framework is very flexible with the UI... so much so that you you can render anything you want on the LCD. Now if you need a realtime OS I would suggest you look for such. But if you want simple development on an embedded platform I would highly recomend the .Net Micro Framework.

Oh, and someone was working on tiny version of WPF for the .Net Micro Framework... that is what I used as my starting point for my UI. Here's another link

How do you mean "load instantly"? If you use any OS that already exists, it going to need to load up like it normally does. I doubt you want to write your own OS from scratch, so I'd recommend using something cheap/free and lightweight so it loads fast(linux). Then, just configure the OS to run a program as soon as it loads, and have that program render your own UI on either a GTK+ canvas, or if it needs to be really out of the ordinary, a web canvas element.

I've heard some system can modify the boot process to not display anything, but I've never done it. If anything would let you do this, it's Linux.

This is done all the time with embedded systems. What ever you write IS the OS essentially.

Are you developing a hardware embedded device?

Some example systems.

PARADIGM C++ PROFESSIONAL IDE. Borland C++ 4.5 with a bunch of embedded extensions. I've used it.

PocketPC and Windows CE could be candidates.

There is also Windows Embedded.


Edit: For clarity below was for an X-Ray Generator where all the code I created was the OS. It was not Win-Embedded and not a pink cell phone.

If you have the storage (Compact Flash card, SD card, or just enough memory, etc) create and save all your UI elements as bitmaps. I used GIMP to create the graphic elements and HEXWorkshop to convert them to a binary format the device "understood."

In the UI create "hotspots" (regions/rects) that act as buttons, or whatever, that can trigger events that mimic OnClick, etc. Hopefully, that should get you started. Look up Win32 "OwnerDraw" buttons. It will show you a good methodology for this, especially if you end up in Windows Embedded.

If you are interested in Linux go here: http://www.linux.org/dist/ they have some tiny linux distro's made for embedded systems.

HTH

GNU/Linux is the best choice. Very flexible, it is widely used in various stuff from embedded systems to handheld devices. It's wouldn't take too much even to make new desktop envronment(okay, depending on it's complexity, of course). I would also suggest Android, it's open source branch, as there are lots of custom UI have been created by today. Windows have nothing to do with this (imho). And, what's important, Windows licence for device production isn't free, right?

There are many possiblities for a fully customized user interface on Windows CE

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top