Betriebssysteme


1. Vorwort


Unter dem Begriff Betriebssystem verbirgt sich eine Vielzahl an Software für die unterschiedlichsten Bereiche - von der Waschmaschinensteuerung, über den Personal Computer, bis hin zum Cluster-Rechner. Allgemein kann man den Begriff Betriebssystem wörtlich nehmen und die Aussage treffen: Ein Betriebssystem ist Software, die den Betrieb eines System erleichtert oder erst ermöglicht.

Als Beispiel dafür möchte ich die Waschmaschinensteuerung bringen. Der Programmierer bedient sich eines EchtzeitKeine Zugangsberechtigung-Betriebssystems, um in erster Linie mehrere Aufgaben mittels Multithreading vom selben Mikrocontroller abarbeiten zu lassen. Die Implementierung wird dem Programmierer durch die vom Betriebssystem gebotenen Funktionen erleichtert. Einige andere Kategorie: Ein Benutzer eines Personal-Computers installiert ein Betriebssystem, weil er sonst nichts mit der Hardware anfangen könnte. Ähnlich ist es bei dem Cluster-Rechner.

Die Liste der Betriebssysteme aus der Wikipedia gibt einen guten Überblick über die Vielfalt und Anzahl der Betriebssysteme.

Einen guten Überblick über das, was der Benutzer eines Personal Computers, eines PDAs oder der Administrator eines Servers, also eines eher umfangreicheren Systems, von einem Betriebssystem erwartet gibt es unter http://www.nondot.org/sabre/os/articles.

Betriebssysteme müssen nicht immer etwas kosten: http://de.wikipedia.org/wiki/Kategorie:Freies_Betriebssystem

Man muss sich nicht ein Betriebssystem zulegen, wenn man nur mit Threads arbeiten möchte: Siehe Protothreads - Lightweight, Stackless Threads in C (habe ich noch nicht probiert!)


2. Auswahlkriterien


Die Wahl eines Betriebssystems richtet sich in erster Line an der verwendeten Prozessorarchitektur, den verfügbaren Ressourcen (Speicher) und falls erforderlich der Echtzeitfähigkeit aus. Damit kann man die Auswahl schon stark eingrenzen.

  • EchtzeitKeine Zugangsberechtigung-Betriebssystem (EchtzeitKeine Zugangsberechtigung ist wie immer, Definitionssache!)
  • Prozessorarchitektur (x86, ARM, SPARC, AVR 8-bit, etc.)
  • Systemressourcen (RAM, Flash, ROM, Festplatte etc.), bei Betriebssystemen werden die Mindestanforderungen an die Hardware angegeben
  • Memory Protection Unit
  • Threads/Tasks
    • Co-operative: A task runs until it gives back processing to scheduler. Tasks can't be interrupted by other tasks. If there are more then one task pending, that one with higher priority will be started first.
    • Round-Robin: Each task has a fixed execution slice of the CPU.
    • Pre-emptive: A tasks with lower prioritity will be interrupted by a just activated task with higher prioritiy.
  • Lizenz (Open Source, BSD, spezielle kommerzielle Lizenz des Anbieters)
  • Qualität Support
  • Qualität der Dokumentation
  • Kosten

3. Beispiele


3.1 Klassifikation


Nachfolgend möchte ich noch eine kleine Auswahl der Betriebssysteme auflisten, die mich in irgendeiner Form interessiert haben oder die ich privat verwendet habe. Ich unterscheide in drei Klassen:

  • Embedded - Small foot print
    Meist EchtzeitKeine Zugangsberechtigung-Betriebssystem mit wenigen Kilobyte Bedarf an Festspeicher (Flash, ROM) und einigen Byte bedarf an Arbeitsspeicher (SRAM)
  • Embedded - Large foot print
    Das sind meist PDAs oder generell eingebettete Geräte, die zwar relativ zu den heutigen PCs beschränkte Ressourcen haben, allerdings meine Personal Computer von früher in den Schatten stellen - tolle Definition, ist doch wahr ;)
  • Personal Computer und Server
    Das sind meistens modulare Systeme, wie sie heute weit verbereitet sind, mit hoher Verarbeitungsgeschwindigkeiten, reichlich Arbeitsspeicher und Festspeicher.





