본문 바로가기
리눅스

Wayland (display server protocol)

by 다움위키 2023. 12. 16.

Wayland디스플레이 서버와 클라이언트 사이의 통신을 지정하고 마찬가지로 해당 프로토콜의 C 라이브러리 구현을 지정하는 통신 프로토콜입니다. Wayland 프로토콜을 사용하는 디스플레이 서버는 Wayland 컴포지터라고 불리는데, 왜냐하면 그것이 합성 창 관리자의 작업을 추가적으로 수행하기 때문입니다.

Wayland는 처음에 Kristian Høgsberg가 이끄는 자원 봉사자 그룹에 의해 리눅스와 다른 유닉스-계열 운영 시스템에서 X 윈도우 시스템을 현대적이고 안전한 더 간단한 윈도우 시스템으로 교체하기 위한 자유오픈-소스 커뮤니티-주도 프로젝트로 개발되었습니다. 프로젝트의 소스 코드는 허용되는 자유 소프트웨어 라이선스, MIT 라이선스 조건에 따라 게시됩니다.

노력의 일환으로, Wayland 프로젝트는 역시 Weston이라고 불리는 Wayland 컴포지터의 참조 구현을 개발합니다.

Comparison with other window systems

Differences between Wayland and X

성능, 코드 유지-관리-가능성, 및 보안과 관련하여 Wayland와 X 사이에는 몇 가지 차이점이 있습니다:

  • Architecture : 컴포지션 관리자는 X에서 별도의 추가 기능이지만, Wayland는 디스플레이 서버와 컴포지터를 단일 기능으로 병합합니다. 또한, 그것은 X에서 별도의 클라이언트-측 프로세스인 윈도우 관리자의 일부 작업을 통합합니다.
  • Compositing : 컴포지션은 X에서 선택 사항이지만, Wayland에서 필수입니다. X에서 컴포지션은 "활성"입니다; 즉, 컴포지터는 모든 픽셀 데이터를 가져와야 하며, 지연을 발생합니다. Wayland에서, 컴포지션은 "수동적"이며, 이것은 컴포지터가 클라이언트에서 직접 픽셀 데이터를 수신함을 의미합니다.
  • Rendering : X 서버 자체는 렌더링을 수행할 수 있지만, 클라이언트에 의해 발송된ㄴ 렌더링된 윈도우를 표시하도록 지시할 수도 있습니다. 대조적으로, Wayland는 렌더링을 위한 API를 노출하지 않지만 그러한 임무 (글꼴, 위젯 등의 렌더링 포함)을 클라이언트에 위임합니다. 윈도우 장식은 클라이언트 측 (예를 들어, 그래픽 툴킷에 의해) 또는 서버 측 (컴포지터에 의해)에서 렌더링될 수 있습니다.
  • Security : Wayland는 모든 윈도우의 입력과 출력을 분리하여, 두 경우 모두에서 기밀성, 무결성 및 가용성을 달성합니다; 원래 X 디자인은 이들 중요한 보안 기능이 없지만, 이를 완화하기 위해 일부 확장이 개발되어 왔습니다. 또한, 대부분의 코드가 클라이언트에서 실행되기 때문에, 루트 권한으로 실행해야 하는 코드가 적어 보안이 향상되었지만, 현재 여러 인기 있는 리눅스 배포판은 루트 권한 없이 X를 실행할 수 있습니다.
  • Inter-process communication : X 서버는 나중에 ICCCM 규칙으로 확장된 X 클라이언트 사이의 기본 통신 방법을 제공합니다. 이 X 클라이언트-대-클라이언트 통신은 윈도우 관리자에 의해 사용되고 역시 X 세션, 선택과 끌어서-놓기, 및 기타 기능을 구현하기 위해 사용됩니다. Wayland 핵심 프로토콜은 wayland 클라이언트 사이의 통신을 전혀 지원하지 않고, 해당하는 기능성 (필요한 경우)은 데스크톱 환경 (예를 들어, KDE 또는 GNOME), 또는 타사 (예를 들어, 놓여있는 운영 시스템의 기본 IPC 사용함으로써)에 의해 구현되어야 합니다.
  • Networking : X 윈도우 시스템은 네트워크에 걸쳐 실행되도록 핵심 부분에 설계된 아키텍처입니다. Wayland는 그 자체로 네트워크 투명성을 제공하지 않습니다; 어쨌든, 컴포지터는 원격 디스플레이를 달성하기 위해 임의의 원격 데스크탑 프로토콜을 구현할 수 있습니다. 추가적으로, VNC와 유사한 원격 프레임 버퍼 접근을 제공하는 Wayland 이미지 스트리밍과 압축에 대한 연구가 있습니다.

Compatibility with X

XWayland는 Wayland 클라이언트로 실행하는 X 서버이고, 따라서 Wayland 컴포지터 환경에서 기본 X11 클라이언트 응용 프로그램을 표시할 수 있습니다. 이것은 XQuartzmacOS의 네이티브 윈도우 시스템에서 X 애플리케이션을 실행하는 방식과 유사합니다. XWayland의 목표는 X 윈도우 시스템에서 Wayland 환경으로의 전환을 촉진하는 것이며, 그동안 이식되지 않은 응용 프로그램을 실행할 수 있는 방법을 제공하는 것입니다. XWayland는 X.Org Server 버전 1.16에서 주류로 되었습니다.

Qt5 및 GTK3과 같은 위젯 툴킷은 실행 시간에 그래픽 백-엔드를 전환할 수 있으며, 사용자에게 로드 시간에 X 또는 Wayland를 통해 애플리케이션을 실행할지 여부를 하는 것을 허용합니다. Qt 5는 그 효과를 위해 -platform 명령줄 옵션을 제공하는 반면에 GTK 3는 사용자에게 GDK_BACKEND 유닉스 환경 변수를 설정함으로써 원했던 GDK 백엔드를 선택하도록 허용합니다.

External links