Es gibt tatsächlich drei Konzepte, die Sie hier muddling up sind. Das erste und wichtigste ist, was vom Betriebssystem bereitgestellt wird, und was es tut, ist es, den Speicherbereich für Anwendungen zu trennen, die parallel laufen. Und es heißt virtual memory.
In Virtual memory Systemen bildet das OS die Speicheradresse wie die von Anwendungen auf realen physikalischen Speicher zu sehen. Somit kann Speicherplatz für Anwendungen getrennt werden, so dass sie niemals kollidieren.
Die zweite ist Sandboxing. Es ist jede Technik, die Sie als Programmierer verwenden, um nicht vertrauenswürdigen Code auszuführen. Wenn Sie als Programmierer das Betriebssystem schreiben, dann ist das von Ihnen beschriebene virtuelle Speichersystem aus Ihrer Sicht ein Sandbox-Mechanismus. Wenn Sie, der Programmierer, einen Webbrowser schreiben, dann ist das virtuelle Speichersystem an sich kein Sandbox-Mechanismus (verschiedene Perspektiven, sehen Sie). Stattdessen ist es ein pontenter Mechanismus für Sie, Ihre Sandbox für Browser-Plugins zu implementieren. Google Chrome ist ein Beispiel für ein Programm, das den virtuellen Speichermechanismus des Betriebssystems verwendet, um seinen Sandbox-Mechanismus zu implementieren.
Aber virtuellen Speicher ist nicht der einzige Weg Sandbox zu implementieren.Mit der Programmiersprache tcl können Sie beispielsweise Slave-Interpreter über den Befehl interp instanziieren. Der Slave-Interpreter wird oft verwendet, um eine Sandbox zu implementieren, da sie in einem separaten globalen Bereich ausgeführt wird. Aus der Sicht des Betriebssystems laufen die beiden Interpreter in einem einzigen Prozess im selben Speicherbereich. Aber weil die beiden Interpreter auf der C-Ebene niemals Datenstrukturen teilen (sofern sie nicht explizit programmiert sind), werden sie effektiv getrennt.
Jetzt ist das dritte Konzept Virtualisierung. Das ist wieder getrennt von beiden virtuellen Speicher und Sandboxing. Während virtueller Speicher ein Mechanismus ist, der sich aus Sandbox-Sicht voneinander unterscheidet, ist Virtualisierung ein Mechanismus, der Betriebssysteme voneinander trennt. Ein Beispiel einer Software, die dies beinhaltet, sind: Vmware, Parallels Desktop, Xen und die kernel virtual machine.
Wie vergleichen wir diese beiden Konzepte mit Webbrowser-Plugins und Site-spezifischen Browsern? Ich glaube, dass Browser-Plugins für ihren Speicher und Zugriff anderen Heuristiken als VM und Sandboxing folgen. – RBT