한국어
Linux Programming

Wayland에 대한 간단한 소개

makersweb 2017.12.29 14:21 조회 수 : 330

Wayland 는 그용어를 몇가지 다른 의미로 생각해볼 수 있는데 큰의미로는 X11을 대체하기위한 새로운 윈도우시스템이다.
다른 의미로는 컴포지터와 클라이언트가 통신하기위한 프로토콜이며 라이브러리형태로 존재한다.
이 의미에서의 Wayland는 단지 라이브러리이므로 X서버를 대체하기 위해서는 Weston과 같은 컴포지터가 필요한데, Weston은 Wayland의 컴포지터 참조 구현이며 현재 Wayland프로젝트에 포함되어 개발, 제공되고있다.
참고로 컴포지터는 윈도우 시스템에서 윈도우들의 합성을 담당함으로써 하나의 장면을 만들어내는 역할을 한다.
Wayland 컴포지터는 KMS 및 evdev, X 어플리케이션 또는 wayland 클라이언트에서 실행되는 독립 실행 형 서버 프로세스인데 이것은 Wayland가 KMS로 동작하는 시스템에서만 작동한다는 것을 의미한다. 또한 Weston은 X클라이언트로도 동작 할 수 있다.
 
아래의 그림은 Wayland공식 사이트에서 가져온 그림인데 Wayland시스템의 흐름을 잘 나타내주고있다.
wayland-architecture.png
간단히 설명하면,
  1. 커널은 이벤트(예를 들어 인풋이벤트)를 가져와서 컴포지터로 전달한다. (아래그림참조)dot_libinput-stack-wayland.png 
  2. 컴포지터는 어떤 윈도우가 이벤트를 수신해야하는지 결정한다.
  3. 클라이언트는 이벤트를 수신하면 클라이언트에서 렌더링이 발생하며, 클라이언트가 컴포지터에게 업데이트된 영역을 표시하는 요청만 보낸다.
  4. 컴포지터는 클라이언트로부터 요청을 받은 다음 화면을 다시 구성하고 직접 ioctl을 실행하여 KMS로 최종화면을 요청한다.
 
X와 비교하여 불필요한 절차를 줄였으며 구조를 간결하게 설계하여 유지, 관리가 쉽도록 한것이 특징이다.
Wayland자체는 X를 대체하기위한 윈도우 시스템이지만 X에서 마이그레이션하는 경우를 위해 하위 호환성을 고려했다는 점이다.

 

아래 그림은 이것을 잘 설명해주고 있다.

1280px-The_Linux_Graphics_Stack_and_glamor.svg.png

 

아래 사이트를 참조하여 작성하였고 조금 더 자세한 정보를 얻길 원한다면 방문해보자!

 

https://wayland.freedesktop.org

https://en.wikipedia.org/wiki/X.Org_Server

https://wayland.freedesktop.org/libinput/doc/latest/index.html