Schlüsseltechnologie

STP019: Speicherschutz


Listen Later

Nach einem glorreichen Intro mit perfekter Vorbereitung befassen Xyrill und ttimeless sich mit Speicherschutz.

Wie und warum und welchen Speicher überhaupt? Hört selbst.

Shownotes
  • "Welchen Speicher müssen wir eigentlich schützen?"

    • hier nur Arbeitsspeicher und Gerätespeicher
    • andere Speicherarten (z.B. Festplatten) geschützt durch die Betriebssystem-Abstraktionen, siehe zukünftige Folge zu Privilegienkontrolle
    • Aufgaben des Betriebssystems: Prozessisolation und Vermittlung des Hardwarezugriffs

      • Problem: das Betriebssystem ist auch nur "ein Programm"
      • Frage 1: Wie wird sichergestellt, dass das Betriebssystem die finale Kontrolle über Hardwarezugriffe hat?
      • Frage 2: Wie wird verhindert, dass ein Speicherbereich, den Prozess A verwendet, von Prozess B überschrieben (oder unberechtigterweise ausgelesen) wird?
      • Antwort auf Frage 1: Prozessor-Ringe

        • Standardfunktion auf allen CPUs, die auf Mehrprozess-Betrieb ausgelegt sind (nicht immer im Embedded-Bereich)
        • zu jedem Zeitpunkt läuft der Prozess in einem von mehreren Ringen
        • sensible Operationen (v.a. Hardwarezugriff) sind nur in den höheren Ringen erlaubt und damit den Betriebssystemprozessen vorbehalten
        • Wechsel in einen niedrigeren Ring jederzeit möglich (z.B. Aktivierung eines Userspace-Prozesses durch das Betriebssystem)
        • Wie kommen wir von einem niedrigeren Ring wieder in einen höheren Ring?

          • Interrupts (siehe STP015): Eintreten eines Hardware-Ereignisses (z.B. ankommendes Netzwerk-Paket oder abgelaufener Hardware-Timer), das durch das Betriebssystem behandelt werden muss
          • Syscalls: niedrigprivilegierter Prozess fragt eine definierte Schnittstelle des Betriebssystems an, um eine höherprivilegierte Operation auszuführen
          • z.B. Dateisystem-Zugriff, Hardware-Zugriff, Ändern der Betriebssystem-Konfiguration, Starten von neuen Prozessen, Nachrichtenübermittlung an andere Prozesse
          • dadurch Realisierung der Prozessisolation, weil das Betriebssystem die Kontrolle über alle privilegierten Operationen hat
          • Antwort auf Frage 2: Virtuelle Speicherverwaltung

            • wenn Prozesse auf Speicher zugreifen, verwenden sie nur "virtuelle" Speicheradressen: z.B. Adresse 0x42 für Prozess A ist nicht unbedingt derselbe Speicher wie Adresse 0x42 für Prozess B
            • Abbildung auf physische Speicheradressen innerhalb der CPU durch eine Memory Management Unit (MMU)
            • Konfiguration der MMU durch das Betriebssystem immer kurz vor der Übergabe der CPU an einen anderen Prozess
            • Aufteilung des physischen/virtuellen Speichers in Seiten (Pages), z.B. bei x86-64 wahlweise 4 KiB oder 2 MiB oder 1 GiB
            • pro Page verschiedene Zugriffsberechtigungen möglich, z.B. zur Verhinderung des Schreibens in ausführbare Programmteile, oder für Shared Memory als Kommunikationsweg zwischen Prozessen
            • Paging der MMU ermöglicht Swapping

              • Pages müssen nicht unbedingt im tatsächlichen Arbeitsspeicher gehalten werden, sondern können bei Nichtverwendung in eine Swap-Datei auf der Festplatte ausgelagert werden
              • dadurch über alle Programme summiert meist deutlich mehr virtueller Speicher zugewiesen, als tatsächlich physischer Speicher vorhanden ist
              • wenn ein Programm auf eine im Arbeitsspeicher fehlende Seite zugreift, erzeugt die MMU einen Interrupt (Page Fault), sodass das Betriebssystem die fehlende Seite transparent nachladen kann
              • analog dazu: Memory-Mapping von Dateiinhalten direkt in den Arbeitsspeicher
              • wenn wir schon mal über Speicheradressen reden: Direct Memory Access

                • Abbildung eines Arbeitsspeicher-Addressbereiches auf einen Speicher eines angeschlossenen Gerätes, zum Beispiel den Arbeitsspeicher der Grafikkarte oder eines Netzwerkadapters
                • dadurch direkter Transfer von Daten zwischen niedrigprivilegierten Prozessen und Hardware möglich, z.B. schnelles Hochladen von Texturen in die Grafikkarte durch ein 3D-Spiel
                • DMA braucht nicht unbedingt eine MMU (siehe VGA-Buffer bei 0xB8000 in DOS-Ära-Betriebssystemen)
                • ...more
                  View all episodesView all episodes
                  Download on the App Store

                  SchlüsseltechnologieBy Xyrillian Noises


                  More shows like Schlüsseltechnologie

                  View all
                  Chaosradio by Chaos Computer Club Berlin

                  Chaosradio

                  7 Listeners

                  Freak Show by Metaebene Personal Media - Tim Pritlove

                  Freak Show

                  10 Listeners

                  Logbuch:Netzpolitik by Metaebene Personal Media - Tim Pritlove

                  Logbuch:Netzpolitik

                  7 Listeners

                  Methodisch inkorrekt! by Methodisch inkorrekt!

                  Methodisch inkorrekt!

                  14 Listeners

                  c’t uplink - der IT-Podcast aus Nerdistan by c’t Magazin

                  c’t uplink - der IT-Podcast aus Nerdistan

                  7 Listeners

                  Jung & Naiv by Tilo Jung

                  Jung & Naiv

                  40 Listeners

                  heiseshow by heise online

                  heiseshow

                  2 Listeners

                  Übermedien by Übermedien

                  Übermedien

                  3 Listeners

                  Lage der Nation - der Politik-Podcast aus Berlin by Philip Banse & Ulf Buermeyer

                  Lage der Nation - der Politik-Podcast aus Berlin

                  221 Listeners

                  Die Wochendämmerung - Der stabile Wochenrückblick by Katrin Rönicke und Holger Klein (hauseins)

                  Die Wochendämmerung - Der stabile Wochenrückblick

                  15 Listeners

                  Sicherheitshalber by Der Podcast zur sicherheitspolitischen Lage in Deutschland, Europa und der Welt.

                  Sicherheitshalber

                  45 Listeners

                  Bit-Rauschen: Der Prozessor-Podcast von c’t by c't Magazin

                  Bit-Rauschen: Der Prozessor-Podcast von c’t

                  1 Listeners

                  Legion by rbb | NDR | Undone

                  Legion

                  5 Listeners

                  Haken dran – das Social-Media-Update der c't by Gavin Karlmeier

                  Haken dran – das Social-Media-Update der c't

                  2 Listeners

                  Passwort - der Podcast von heise security by Dr. Christopher Kunz, Sylvester Tremmel

                  Passwort - der Podcast von heise security

                  3 Listeners