Embedded operating system

An embedded operating system is an operating system for embedded computer systems. Embedded operating systems are computer systems designed for a specific purpose, to increase functionality and reliability for achieving a specific task. Resource efficiency comes at the cost of losing some functionality or granularity that larger computer operating systems provide, including functions which may not be used by the specialized applications they run. Depending on the method used for multitasking, this type of OS is frequently considered to be a real-time operating system, or "RTOS". Embedded systems are mostly used as Real-time operating systems. QNX, WinCE, and VxWorks are the most widely used embedded operating systems today.
All embedded systems contain a processor and software. There must be a place for software to store the executable code and temporary storage for run-time data manipulations. These take the form of ROM and RAM respectively. All embedded systems must also contain some form of inputs and outputs to function. Within the exception of these few common features, the rest of the embedded hardware is usually unique and varies from application to application. The hardware running an embedded operating system can be very limited in resources, therefore embedded design of these operating systems may have a narrow scope tailored to a specific application in order to achieve desired operation under these constraints. The embedded operating system that organizes and controls the hardware usually determines the rest of the embedded hardware needed. 
In order to take better advantage of the processing power of the CPU, software developers may write critical code directly in assembly. This "machine efficient" language can potentially result in gains in speed and determinism at the cost of portability and maintainability. Often, embedded operating systems are written entirely in more portable languages, like C, however.
An important difference between most embedded operating systems and desktop operating systems is that the application, including the operating system, is usually statically linked together into a single executable image. Unlike a desktop operating system, the embedded operating system does not load and execute applications. This means that the system is only able to run a single application.
History.
The Development of Embedded Operating Systems.
In the late 1970s, the concept of real-time multitasking kernel was proposed. In 1980s, while the application of embedded system becomes more and more complex, the embedded operating system with real-time multitask kernel could not meet the requirement of embedded development. The real time multitasking kernel began to develop into a complete real-time multitasking operating system (RTOS) that included a network, file, development and debugging environment.
Nowadays, RTOS has formed an industry in the world. The world's first commercial embedded real-time kernel (VRTX32) was developed by Ready System in 1981. Then in 1993, Ready System and the famous Silicon Valley embedded software company Microtec Research Merger developed two new RTOS kernel VRTX32 and VRTXsa on the basis of VRTXmc. At the same time, VRTX integrated development environment (Spectra) appears, which greatly improves the development of embedded software.
Microsoft, which dominates the desktop operating system, also released its own embedded 460operating system in 1996. The embedded operating system is WinCE, which is originally based on Windows 95 in the 1.0 version, and subsequently 2.0 version, 3.0 version, until up to 6.0 version, supporting x86, ARM, SH4, MIPS and other processor architecture. WinCE is a preemptive multithreaded operating system. Through the thread, WinCE is better to achieve the embedded operating system task scheduling, inter-task communication, mutual exclusion and other functions. In order to solve the problem of priority inversion in preemptive real-time scheduling in WinCE, priority inversion mechanism is realized.
The Arrival of a New Era of Embedded.
Nowadays thousands of embedded devices are used in the system of Internet of Things and hundreds of sensors are used in a car. Compared with the traditional embedded system, the Internet of Things system requires lower power consumption, safe and reliable, and has the ability of ad hoc network. The communication section needs to meet the conversion between various communication protocols and the application layer must have the ability of cloud computing. This puts forward higher requirements for the design of the operating system.