Auch im Bereich der Embedded Systeme geht der Trend heute zu immer leistungsfähigeren CPUs, mit denen ganz neue Einsatzfelder für Embedded Systeme erschlossen werden können.
Nicht nur die CPUs sondern auch die Aufgaben und damit die Programme der Embedded Systeme werden immer komplexer, so daß der Wunsch entsteht, die Programme nicht mehr in schlecht wartbaren Low-Level Sprachen wie Assembler entwickeln zu müssen, sondern auf abstraktere und portablere Hochsprachen zurückgreifen zu können.
Auch die Peripherie typischer Embedded Systeme ist in den letzten Jahren umfangreicher geworden. So ist z.B. eine IP-Anbindung für heutige Embedded Systeme nichts Ungewöhnliches mehr. Aus diesem Grund kommt man auch im Embedded Bereich heute kaum noch ohne Betriebssysteme aus.
Verschiedene Hersteller haben diese Problematik erkannt und bieten Mikrokontroller an, die einen x86 Kern besitzen und so zur weltweit am weitesten verbreiteten CPU-Architektur kompatibel sind. Dieses ermöglicht es, bei der Entwicklung von Embedded Systemen auf weit verbreitete Betriebssysteme und Entwicklungswerkzeuge zurückgreifen zu können. Dieses ist bei vielen anderen Embedded Architekturen, die heute verkauft werden, nicht selbstverständlich, da sich deren Hersteller oftmals scheuen, für ihre Architektur z.B. extra eigene Entwicklungswerkzeuge entwickeln zu lassen.
Vorteile von Linux
Linux hat in den letzten Jahren vor allem im Servermarkt an großer Bedeutung gewonnen und schickt sich jetzt an, den Markt der Embedded Systeme zu erobern. Im Gegensatz zu anderen verbreiteten PC-Betriebssystemen hat Linux gerade für den Embedded Markt entscheidendene Vorteile:
- You do not have to pay any kinds of license fees, because Linux is distributed under the terms of the GNU General Public License.
- There are compilers for all common programming languages like ANSI C/C++. It is possible to choose the optimal language for each project. Most embedded architectures offer only assemblers and in some cases simply ANSI C compilers.
- Linux is distributed with the complete source code. That makes it possible to adapt the kernel to the special needs of a project. It is really easy to add new drivers for special devices to the operating system.
- It is possible to install a complete Linux system on a floppy disk or a 2 Mbytes flash ROM. That means that you can create really small Linux systems.
- Linux has got all functions of a server operating system like: multitasking, network support, remote administration, memory protection, etc.
- A lot of embedded systems should be connected to IP networks. Therefore the embedded systems needs not only network support but also server software. In most cases it is not necessary to develop such software for Linux systems, because there are programs for most common protocols (e.g. FTP, FTP, SMTP, NNTP, SMP). Even these programs can be used without a fee in most cases. For example you could create an embedded system, which can be configured via an HTML interface. The data created by this systems can then be sent via e-mail.
Echtzeit Linux
Linux ist wie die meisten anderen Multitasking-Betriebssysteme standardmäßig nicht echtzeitfähig. Das bedeutet, daß das Betriebssystem keine maximale Zeit garantiert, nach der ein Prozeß spätestens Rechenzeit erhält. Dieses ist in vielen Bereichen auch nicht wichtig, kann allerdings z.B. bei Embedded Systemen, die eine Anlage steuern sollen, zu einem Problem werden.
Man stelle sich eine Anlage vor, die ein Faß befüllen soll. Das Embedded System öffnet das Ventil und die Flüssigkeit fließt in das Faß. Nach einiger Zeit meldet ein Füllstandssensor an das System, daß das Faß voll sei. Leider bekommt der Steuerprozeß erst nach 10 Sekunden wieder Rechenzeit. Zu dieser Zeit ist es für das Schließen des Ventils aber zu spät: das Faß ist bereits übergelaufen.
Um Linux auch für solche Steuerungsaufgaben einsetzen zu können, gibt es diverse Echtzeiterweiterungen wie z.B. RTLinux.



