X11-전달 및 효율성


12

X11을 통해 전달해야하는 그래픽 중심의 응용 프로그램이 있습니다. 나는 X11과 그 효율성을 연구하는 데 시간을 보냈습니다.이 위대한 게시물을 포함하여 : X11 전달이 왜 비효율적입니까? .

여전히 나에게 명백하지 않은 한 가지는 X11 포워딩의 성능이 애플리케이션에 의존하는지 여부입니다. 무슨 일이 있어도 전체 화면이 전달된다는 인상을 받았습니다. 그런 다음 X11 전달은 응용 프로그램에 독립적이어야합니다.

그렇다면 실제로 전달되는 내용과 ssh -X의 성능이 응용 프로그램에 의존하는지 여부에 대한 구체적인 정보가 있습니까?


2
"실제로 전달되는 내용과 ssh -X의 성능이 응용 프로그램에 의존하는지 여부에 대한 구체적인 정보가 있습니까?" 예. 시작으로, 다니엘 스톤의 이야기를 참조 WAYLAND 및 X 뒤에 리얼 스토리 LinuxConf.au 2013에서
sampablokuper

1
"전체 화면이 전달된다는 인상을 받고있었습니다."사람들이 SSH X 전달을 통해 일반적으로하는 일은 원격 셸에서 개별 응용 프로그램을 수동으로 실행하는 것이기 때문에 그 인상을주는 것이 무엇인지 이해하기 어렵습니다. 응용 프로그램을 시작하는 방법에 대해 자세히 설명해 주시겠습니까?
rakslice

1
SSH 터널을 통해 X 세션을 전송하는 경우 한 가지 참고할 사항 : ssh는 압축을 수행 할 수 있습니다. 그것은의 -C명령 행 또는에서 옵션 Compression: yes스푸핑 / config 파일에서 옵션을 선택합니다. 혼잡 한 T1 링크를 통해 댈러스에서 호주로 전통적인 X 포워딩을하는 경우 인터페이스에서 5 단계 깊이의 대화 상자를 표시하는 작업과 비현실적인 작업에서 확인란을 선택하는 것의 차이가 단순히 과도하게 달라질 수 있습니다 두 시간 좌절. 운 좋게 Wayland와 함께 이것을 시도 할 필요는 없었지만 크게 향상되었다고 가정합니다.
Ed Grimm 19

특히 @grawity에서 내 질문에 잘 대답했기 때문에 의견에 대한 광범위한 토론을 시작하고 싶지 않습니다. "전체 화면"이란 ssh 터널을 통해 전달 된 데이터가 항상 화면의 픽셀에 대한 간단한 설명이라는 것을 의미했습니다. @ EdGrimm : 압축에 대한 의견에 감사드립니다. 나는 그것을 알고 있습니다. 우리의 특정 시나리오에서 X11은 10Gbit LAN Link를 통해 전달되며 압축 / 압축은 전혀 차이가없는 것으로 보입니다.
Fang

답변:


29

무슨 일이 있어도 전체 화면이 전달된다는 인상을 받았습니다. 그런 다음 X11 전달은 응용 프로그램에 독립적이어야합니다.

아니요, 실제로는 반대입니다. X11 포워딩을 "X11 포워딩"이라고하는 이유 는 "X 서버"(일반적으로 Xorg)에서 창을 렌더링하기 위해 응용 프로그램에서 사용 하는 실제 X 프로토콜 메시지를 전송하기 때문 입니다. 이러한 메시지는 창 만들기 / 이동, 텍스트 및 그래픽 기본 요소 (선 / 직사각형), 비트 맵 그리기 등을위한 명령입니다.

VNC / RFB와 같은 "전체 화면 이미지"프로토콜과 반대되는 개념이라고 할 수 있습니다. GDI 그리기 명령을 전송하기 위해 만들어진 Windows RDP와 다소 비슷하다고 생각합니다.

