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