Linux GUI
                          │
            ┌─────────────┴─────────────┐
            │                           │
          X11                         Wayland
            │                           │
     ┌──────┼──────┐                    │
     │      │      │                    ▼
    Xorg  Xvfb  Xtigervnc             Mutter
     │      │      │                    │
     │      │      │                    │
    GPU   虚拟   VNC网络                GPU
           │      │
           │      ▼
           │   VNC Client
           │
           └───────────────┐
                           ▼
                    GNOME / XFCE
                           │
                           ▼
                     Applications
(base) wy@node1:~$ cat  ~/.vnc/xstartup
#!/bin/sh

# unset SESSION_MANAGER
# unset DBUS_SESSION_BUS_ADDRESS

# exec startxfce4


unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export SDL_IM_MODULE=fcitx

dbus-launch --exit-with-session startxfce4 &


# 启动 RustDesk
sleep 3
rustdesk &
(base) wy@node1:~$ loginctl list-sessions
SESSION  UID USER   SEAT  TTY
    121 1000 nuosen seat0 tty2
     c1  125 gdm    seat0 tty1

2 sessions listed.

物理电脑可能是:

鼠标
  ↓
Linux Kernel
  ↓
GPU/Input Driver
  ↓
X Server (Xorg)
  ↓
Firefox
  ↓
应用逻辑
  ↓
绘制请求
  ↓
X Server
  ↓
GPU Driver
  ↓
GPU
  ↓
显示器
                 X Server
                /        \
               /          \
        输入事件            绘图请求
           ↑                  ↓
       Kernel              GPU/软件渲染
           ↑                  ↓
      鼠标/键盘             framebuffer
GPU
 │
 ▼
Xorg
 │
 ▼
显示器
Xorg
 ↓
物理 GPU
 ↓
物理显示器

而 VNC:

Xtigervnc
 │
 ▼
虚拟显示器
 │
 ▼
VNC网络
 │
 ▼
VNC Client

Xvfb

Application
     │
     ▼
 X Server
     │
     ▼
内存 framebuffer