User Mode vs. System Mode



  • Hallo,
    ich habe da mal eine Frage:
    Es Gibt ja zwei verschiedene Modi: User Modus und System modus (Kernel mode, Supervisor Mode). Wenn ich das Richtig verstanden habe läuft das System immer im User Modus, selbst wenn ich als root angemeldet bin. Der Supervisor Modus wird z.B. durch eine Division durch Null ausgelöst.
    Und nun meine Fragen: Wie wechsel ich Manuell in den Supervisor Modus, und was für Befehle gibt es da. Sind das Assambler Befehle?

    Ich habe das ganze Netz auf den Kopf gestellt und nichts gefunden.
    Ich hoffe jemand von euch kann mir helfen

    Sebastian



  • Hallo,

    du kannst dich nicht in den "Supervisor Mode" einloggen, sondern das hängt damit zusammen, welche Header und Funktionen du benutzt(z.B. für Kernel- oder Modulprogrammierung). Bestimmte Funktionen (z. B. printk) sind im Kernel definiert und die kannst du nutzen. Entsprechende Headerdatein findest zu unter /usr/src/linux/include/linux und /usr/src/linux/include/asm.

    Allerdings setzt das schon etwas Know-How voraus, dennsich dabei das System zu zerschießen ist um Einiges einfacher als mit normalen Systemfunktionen.

    Eine ausführlichere Erklärung findest du z. B. hier:
    http://www.oreilly.de/german/freebooks/linuxdrive2ger/book1.html



  • Ich lernen zur Zeit für eine Klausur.
    Und eine Beispielfrage ist:
    Bei welchen Systemaufrufen wird in den Supervisor Mode umgeschaltet, und was passiert hierbei?

    Hierzu fällt mir nur eine Division durch Null ein, das lößt ja einen Software Interrupt aus.

    Nenne Maschienensprachebefehle für den Supervisormode.

    Das fällt mir absoulut nichts zu ein.



  • Hallo,

    eine Anlaufstelle wäre z. B. hier:
    http://wiki.kernelnewbies.org/moin.cgi

    Leider kann ich dir zu deinen Fragen auch nix Genaueres sagen.



  • Kernelmodus heißt, dass etwas im Kontext des Kernels ausgeführt wird, also intern auf den Kernel oder Hardware zugreift. Jeder Systemaufruf wird im Kernelmodus ausgeführt, ansonsten ist es kein Systemaufruf sondern nur ein Libraryaufruf (siehe Unterschied zwischen Manpage Sektion 2 und 3 :)).

    Das hat nichts mit den Userrechten zu tun, sondern nur mit den Möglichkeiten auf die Hardware zuzugreifen, die eben im Usermode nicht vorhanden ist (siehe auch ring 0 und ring 1).


Anmelden zum Antworten