Hallo OpenSource-Betriebssysteme wie Linux werden ja mittlerweile auf so ziemlich alles portiert, wo Silizium drin ist. Da kam mir so die Idee, warum nicht auch auf AVRs? Nicht, dass ich das know-how oder die Zeit dazu hätte, aber ich begann ein bisschen darüber nachzudenken. Was macht eigentlich z.B. ein Linux oder ganz allgemein ein Betriebssystem überhaupt aus, überlegte ich mir. Irgendwie kam ich zum Schluss, dass es - in Einfachst-Betriebssystemen - hauptsächlich um die Koordination und Bereitstellung von Schnittstellen für die Hardware sowie eventuell, besonders bei Multithreading, um die Speicherverwaltung. Als ich mir überlegte, wie man das denn auf einem AVR (z.B.) umsetzen müsste, fiel mir irgendwie auf, dass es ungefähr auf die Bereitstellung einer Funktionsbibliothek herausläuft - ganz ähnlich wie für eine Programmiersprache. Ist es etwa das, was ein Betriebssystem ausmacht? Und was macht dann eben konkret ein ein z.B. Linux aus? Pinguin drauf und gut ist dürfte wohl nochnicht reichen ;-) Gruss Michael
Im Prinzip liegst du richtig, allerdings gibt's noch ein "paar" Kleinigkeiten mehr, die ein OS erledigt. Wenn du dich mal etwas einlesen willst: - Andrew S. Tannenbaum: Operating Systems Design and Implementation Tannenbaum erklärt anhand von Minix wie ein OS funktioniert. - Kirk McKusick, et all: The Design and Implementation of the 4.4BSD Operating System Wenn man beide gelesen und verstanden hat kennt man auch die Unterschiede zwischen BSD und System V :-)
Ein Betriebssystem verwaltet Resourcen. Hast Du viele Resourcen und viele Benutzer (Programme, Prozesse, Tasks, Dienste, IO-Kanäle, Interrupts, ...) macht die Verwaltung der Resourcen entsprechend viel Arbeit. Hast Du kaum Resourcen und praktisch kaum Streithähne die sich um die Resourcen schlagen, brauchst Du auch nur ein minimalistisches Betriebssystem oder gar keins, wenn der Prozess alleine auf der Welt ist.
Kurz gesagt: Es stellt also tatsächlich seinen Programmen Funktionen zur Verfügung, ähnlich wie die Bibliotheken einer Programmiersprache. (?) Auf einem AVR würde das also wenig Sinn machen. Gibt es vielleicht trotzdem Projekte, die dies versucht haben? Es würde mich insbesondere daher interessieren, da ich die AVRs einigermassen kenne und mir daher ungefähr vorstellen kann, was so abgeht.
Es gibt schon bestimmte Anwendungen, wo ein OS auf dem AVR durchaus Sinn macht. Die Ethernut hat z.B. ein OS, um verschiedene Prozesse (nach definition sind es eigentlich Threads...) wie Webserver, TCP/IP state machine usw besser unter einen Hut zu bringen: http://www.ethernut.de/de/software.html .
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.