Sunday, 9 August 2015

COMMON RTOS : LINUX

A few of the many versions of Linux are designed for embedded systems.
Unlike the majority of "desktop" or "server" distributions of Linux, these versions of Linux either
  • (a) support real-time tasks, or
  • (b) run in a "small" embedded system, typically booting out of Flash, no hard drive, no full-size video display, and take far less than 2 minutes to boot up, or
  • (c) both.

Linux and MMU

Linux was originally designed on a processor with a memory management unit (MMU). Most embedded systems do not have a MMU.
Benefits of using a processor with a MMU:
  • can isolate running "untrusted" machine code from running "critical" code, so the "untrusted" code is guaranteed (in the absence of hardware failures) not to interfere with the "critical" code
  • makes it easier for the OS to present the illusion of virtual memory
  • can run "normal" Linux 
Benefits of using a processor without a MMU:
  • typically lower-cost and lower-power
  • can still run the "μClinux" version of Linux specifically designed to run on processors without a MMU.

Linux and real time

  • Run the real-time tasks on a dedicated microcontroller; communicate with a (non-real-time) PC that handles non-real-time tasks. This is pretty much your only choice if you need real-time response times below 1 microsecond.
  • Run the real-time tasks in a "underlying" dedicated real-time operating system; Run Linux as a "nested operating system" inside one low-priority task on top of the real-time operating system. Some of these systems claim real-time response times below 500 microseconds.
  • use a Linux kernel designed to emphasize real-time tasks, and run the real-time tasks with a high priority (perhaps even as a kernel thread). As Linux develops, it seems to be getting better response times.
Typically embedded Linux needs a minimum of about 2 MB of RAM, not including application and service needs.

No comments:

Post a Comment