mrjerk: Userspace->Kernelspace/kernel->Hardware ..

Beitrag lesen

Hallo,

Doch eine frage ich mich doch schon, in Linux gibt es ca. 300 Syscalls, wie können die denn für die ganzen Aufgaben reichen?

Tatsächlich beschränkt sich das, was ein Computer tut im wesentlichen auf

  • Einlesen
  • Rechnen
  • Ausgeben
  • Warten :)

Du kannst Daten für ein Gerät "bereit legen"...und dem Gerät dann signalisieren, dass es damit nun etwas tun soll (Beispiel: Grafik, Druck, Netzwerk,...)

Umgekehrt kann das Gerät dem OS mitteilen, dass es Daten vorliegen hat, die das Betriebssystem entgegen nehmen und an Prozesse verteilen muss, die damit weiter arbeiten sollen (z.b. Maus).

Was das aber für ein Gerät ist, ist eigentlich egal.

Dann braucht man noch ein paar Instruktionen für Speicherverwaltung, Prozess-Wechsel und ähnlichen Schnick-Schnack...und das wars.
Deswegen kommt man mit sehr wenigen System Calls aus. Klar, für komplexere Funktionen gibt es dann Bibliotheken, die das ganze komfortabel machen, (du willst Dir nicht jedesmal, wenn Du ein Fenster öffnest, überlegen müssen, wie Du jetzt mit der Grafikkarte reden musst) aber das Betriebssystem selbst muss gar nicht sooo viel können.

Was anderes was mir nicht in den Kopf gehen will, man sagt ja Linux sei Multitaksing fähig (es können mehrere Programme gleichzeitig laufen und organisiert werden) aber mal ernsthaft, das kann Windows 3.1 doch auch, es läuft das OS selbst und z.B. paintbrush, oder wie kann man sich das vorstellen?

Richtig. Multitasking ist ja auch kein Alleinstellungsmerkmal von Linux, es ist dort nur sehr konsequent umgesetzt.

Viele Grüße,
Jörg