따라서 프로그램 간 차이점이 나타나는 이유는 다음과 같습니다.

  1. 언급 한 게시물을 인용하기 위해 원래 대부분의 X 기반 프로그램은 다음과 같이 작동했습니다.

    기본적으로 X11은 화면을 컴퓨터로 보내지 않지만 로컬 컴퓨터의 X 서버가 로컬 시스템에서 화면을 다시 만들 수 있도록 디스플레이 지침을 보냅니다.

    프로그램이 버튼을 보여주고 싶을 때, "직사각형 그리기", "텍스트 그리기", 그리고 아마도 몇 줄로 짧은 명령을 보냈습니다.

  2. 시간이 지남에 따라 프로그램이 자체적으로 렌더링을 시작했으며 그 지침 중 많은 부분이 "내가 이미 렌더링 한 비트 맵이 화면에 표시되었습니다"– 로컬에서 매우 빠르지 만 X11로 인해 네트워크에서 매우 느려졌습니다. 이미지 압축.

    즉, 최신 툴킷을 사용하여 빌드 된 프로그램은 앤티 앨리어싱 글꼴과 같은 기본 기능이더라도 네트워크로 연결된 X11보다 훨씬 느립니다.

    반면에 RDP는 시간이 지남에 따라 조정되었으며 JPEG 및 H.264와 같은 다양한 형태의 이미지 압축을 포함합니다. 전체 이미지가로드되는 동안 압축 아티팩트를 종종 볼 수 있습니다.

  3. 다행히 GTK와 같은 대부분의 UI 툴킷은 손상 추적을 구현하므로 업데이트 된 영역 만 재전송됩니다. 그러나 일부 Firefox / Thunderbird 버전과 같은 일부 프로그램은이를 지원하지 않으며 실제로 업데이트되지 않은 경우에도 전체 창을 완전히 다시 렌더링하도록 요청합니다.

    이는 프로그램의 또 다른 차이점입니다. 잘 동작하는 프로그램은 여전히 ​​네트워크를 통해 사용할 수 있지만 버그가있는 프로그램은 전혀 쓸모가없는 100Mbps 링크를 포화시킬 수 있습니다.


1
한 번 MythTV 서버를 설정하려고 시도한 것을 기억합니다. "setup"유틸리티는 Qt 응용 프로그램으로, 병목 현상 (약 8Mb / s)으로 합리적인 ADSL 링크에도 불구하고 각 구성 페이지를 표시하는 데 몇 분이 걸렸습니다. 이로 인해 몇 분의 작업에 몇 시간이 걸렸습니다. Curses UI 또는 심지어 잘 작동하는 X11 응용 프로그램을 사용하면 훨씬 쉬웠을 것입니다. 얼마나 많은 문제가 발생할지 알고 있다면, 현장에있을 때까지 일주일 또는 2 주 정도 기다렸다가 디스크없는 프런트 엔드 상자 중 하나를 사용하여 표시했습니다. 그래도 서버가 그보다 빨리 작동하고 작동하기를 원했습니다.
Toby Speight

1
이러한 "버기 프로그램"을 방어하기 위해서는 이것이 X + 툴킷 이데올로기의 결함이라는 점을 지적해야합니다. 이는 기본적으로 버그가있는 프로그램이 먼저 버그가 있음을 나타냅니다. 프로그램은 API를 호출하여 명령을 보내는 "정상적으로 보이는 창", 여기에는 메뉴와 버튼, 거기에는 스크롤 막대가 있지만 그렇지 않다고 생각할 것입니다. 귀하 또는 툴킷은 모든 것을 직접해야합니다. 난 정말 더 큰 MS의 팬과 더 적은 애플, 그래서는 아니지만, 그들이있어 것들 은 X 생태계가 수십 년 동안 빨려, 여전히 짜증했다 권리 반면합니다.
데이먼

그래도 차이가 있는지 확실하지 않습니다. Windows UWP 또는 WinForms 또는 comctl32가 GTK 및 QT보다 "툴킷"을 덜 만드는 이유는 무엇입니까? 그들은 또한 "손으로"모든 것을하지 않습니까?
user1686
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.