Nucleus RTOS

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by ValerieScott MGC (talk | contribs) at 21:02, 8 May 2015. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Nucleus RTOS
DeveloperMentor Graphics
Written inC / C++
OS familyReal-time operating systems
Working stateCurrent
Source modelClosed source
Latest releasev2014.12 / January 2015
Available inEnglish
PlatformsARM7, ARM9, ARM11, ARM Cortex-M, ARM Cortex-R, ARM Cortex-A, MIPS, Power Architecture, PowerPC, SuperH, Tensilica, and others [1]
Kernel typeReal-time kernel
Default
user interface
Qt / Command-line interface / None
LicenseProprietary
Official websiteNucleus RTOS

Nucleus RTOS is a real-time operating system (RTOS) offered by the Embedded Software Division of Mentor Graphics for various central processing unit (CPU) platforms. Nucleus RTOS is embedded software and is in an estimated 3 billion devices worldwide.[2]

Development is typically done on a host computer running Windows or Linux. Applications are cross compiled to run on various target CPU architectures and tested using the actual target boards or in a simulation environment.

The Nucleus RTOS is designed for deeply embedded systems applications including consumer electronics, cellular phones, software-defined radios, wearable technology devices, industrial control systems, medical devices, avionics, and other embedded devices requiring deterministic, real time responses. For limited memory systems Nucleus RTOS can be scaled down to a memory footprint as small as <10 KB for both code and data.

Components

Kernel

The Nucleus kernel is a real-time kernel designed to execute the highest priority runnable task at all times. This differs from desktop operating systems such as Windows, Mac-OS, and Linux, which are designed to distribute additional processing power to critical tasks, but always guarantee that all tasks will get a minimum amount of CPU time. By always running the highest priority task, Nucleus, like all Real-time Operating Systems, provides the ability to respond to real world events in a deterministic fashion. This approach also requires a greater degree of professionalism to program, and failure to properly control the priority and structure of tasks can lead to locking lower priority tasks out of operation.

The Application programming interface (API) for Nucleus is based on the C programming language. In addition, programmers can also develop applications using C++. User code written in the assembly language of underlying architecture is supported, however it is rarely used. In the early startup sequence of Nucleus, the memory and CPU registers are setup to support C/C++ code, and those languages are then used to control the processor.

Development

Nucleus is delivered in source code format, meaning that the user has the original code that was used to create the operating system. This is packaged with the ReadyStart® development environment. ReadyStart is an Eclipse based development suite that includes editors for code and build configuration, as well as an integrated compilation based on GCC, and support for source level debugging.

Connectivity

Nucleus supports the ability to connect to other devices through commonly known methods such as USB, Bluetooth, WiFi and Ethernet. In addition, due to its characteristic of residing in embedded devices in industrial and commercial applications, it also supports connections such as PCIe and CAN. A condensed list of connectivity options includes:

File System

Unlike Windows and Unix-like operating systems, Nucleus does not require a file system in order to operate. Many devices that are very small or hidden from normal view do not require the ability to access files; these Nucleus applications often do not include a File system. However, Nucleus can support a wide variety of file systems in applications that require storage. While Windows, Mac-OS, and Linux each commonly have a file system that identifies with the operating system, embedded operating systems such as Nucleus need to be able to support a wide variety of file systems that match a particular environment.

Nucleus provides support for different file systems though an API, similar in nature to the kernel API. This is known as the Virtual file system Application Programming Interface, and it allows the programs running on Nucleus to access all of the above file systems and storage devices using the same functions calls regardless of the underlying storage format.

Graphics

In the early stages of embedded systems there was very little user interface options. The few interfaces that were implemented typically consisted of switches, buttons, and indicator lights. Modern systems have been driven by the smart phone revolution that raised the expectations of both technical and nontechnical users. The most recent embedded systems are often required to have complex graphical and touch screen interfaces.

Nucleus supports Qt, one of the most advanced methods of generating complex graphics running across multiple general purpose operating systems as well as some of the most powerful real-time operating systems.

Security

Nucleus supports a wide variety of encryption options for secure communications. Full support of OpenSSL and CyaSSL is used to provide security for SSH/SSL, WPA/WPA2, as well as key exchange, Hash, and signature protocols.

