비슷한 질문이 있습니다여기그러나 시나리오와 목표는 다릅니다. 저자는 "그냥 작동하게 만드는 것"에 관심이 있고 나는 성능과 효율성에 관심이 있습니다.
내가 하고 싶은 것은 기본 GUI를 갖고 그 위에 컨테이너(예: Docker) 형태의 애플리케이션/프로그램을 두는 것입니다. 다음과 같은 것을 생각해보십시오.QubesOS.
기본 GUI는 작업 표시줄, 시작 메뉴, 창 테두리를 제어하는 Wayland입니다(기본적으로 IceWM과 같은 간단한 창 관리자). 가장 중요한 점은 단순화된 Linux 커널 + X 서버 + 애플리케이션 코드를 사용하여 컨테이너를 실행한다는 것입니다. 따라서 기본 Wayland 시스템에서 X 응용 프로그램을 격리하십시오.
여기서 문제는 위에서 언급한 답변처럼 Xwayland 오버헤드를 추가하지 않고 이러한 컨테이너를 실행하는 방법을 잘 이해하지 못한다는 것입니다.
그렇다면 Xwayland에 의존하지 않고 X 서버를 격리된 컨테이너에서 직접 실행할 수 있습니까?
답변1
내 문제는 X 응용 프로그램이 컨테이너에 격리되어 있는 동안 Wayland 기반 GUI/데스크톱을 사용하려고 한다는 것입니다. Xwayland 오버헤드 없이 컨테이너 내에서 이러한 X 애플리케이션을 실행할 수 있는 방법이 있습니까?
인용된 의견은 혼란스럽습니다. 이러한 혼란을 없애기 위해 다음 답변을 주의 깊게 연구하시기 바랍니다.
그럼에도 불구하고 X 서버가 필요합니다.
X 응용 프로그램을 실행하고 Wayland 디스플레이 서버가 있는 경우필요번역이 필요한 Xwayland.
오버헤드를 피하고 Wayland의 성능을 최대한 활용하려면 기본 Wayland 컨테이너를 지원하는 컨테이너가 필요합니다. Wayland에서 Flatpak 애플리케이션을 실행하는 것과 같습니다. (내가 아는 한, Flatpak 애플리케이션을 아래에서 실행하면엑스데스크톱에서는 완전히 안전하지 않은 X 액세스를 포기하고 허용합니다.
답변2
X는 (적어도 원칙적으로는) 투명하므로 응용 프로그램이 포함된 모든 컨테이너에서 실행하는 대신 원하는 어느 곳에서나 X 서버를 실행할 수 있습니다. 추가 컨테이너(네트워크를 통해 애플리케이션 컨테이너에 연결된), 호스트 시스템 또는 X 터미널로 사용되는 별도의 시스템에서 X 서버를 실행하는지는 중요하지 않습니다.
여러분이 해야 할 일은 네트워크로 연결된 클라이언트를 허용하도록 X 서버를 구성하고 DISPLAY
응용 프로그램이 포함된 모든 컨테이너를 올바른 주소로 설정하는 것뿐입니다. .Xauthory
등에서 수정된 자격 증명을 설정 해야 할 수도 있습니다 .
하지만, 보다 현대적인 GUI 애플리케이션은 실행 중인 동일한 시스템에서 가속 그래픽 하드웨어를 사용하는 데 익숙하며 아름다운 효과를 얻기 위해 이를 광범위하게 사용하는 경우가 많습니다. 이는 네트워크에서 작동하지 않을 수도 있고, 작동할 수도 있지만 속도가 빠르지 않거나 반응이 충분하지 않을 수도 있습니다.
이 경우 일종의 VNC 솔루션 설정을 고려해 보겠습니다.가상 GL.