Operating System Embedded
Company / developer | ENEA |
---|---|
Programmed in | Assembly, C, C++ |
OS family | Real-time embedded operating system |
Supported platforms | ARM, PowerPC, MIPS |
Official website | www.enea.com/ose |
The Operating System Embedded (known mostly by the acronym Enea OSE) is a real-time embedded operating system created by the Swedish information technology company ENEA AB. Bengt Eliasson, who at the time was a consultant from ENEA with an assignment at Ericsson, wrote the basic parts of the kernel. The early version for the Zilog Z80 processor was named OS80.
Enea OSE is one of the most widely used RTOSes in the world. According to mobile analyst firm, VisionMobile, OSE has been deployed in over 1.75 billion mobile handsets, as of the end of June 2010.[citation needed] Enea OSE is shipped in hundreds of millions of mobile phones each year and over half of the world's 3G base stations.[citation needed]
Architecture and abilities
OSE uses events (named signals due to ENEA's telecom background) in the form of messages passed to and from processes in the system. Messages are stored in a queue attached to each process. A 'link handler' mechanism allows signals to be passed between processes on separate machines, over a variety of transports. The OSE signalling mechanism formed the basis of an open-source inter-process kernel design project called LINX.
- Fault tolerant, distributed architecture
- Modular, layered microkernel architecture
- Event-driven, deterministic real-time response
- Asynchronous direct message-passing model
- Scalable hybrid multicore solution exploiting the advantages from both SMP and AMP models
- Memory protected
- Centralized error handling and remediation
- Built-in task (process) monitoring and failure detection
- Dynamic, run-time program loading
- Power management with low-power sleep mode
- Demand paging support for optimizing RAM usage
- Comprehensive networking/security support
- Multiple file system choices including crash-safe, journaling file system
- Distributed system-level simulation
- Run Mode Monitor (RMM) for remote monitoring, tracing, profiling, and debugging
- Optima, an Eclipse-based integrated development environment and tools suite
Multicore Edition
Enea OSE Multicore Edition was released in 2009 and is based on the same microkernel architecture. The kernel design that combines the advantages of both traditional asymmetric multiprocessing (AMP) and symmetric multiprocessing (SMP).
The hybrid AMP/SMP kernel in OSE Multicore Edition is based on a number of:
- Essential services in OSE are implemented according to a micro kernel model which allows IP stacks, file systems, application loaders, etc. to be located on different cores, while applications can access these services regardless of location in the system (location transparency).
- A kernel that instantiates a separate scheduler on each core with associated data structures to preserve determinism and realtime characteristics.
- User-defined process migration and load balancing based on low intrusion mechanisms to measure CPU load on each core.
- A lightweight kernel internal IPC mechanism called kernel events used to perform asynchronous, cross core transactions in order to avoid the use of fine-granular locking designs, which has a detrimental effect on performance.
VDC Research Group selected Enea OSE Multicore Edition Best of Show at ESC Boston 2009.[1]
The Enea OSE family of RTOS features 3 OSs: OSE for ARM processors, PowerPC and MIPS, OSEck for various DSP's, and OSE Epsilon for minimal devices, written in pure assembly.
Processor support
OSE supports many mainly 32-bit processors:
- ARM family:
- ARM9E
- ARM11
- Xscale
- ARM Cortex
- PowerPC family:
- IBM PPC4xx
- IBM PPC7xx
- Freescale MPC86xx (multicore support on MPC8641D)
- Freescale MPC85xx (multicore support on MPC8572DS, QorIQ P2020, P4080)
- Freescale MPC83xx
- Freescale MPC82xx
- Freescale MPC74xx
- MIPS family
- Cavium Octeon Plus (CN58xx and CN56xx)
- MIPS32
See also
- Smartphone
- ISA platform (Nokia OS)