Space Partitioning

A common characteristic of all RTOS implementations is the implementation of a flat memory model. This differs from Linux and Windows in that there is no virtual memory support. All tasks run in the physical address space of the processor and reside in primary memory for the entire lifetime of the application. This provides the responsiveness necessary for deterministic operation. However, it also means that any task can at any time access anywhere in memory. In a perfect world with no software bugs, this would not be a problem. In the real world, software asymptotically approaches perfection. As a result, the biggest problem with real-time systems is that a task could contain a program error that results in the corruption of the contents of memory address in which it should never access. This class of software bug is often called a scribbler.

Full scale operating systems avoid this problem by running each process in its own virtual memory space. Nucleus is able to afford this type of protection to its tasks by using the same memory management hardware that supports virtual memory, typically call an MMU or MPU. Under Nucleus, the memory translation feature present in some of these hardware units is not used, however, the capability to enforce access control is used. This results in the same type of memory protection normally found in full size operating systems, but all the while still implementing the flat, purely physical memory layout necessary for an RTOS.

This same space partitioning allows the application to load and unload the code modules that reside in these isolated memory regions during execution. This is also a variation from the typical RTOS model that requires all code to be resident at all times. However, it differs from typical operating systems in that the code is not loaded “on demand” when events cause it to be scheduled for execution. Under the Nucleus process model, the overall application must load the code as a specific step. After being loaded, it is then available for execution at any time. The code then remains available until it is explicitly unload by the overall application. This allows devices to change modes of operation, such as a configuration mode vs. an operations mode, in systems that don’t have enough memory to hold the code necessary for both modes at the same time.

Products using Nucleus RTOS

Mentor Graphics boasts Nucleus installment base of over 1.6 billion mobile devices,[3] as of mid-February, 2010 and 2.11 billion devices as of June 2010. According to a report[4] by an analyst firm, Nucleus has been shipped in over 2.84 billion devices as of the end of 2010.

Example devices using Nucleus products are as follows:

  • Nucleus RTOS used by Honeywell for Critical Terrain Awareness Technology in the Aviation Industry.
  • IVL Technologies' On-Key Karaoke Handheld Player Sings along with the Nucleus PLUS Kernel.[5]
  • Logitech uses Nucleus OS in its Pocket Video Portable Digital Video Cameras.
  • Nucleus RTOS used by SK Telecom's first commercialization of CDMA technology in Korea.
  • Nucleus RTOS used in Mediatek Dual SIM Dual processor based chipsets found on most Chinese phones.
  • Nucleus used in NEC High Definition Mobile Handset
  • ASC's RBOX Multi-Service Aggregator Family uses Nucleus PLUS.[6]
  • The TI-Nspire handheld calculators use Nucleus as the basis of their operating system[7]
  • Telephonics is using Nucleus in the SDI System for the USAF C-130 Avionics Modernization Program and the Aviation Communication System for the 767 Tanker Program.[8]
  • Garmin International to develop the CNX80 navigational global positioning system (GPS) for general aviation.
  • A large number of Motorola, Samsung, LG, Siemens/Benq, Sagem and NEC mobile phones.
  • The S-Class UI on LG Pop, Arena & etc. are running on Nucleus OS
  • Intellon Home Plug AV
  • Crestron Electronics on their control system processors.[9]
  • BSS Audio in their Soundweb London range.[10]
  • Later versions of the Creative ZEN product line.
  • The Infineon S-Gold2 chipset used in Siemens S75, E71, M81, etc. phones[11]
  • The Infineon S-Gold2 baseband chip used in Apple's iPhone[12]
  • The Metrotech i5000 Utility Locating Receiver.
  • The Creative Zen Vision line uses Nucleus as their operating system
  • Intel Active Management Technology/VPro embedded controller
  • Tandberg MXP Video & Telephony appliances[13]
  • Datex-Ohmeda Avance anesthesia system
  • Zoll Medical Corporation's defibrillators
  • Samsung bada platform based devices[citation needed]
  • Mindray's early Patient Monitor, ultrasound device and hematology analyzer products

References

External links