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
Github开源生信云平台 DEMO