An embedded operating system (OS) is known to be a specialized type of OS, which is used for computers which are built into larger systems. Embedded systems are all around our current society, we use them for computers in cars, traffic lights, ATMs, traffic lights, point of sale terminals (POS), airplane controls, digital terminals, elevators, smart meters and GPS navigations.
In terms of functionality, an embedded OS is limited to the device it is servicing, because the system may only run one application. An Embedded OS’ functions though are becoming more and more complex, due to the rapid development of hardware and maturity of computer technologies.
However embedded operating systems do have a problem upgrading their functionalities; therefore, dynamic update mechanisms are being implemented in order for embedded operating systems, to update their applications.
Embedded OS (EOS) is part of an embedded system, and may pose security issues, such as, kernel security issues. An EOS has to be reliable, efficient and easy to port, because in today’s daily life, en embedded software and the operating system that supports it, have become an integral part of our society.
The kernel by the way is the core of an operating system and has complete control of the device’s resources.
One of the major characteristics of an EOS is the size and complexity of the code that they contain. Some new models of smartphones, may contain more than a million lines of code, which can be a lot of work, even for experienced developers.
Real time properties are also part of an Embedded OS, and this is based on the system’s requirements. Allocation of resources to users, is the job of the OS in an embedded system, and the allocation is done in an orderly and controlled manner as well. The different OS services, can be invoked through system calls, by developers, because the OS may be used as a resource manager for complex systems. The processors, memories, disks, network interfaces, mice, etc. are some of the resources, a complex embedded operating system may have available, to manage.
Developers should be aware that the EOS will determine, the type of application, the EOS can run, because the application program, must be able to run on top of the chosen OS. When an EOS is modular, configurable, has CPU support, drivers and is scalable, it is said to be a good embedded OS.
A good example of an embedded operating system is the Mindstorms EV3, which is a third generation battery-powered embedded device from LEGO. The system is designed with LEGO bricks, to explore programming and robotics. A number of different sensors and motors are exposed to programmable interfaces, so that arbitrary behavioral complexes are created by LEGO. A modified Ångström Linux Distribution is used as the embedded operating system for the Mindstorms EV3.
Chu, E. T., & Fang, C. (2015). CALEE: A computer-assisted learning system for embedded OS laboratory exercises. Computers & Education, 8436-48. doi:10.1016/j.compedu.2015.01.006
Mei-Ling, C., & Hsiang-Yu, H. (2012). A Platform for Supporting Dynamic Update and Resource Protection in an Embedded Operating System. Journal Of Information Science & Engineering, 28(5), 875-893.
Kim, S., Lee, D., & Park, J. (2012). Efficient scheme of verifying integrity of application binaries in embedded operating systems. Journal Of Supercomputing, 59(2), 676-692. doi:10.1007/s11227-010-0465-4
Williams, T. (1998). Embedded operating systems take on tools, languages, and modules. Electronic Design, 46(2), 67.
Farooq, M., & Kunz, T. (2011). Operating systems for wireless sensor networks: A survey. Sensors, 11(6), 5900-5930. doi:10.3390/s110605900