Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 4 » BST 7.5 ECTS Prüfung 27.03.2023

BST 7.5 ECTS Prüfung 27.03.2023

Allgemein

  • Fach: BST 7.5 ECTS SS22
  • Datum: 27.03.2023
  • Typ: muendlich
  • Pruefer: wosch
  • Beisitzer: Phillip
  • Vorbereitung
    • Es lag ein Semester zwischen BST und Prüfung. Die Übungsfolien habe ich mir angeschaut, bei den Übungen nur die Themen, bei denen ich es für nötig befand. Ansonsten Vorlesungsfolien und ein bisschen Internet.
  • Evaluation:
    • Sehr faire Pruefung
    • Sehr entspannte Atmosphaere
    • Letzte BST-Prüfung von wosch

Pruefung

Was frag ich denn da immer so? Normalerweise fange ich mit den System Calls an, also mach ich das heute auch so. Wofür braucht man die denn? Manche Befehle gehen nur privilegiert → Privilegientrennung (z.B. für Speicherverwaltung → CR3)

Wie funktioniert denn so ein System Call? User ruft System Call → Aufrufstumpf → Verteiler (über int 0x80, syscall…)

Genau, aber das Vorhandensein der Befehle ist ja betriebssystemabhängig. Was passiert denn genau bei so einem System Call? Als Beispiel einen Aufruf von read aufgeschrieben. Parameterübergabe, Kontextsicherung…

Dann zur Behandlung im Userspace gekommen. Musste mir aus der Nase gezogen werden.

Was passiert denn vor und nach dem int 0x80? Habe hier auch etwas gebraucht. Register werden gesichert. Und wieder hergestellt/genullt (um Speicherleak Kernel → User vorzubeugen).

Wie kommt denn das Ergebnis zum User zurück? Über das Register %eax.

Und was passiert, wenn der Aufruf nicht erfolgreich war? Auch über %eax

Was könnte da das Problem sein? %eax muss sich Rückgabewert und Fehlercode teilen

Wie könnte man das sonst noch lösen? Hier musste mir die Antwort wieder aus der Nase gezogen werden. Über Flags könnte auch noch eine Option sein.

Genau, aber warum wird das nicht getan? Wieder aus der Nase ziehen. Der Kern muss dann auf die gesicherten Flags des Userprozesses zugreifen und hat damit auch einen Speicherzugriff.

Irgendwann Übergang zu Adressräumen (über Parameterprüfung bei read).

Stichpunkte:

  • Wie wird gesichert, dass bei partiell privat nicht in den Kernel geschrieben wird?
  • Einadressraum:
    • Randomisierung
    • ganz kurz Befähigungen
    • Problem: Durch mmap kann Adressraum durchstriffen werden
    • Lösung: Muster erkennen (Katz und Maus), System Calls anbieten, die weniger Speicher auf einmal bereitstellen.

Als Antworten sind meist nur Stichpunkte gegeben, wobei die Beantwortung durchaus ausfuehrlicher war. Das Protokoll ist sicher nicht ganz vollständig und meine Antworten waren teilweise anders (glaube ich, ich gebe mein Bestes). Generell erzaehlt wosch auch immer wieder Anekdoten (die manchmal auch etwas abschweifen). Pruefungsatmosphaere ist sehr angenehm. Ich bin überrascht, dass ich noch sehr gut geschafft habe, obwohl ich schon teilweise auf dem Schlauch stand.

Als Themen wurden ausschließlich System Calls und Adressräume behandelt