diff --git a/g3doc/architecture_guide/platforms.png b/g3doc/architecture_guide/platforms.png index 005d56feb..3b26c6399 100644 Binary files a/g3doc/architecture_guide/platforms.png and b/g3doc/architecture_guide/platforms.png differ diff --git a/g3doc/architecture_guide/platforms.svg b/g3doc/architecture_guide/platforms.svg index b0bac9ba7..1c52c24fa 100644 --- a/g3doc/architecture_guide/platforms.svg +++ b/g3doc/architecture_guide/platforms.svg @@ -2,13 +2,6 @@ + inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" + sodipodi:docname="platforms.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + inkscape:window-maximized="1" + inkscape:showpageshadow="2" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" /> @@ -51,7 +54,7 @@ image/svg+xml - + @@ -83,7 +86,7 @@ style="fill:#ff8080;stroke-width:0.19060372" /> gVisor + style="stroke-width:0.0850731">gVisor workload + style="stroke-width:0.0832785">workload host + style="stroke-width:0.160981">host gVisor + style="stroke-width:0.0850731">gVisor workload + style="stroke-width:0.0832785">workload KVM + style="stroke-width:0.108769">KVM gVisor + style="stroke-width:0.0850731">gVisor workload + style="stroke-width:0.0832785">workload ptrace + x="89.655647" + y="148.03169" + style="stroke-width:0.0848642">systrap ptrace + style="stroke-width:0.0848642">systrap VM + style="stroke-width:0.136265">VM guest + style="stroke-width:0.154464">guest gVisor + style="stroke-width:0.0850731">gVisor workload + style="stroke-width:0.0832785">workload ptrace + style="stroke-width:0.0848642">systrap diff --git a/website/blog/2020-10-22-platform-portability.md b/website/blog/2020-10-22-platform-portability.md index 4d82940f9..15a804b52 100644 --- a/website/blog/2020-10-22-platform-portability.md +++ b/website/blog/2020-10-22-platform-portability.md @@ -6,13 +6,18 @@ requires expensive bare-metal machines or cloud instances to run safely with good performance, increasing cost and complexity for Cloud users. gVisor, however, takes a more flexible approach. +**NOTE 2024-05**: This post describes the ptrace and KVM platforms, which were +the only two gVisor platforms at the time it was written. The +[Systrap platform](/blog/2023/04/28/systrap-release/) was added since and +provides better performance than ptrace. + One of the pillars of gVisor's architecture is portability, allowing it to run anywhere that runs Linux. Modern Cloud-Native applications run in containers in many different places, from bare metal to virtual machines, and can't always rely on nested virtualization. It is important for gVisor to be able to support the environments where you run containers. -gVisor achieves portability through an abstraction called a _Platform_. +gVisor achieves portability through an abstraction called a *Platform*. Platforms can have many implementations, and each implementation can cover different environments, making use of available software or hardware features.