Single board computers support a wide range of operating system software. The purpose of the operating system is to allow control of and interaction with a single board computer and to provide a framework of system services (Disk I/O, Communications, memory management, scheduling, etc) on which to run applications.
The major types of operating system software are:
- Real-time operating systems (RTOS)
- Embedded LINUX
- Desktop Linux
- Embedded Windows
- Desktop Windows
- Roll your own or in-house
- Sun Solaris
Desktop Operating Systems
Desktop Operating systems (Windows and LINUX) are used in products such as Kiosks and point of sale (POS) terminals as well as for general purpose computing. Desktop Operating Systems make no guarantees about speed or responsiveness to real world events. Mission critical systems (systems that can’t be allowed to fail) are usually not built using desktop operating systems.
Soft Real Time or Non-Realtime Operating Systems
Embedded operating systems such as Embedded Linux or Embedded Windows are often used to power so-called “intelligent products” such as cell phones, home electronics and Flat screen TV sets.
These devices do not require hard real-time response to computing deadlines. Response times are often dependent on system load and as such cannot be guaranteed. These operating systems support other embedded features such as instant ON/Boot to make them more suitable for embedded devices.
Real-Time Operating Systems (RTOS)
Real-Time simply means that a responce must be correct and must meet a timing deadline everytime or the systems has failed.
Real Time operating Systems are used for the same types of embedded devices as Embedded LINUX, and Embedded Windows but due to their ability to meet hard timing and response deadlines, can also be used for controlling things like industrial instruments, anti-lock breaking systems etc. Real-time operating systems will guarantee a response to an interrupt or the completion of a system call in all cases, regardless of the load on the system.
Roll your Own or In-House System Software
Some Single Board Computer applications do not use an operating system. This may be because the system must be hand-optimized to meet tight real-time requirements or because it does not require the services (and attendant overhead) that an operating system brings. In these cases, engineers will write all the code required to run their embedded application using an embedded compiler and assembler. These embedded systems are typically written in C, C++, and assembler.