Machines or Devices, typically not thought of as a computer but performs many automatic functionalities are not controlled by standard operating systems used in Computers. These devices and machines are controlled by writing computer software called embedded software.
With time and memory constraints, it specializes on the hardware that Embedded software runs on.The term Embedded software is infrequently used interchangeably with firmware, although codes that are ROM-based on any computer can also be applied as firmware, on top of which the operating system runs, whereas the only software on the device in question is Embedded software.
Electronics in cars, telephones, modems, robots, toys, security systems, pacemakers, televisions and other appliances, set-top boxes, and digital watches are the examples of most common electronic devices installed with embedded software by manufacturers. An Embedded software development can be very easily understood and simple or can become very sophisticated in applications such as missiles, airplanes, and systems like process control, or lightening control on a device running on microprocessor of 8-bit with very few kilobytes of memory.
Contrast to the standard computers running on few operating systems such as (Windows, MacOS and to some extent, Linux), an Embedded software runs of wide variety of operating systems (OS) generally a real time operating system. The software runs from minor single person operations based of a run loop and a timer. Some of the operating systems (OS) include LynxOS, VxWorks, to Windows CE or Linux (with patched kernel). Some other (OS) operating systems include OpenWrt, eCos, Fusion RTOS, Nucleus RTOS, RTEMS, INTEGRITY, uC/OS, and QNX.The coding for embedded software development is usually written on C or C++ and sometimes, aeronautical and military based projects use Ada to write codes for Embedded software development.
Difference From Standard Operating System:-
The major difference between an embedded software and consumer application software is that, this software is less visible, but no less complicated, whereas the normal consumer application software provide functionality on a computer that consumers are usually familiar with. This software has static hardware requirements and capabilities and it strictly controls addition of any 3rd-party hardware.
At manufacturing time, all needed devices and drives must be included to run embedded software, and the device drivers are written for specific hardware. Specific chips and central processing unit (CPU) are the important parts where this software is highly dependent for running. Passing knowledge of reading schematics, components to determine usage of registers and systems communication is what most of the embedded software engineers have. Decimal, hexadecimal and binary conversion as well as using bit manipulation is useful. This software may include passing XML files and other output to computer for display, but embedded software rarely use web applications. File systems with folders are SQL databases, so they are typically absent in embedded software.