3.2 Embedded - EchtzeitKeine Zugangsberechtigung, Small foot print


Das sind vorwiegend Mikrocontroller.

  • NutOS is an intentionally simple RTOS for the ATmega128Keine Zugangsberechtigung, which provides a minimum of services to run Nut/Net, the TCP/IP stack. Läuft bei mir auf einem ATmega128 mit 28k externen RAM. Cooperative Multithreading, Open Source, gute Dokumentation, kann ich empfehlen
  • eCos is an open source, royalty-free, real-time operating system intended for embedded applications.
  • TinyOS is ein open-source Betriebssystem. Es wurde für drahtlose Sensornetzwerke entworfen es unterstützt eine Komponenten-basierte Architektur, was die Entwicklungszeit verkürzen und die Code-Größe verkleiner soll.
  • Segger - embOS Real Time Operating System
  • FreeRTOSKeine Zugangsberechtigung is a portable, open source, mini Real Time Kernel - a free to download and royalty free RTOS that can be used in commercial applications
  • ContikiKeine Zugangsberechtigung provides powerful low-power Internet communication. Contiki supports fully standard IPv6Keine Zugangsberechtigung and IPv4, along with the recent low-power wireless standards: 6lowpan, RPL, CoAP. With Contiki's ContikiMAC and sleepy routers, even wireless routers can be battery-operated. Contiki is designed to operate in extremely low-power systems: systems that may need to run for years on a pair of AA batteries. To assist the development of low-power systems, Contiki provides mechanisms for estimating the system power consumption and for understanding where the power was spent.
  • TI-RTOSKeine Zugangsberechtigung
  • ChibiOS/RT is a free and efficient RTOS designed for deeply embedded applications. It offers a comprehensive set of kernel primitives and supports many architectures: ARM7, Cortex-M0, Cortex-M3, Cortex-M4, PowerPC e200z, STM8, AVR, MSP430, ColdFire, H8S, x86.
  • pico]OS
  • CARIBOU++ RTOS A C/C++ RTOS (Real Time Operating System) for embedded ARM micro-controllers.
  • scmRTOS is a tiny Real-Time Preemptive Operating System intended for use with Single-Chip Microcontrollers. scmRTOS is capable to run on small uCs with as little amount of RAM as 512 bytes. The RTOS is written on C++ and supports various platforms.
  • NuttX is a real time embedded operating system (RTOS). Its goals are: (1) small footprint usable in deeply embedded, resource constrained environments, (2) fully scalable from tiny (8-bit) to moderate (32-bit), (3) standards compliance, (4) real time, and (5) totally open. Think "Tiny Linux".
  • OSys is simple OS for the 8-bit megaAVR family of AVR microcontrollers
  • µOS++ (micro OS plus plus) is an open source, royalty-free, real-time operating system intended for embedded systems built around ARM Cortex M or AVR devices. It is based on a preemptive scheduler written in C++ (more info in the Wiki).
  • Microsek is an INTECS OpenSource Hard Real-Time and Networked Operating System compliant to the Osek/Vdx standard and suitable for the development of Embedded Real-Time Applications.
  • scmRTOS is tiny Real-Time Preemptive Operating System intended for use with Single-Chip Microcontrollers. scmRTOS is capable to run on small uCs with as little amount of RAM as 512 bytes. The RTOS is written on C++ and supports various platforms.
  • embKernel is to produce an unified C++ source for embedded devices (cortex-M uC for the time being) which includes: RTOS, TCP/IP stack, FAT32 file system, USB stack and drivers for common uControllers peripherals
  • keil RTX
  • Zephyr OSKeine Zugangsberechtigung


3.3 Embedded - Large foot print


Für PDAs, Navigationssysteme, Router, WLAN-Accesspoints, Embedded Server, Multimedia-Rechner, Set-Top-Box





3.4 Personal Computer / Server






There are no comments on this page. [Add comment]

Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by WikkaWiki