And since Embedded system is some combination of computer hardware and software, either fixed in capability or programmable, that is specifically designed for a particular kind of application device. Industrial machines .. thus embedded computing is the process of creating embedded system.
Here is my brief and straight to the point interpretation of Embedded Computing.
Embedded Computing is more like specialized computing. Basically different companies defines it differently, Microsoft defines it using Windows CE/XPe and its development tools.
In a generic sense, Embedded Computing is about creation of a computing system for device (Embedded Device) which serves a specific purpose. Why specific purpose? Because it is a device. Therefore, we are talking about hardware manufacturing; which is actually producing the motherboard or PCB. And if you can develop the hardware, what about software? Usually there can only be firmware, but with Embedded computing, you get to have an OS built-in to the devices and thus having the ability to write application as software instead of firmware.
The following are examples of Embedded Devices:
- Instrumental and industrial automation.
- Windows Mobile and Windows Embedded devices.
- Kiosks / ATM operating system platform.
- Medical design and system.
- Network consumer electronics.
- Points of service terminal.
- Projectors and large screen display.
- Set-top boxes.
- Specialized servers.
- Thin client devices.
- VOIP devices.
- Windows Automotive.
These are taken from http://www.windowsembeddeddevices.com/
Let's take one example, VOIP devices. Let's say you have a CISCO VOIP switch which supports for Windows CE/XPe. If you need to program it so that whenever it detects your girlfriend voice, it will allocate more bandwidth to it. This is made possible by Embedded Computing.
Now the next question is what about JVM, do we need JVM for Embedded Computing?
The fact is that Windows CE/XPe, like Palm OS and Symbian are OS for Embedded Devices. Of course, I know that Cisco routers are running on its own O.S, but there are other VOIP devices which support Window CE/XPe.
Now, JVM is a byte-code specification meant for multi-platform usage. Thus, if you intended to write an application for all platforms mentioned above, the first thing you do is to write a program which generates a binary which is understood by JVM. Then, make sure that device's O.S support JVM. Take a look at the following JVM supported devices.
And how do you make sure that device's O.S support JVM?
-->You need to get a separate installation to do it, by purchasing the software from some vendors or through OSS.
Thus, JVM sits on top of Embedded System's OS which sits on top of the hardware.
Therefore, we should write more application based on JVM specification; for instance, Java byte-code is current the defacto now.
1. what is the difference between windows CE and JVM?
2. how does JVM work?
3. what is the connection between JVM and other platform such Palm OS and Symbian?
4. JVM doesn't always means java, it is related to Java Bytecode where Java Bytecode is based on JVM specification.